diff --git a/public/asset-manifest.json b/public/asset-manifest.json index fb0758a..3d894db 100644 --- a/public/asset-manifest.json +++ b/public/asset-manifest.json @@ -1,8 +1,8 @@ { "core.min.js": "core.4a77c8ac41.min.js", - "vendor.min.js": "vendor.5616fbf9b5.min.js", + "vendor.min.js": "vendor.553866ebed.min.js", "mermaid.min.js": "mermaid.a7356d5ed1.min.js", - "all.min.css": "all.c9afb0c819.min.css", + "all.min.css": "all.e9dc695558.min.css", "markdown.min.js": "markdown.6c8dfb7b1d.min.js", "pdf.min.js": "pdf.4d9cc6ff49.min.js", "notebook.min.js": "notebook.c3144c18ae.min.js", diff --git a/public/css/all.min.css b/public/css/all.min.css index b6af68f..31c299f 100644 --- a/public/css/all.min.css +++ b/public/css/all.min.css @@ -6,4 +6,4 @@ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*! * Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.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-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.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:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter: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%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.nb-notebook{line-height:1.5}.nb-stderr,.nb-stdout{white-space:pre-wrap;margin:1em 0;padding:.1em .5em}.nb-stderr{background-color:#faa}.nb-cell+.nb-cell{margin-top:.5em}.nb-output table{border:1px solid #000;border-collapse:collapse}.nb-output th{font-weight:700}.nb-output td,.nb-output th{border:1px solid #000;padding:.25em;text-align:left;vertical-align:middle;border-collapse:collapse}.nb-notebook blockquote{border-left:5px solid #ccc;margin-left:0;padding-left:1em}.nb-cell{position:relative}.nb-raw-cell{white-space:pre-wrap;background-color:#f5f2f0;font-family:Consolas,Monaco,'Andale Mono',monospace;padding:1em;margin:.5em 0}.nb-output{min-height:1em;width:100%;overflow-x:scroll;border-right:1px dotted #ccc}.nb-output img{max-width:100%}.nb-input:before,.nb-output:before{position:absolute;font-family:monospace;color:#999;left:-7.5em;width:7em;text-align:right}.nb-input:before{content:"In [" attr(data-prompt-number) "]:"}.nb-output:before{content:"Out [" attr(data-prompt-number) "]:"}// Fix pandas dataframe formatting div[style="max-height:1000px;max-width:1500px;overflow:auto;"]{max-height:none!important}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,math,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.18.10"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .katex-base,.katex .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 .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.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 .mathsfit,.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 .katex-vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .katex-thinbox{display:inline-flex;flex-direction:row;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 .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.katex-root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .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 .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .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;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .katex-stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .katex-stretchy:after,.katex .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 .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 .reflectbox{display:inline-block;transform:scaleX(-1)}.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>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.mermaid{text-align:center;margin:1em 0;overflow:auto}.mermaid svg{max-width:100%;height:auto}.dark-mode .mermaid{filter:invert(1) hue-rotate(180deg)}.dark-mode .mermaid svg{background:0 0}.dark-mode .mermaid .edgeLabel,.dark-mode .mermaid .nodeLabel{filter:invert(1) hue-rotate(180deg)}.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon,.mermaid .node rect{stroke-width:2px}.mermaid .flowchart-link{stroke-width:2px}.mermaid .actor{fill:#f9f9f9;stroke:#333;stroke-width:2px}.mermaid .messageLine0,.mermaid .messageLine1{stroke:#333;stroke-width:1.5px}.mermaid .section0,.mermaid .section1,.mermaid .section2,.mermaid .section3{opacity:.8}.mermaid .pieChart .slice{opacity:.9}.markdown-body .mermaid{background:0 0;border:none;padding:10px}.mermaid .error{color:#d32f2f;font-family:monospace;font-size:12px;padding:10px;border:1px solid #d32f2f;border-radius:4px;background-color:#ffebee}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff')}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.5;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2::before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent;-webkit-text-decoration-skip:objects}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit}.markdown-body strong{font-weight:bolder}.markdown-body h1{font-size:2em;margin:.67em 0}.markdown-body img{border-style:none}.markdown-body svg:not(:root){overflow:hidden}.markdown-body hr{box-sizing:content-box;height:0;overflow:visible}.markdown-body input{font:inherit;margin:0}.markdown-body input{overflow:visible}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:0 0;border:0;border-bottom:1px solid #dfe2e5}.markdown-body hr::before{display:table;content:""}.markdown-body hr::after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:0}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body code{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.dark-mode{--canvas-bg-color:#1B1916;--sidebar-bg-color:#1A1918;--main-bg-color:#1B1916;--header-bg-color:#1A1918;--hover-bg-color:rgba(255, 255, 255, 0.05);--header-color:#FAF9F6;--color:#D6D1C5;--link-color:#A7B2FF;--link-hover-color:#C8CEFF;--border-color:#33302B;--border-soft:#2A2825;--btn-color:#FAF9F6;--input-color:#E6E1D8;--input-bg:#25231F;--primary-bg:#FAF9F6;--primary-hover-bg:#FFFFFF;--primary-color:#1A1815;--primary-active-color:#1A1815;--accent:#A7B2FF;--accent-soft:rgba(167, 178, 255, 0.12);--ink-muted:#A39D92;--ink-faint:#8A857C;--ink-soft:#B5AFA2;--status-ready:#5FB27A;--status-progress:#E0A94A;--status-error:#F08A82;--status-inactive:#8A857C;--status-error-soft:rgba(240, 138, 130, 0.08);--status-error-soft-hover:rgba(240, 138, 130, 0.14);--admin-nav-bg:#1A1918;--admin-nav-active:rgba(167, 178, 255, 0.12);--admin-stat-bg:#25231F;--paper-card:#25231F;--paper-bg-alt:#201E1B;--highlight:#3A341E;background-color:var(--canvas-bg-color);color:var(--color)}body{--canvas-bg-color:#FAF9F6;--sidebar-bg-color:#FFFFFF;--header-bg-color:#FAF9F6;--header-color:#1A1815;--main-bg-color:#FAF9F6;--hover-bg-color:rgba(26, 24, 21, 0.05);--input-color:#1A1815;--color:#1A1815;--link-color:#3B4AD6;--link-hover-color:#2E3BB8;--border-color:#E6E1D8;--border-soft:#EDE9E1;--btn-color:#1A1815;--input-bg:#FFFFFF;--primary-bg:#1A1815;--primary-hover-bg:#000000;--primary-color:#FAF9F6;--primary-active-color:#FAF9F6;--accent:#3B4AD6;--accent-soft:#EEF0FF;--ink-muted:#6F6A61;--ink-faint:#8A857C;--ink-soft:#4A4641;--paper-bg-alt:#F3F1EC;--paper-card:#FFFFFF;--highlight:#FFF3C4;--status-ready:#2F7A44;--status-progress:#946512;--status-error:#B42318;--status-inactive:#8A857C;--status-error-soft:rgba(180, 35, 24, 0.04);--status-error-soft-hover:rgba(180, 35, 24, 0.08);--radius-control:6px;--radius-button:8px;--button-height:36px;--button-font-size:14px;--button-line-height:20px;--button-padding-x:13px;--button-compact-height:32px;--radius-surface:10px;--font-serif:'Instrument Serif','Iowan Old Style',Georgia,serif;--font-sans:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;--font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;background-color:var(--canvas-bg-color);color:var(--color);font-family:var(--font-sans);font-size:14px;letter-spacing:-.005em;line-height:1.5}.fadeIn{opacity:1;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:.6s}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}.btn:active,.btn:focus{box-shadow:none}:focus:not(:focus-visible){outline:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:focus-visible,.dropdown-item:focus-visible,.form-control:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}input:active,input:hover{box-shadow:none!important}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{border-color:var(--border-color);-webkit-text-fill-color:var(--color);-webkit-box-shadow:none;transition:background-color 1000s ease-in-out 0s}.custom-select,.form-control,input:-internal-autofill-selected{color:var(--input-color);background-color:var(--input-bg)!important;border-color:var(--border-color)}.form-control:focus{border-color:var(--border-color)}body,html{position:relative;height:100%;overflow-x:hidden}body{overflow-y:hidden}#app{flex:1 1 auto;min-height:0}.app-header{flex:0 0 auto}.app-view{display:block;flex:1 1 auto;min-height:0;overflow-x:hidden!important;overflow-y:auto!important;max-width:100%}.markdown-body a,a{color:var(--link-color)}.markdown-body a:hover,a:hover{text-decoration:none;color:var(--link-hover-color)}.dropdown-menu a.dropdown-item{color:var(--color)}.dropdown-menu a.dropdown-item:hover{color:var(--color);text-decoration:none}.markdown-body .emoji{height:1.3em;margin:0;vertical-align:-.1em}.navbar.navbar-expand-lg{background:var(--header-bg-color)!important;border-bottom:1px solid var(--border-color);transition:background-color .5s ease;padding:10px max(20px,calc((100vw - 1200px)/ 2));font-family:var(--font-sans)}.navbar-toggler{border:1px solid var(--border-color)!important;color:var(--color)!important}.navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}.navbar .navbar-nav{align-items:center}.navbar .nav-link{display:inline-flex;align-items:center;font-size:13px;color:var(--ink-muted)!important;padding:6px 0!important;margin:0 12px;border-bottom:1px solid transparent;letter-spacing:-.005em;line-height:1}.navbar .nav-link:hover{color:var(--color)!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--color)}.navbar .nav-link.nav-icon{padding:0!important;margin:0 8px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:15px;line-height:1}.navbar #navbarSupportedContent{align-items:center}.navbar-brand{font-family:var(--font-serif)!important;font-size:20px!important;letter-spacing:-.01em;color:var(--color)!important;padding-right:18px;margin-right:12px;border-right:1px solid var(--border-color)}.navbar-brand em,.navbar-brand i{font-style:italic;font-weight:400}.navbar-dark .navbar-toggler{border-color:var(--border-color);color:var(--color)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar .btn-signin{display:inline-flex;align-items:center;height:32px;padding:0 14px!important;margin-left:6px;border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color)!important;border-radius:6px;font-size:13px;font-weight:500;line-height:1}.navbar .btn-signin:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color)!important}.navbar .nav-support{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;order:3;gap:6px;min-height:36px;margin-left:12px;padding:0 12px;border:1px solid var(--border-color);border-radius:8px;color:var(--color);font-size:13px;font-weight:500;text-decoration:none}.navbar .nav-support:hover{background:var(--hover-bg-color);border-color:var(--color);color:var(--color)}@media (max-width:991px){.navbar .nav-support{order:0;width:44px;min-height:44px;margin:0 8px 0 auto;padding:0}.navbar .nav-support-label{display:none}[class*=floatingchat-container-wrap],iframe.floatingchat-container{display:none!important}}.navbar .user-chip{display:inline-flex!important;align-items:center;gap:8px;padding:4px 12px 4px 6px!important;margin-left:6px;border:1px solid var(--border-color);border-radius:999px;background:var(--sidebar-bg-color);font-size:13px;color:var(--color)!important}.navbar .user-chip:hover{background:var(--hover-bg-color)}.navbar .user-chip img{width:22px;height:22px}.navbar .user-chip .user-chip-name{color:var(--color);font-weight:500}.navbar .user-chip::after{color:var(--ink-muted)}#navbarSupportedContent{padding-right:0}.generalMessage{display:block;text-align:center;color:var(--header-color)}.rgba-gradient{background:var(--canvas-bg-color);color:var(--color)}.paper-landing{overflow-x:clip}.paper-wrap{max-width:1140px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}.paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500}.paper-hero{max-width:1140px;margin:0 auto;padding:64px 32px 0;display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}.paper-hero h1.hero-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:14px 0 0;color:var(--color);text-wrap:balance}.paper-hero h1 .accent{color:var(--accent);font-style:italic}.hero-subtitle{margin-top:18px;font-size:18px;line-height:1.55;color:var(--ink-soft);max-width:30em;text-wrap:pretty}.paper-cta-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:26px}.btn-hero{display:inline-flex;align-items:center;font-family:var(--font-sans);border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control);letter-spacing:-.005em;transition:background .15s,border-color .15s,transform .1s}.btn-hero:hover{background:var(--primary-hover-bg);border-color:var(--primary-hover-bg);color:var(--canvas-bg-color);text-decoration:none;transform:translateY(-1px)}.btn-hero-ghost{background:0 0;border:1px solid var(--border-color);color:var(--color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control)}.btn-hero-ghost:hover{background:var(--hover-bg-color);border-color:var(--color);color:var(--color)}.paper-link-arrow{font-size:14px;color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--border-color)}.paper-link-arrow:hover{color:var(--color);text-decoration-color:var(--color)}.paper-reassure{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--ink-muted)}.paper-reassure li::before{content:"\2713";color:var(--status-ready);margin-right:6px;font-size:11px}.paper-frame{border-radius:var(--radius-surface);background:var(--paper-card);border:1px solid var(--border-color);box-shadow:0 24px 60px rgba(26,24,21,.1),0 2px 6px rgba(26,24,21,.04);overflow:hidden}.dark-mode .paper-frame{box-shadow:0 24px 60px rgba(0,0,0,.45)}.paper-frame-bar{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-bottom:1px solid var(--border-soft);background:var(--paper-bg-alt);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted)}.paper-frame-bar .dots{display:flex;gap:5px}.paper-frame-bar .dots i{width:8px;height:8px;border-radius:50%;background:var(--border-color)}.paper-frame-bar .url{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-frame img{display:block;width:100%;height:auto}.paper-hero-shot .paper-frame{width:112%}.paper-proof{margin-top:64px;padding-top:18px;padding-bottom:18px;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px 30px;align-items:center}.paper-proof-venues{display:flex;gap:22px;align-items:center;font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--ink-soft)}.paper-proof-venues i{font-style:normal;font-family:var(--font-sans);font-size:14px;color:var(--ink-faint)}.paper-stats{margin-top:12px;padding-top:22px;border-top:1px solid var(--border-color)}.paper-stats-meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:14px}.paper-stats-meta-right{display:inline-flex;align-items:center;gap:6px}.paper-stats-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-ready)}.paper-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.paper-stat-card{display:flex;flex-direction:column;padding:22px 26px 20px 0;margin-right:26px;border-right:1px solid var(--border-color);min-width:0}.paper-stat-card:last-child{border-right:0;margin-right:0;padding-right:0}.paper-stat-value{font-size:44px;font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--color);font-variant-numeric:tabular-nums}.paper-stat-label{margin-top:6px;font-size:13px;color:var(--ink-soft)}.paper-stat-bars{display:block;width:100%;height:34px;margin-top:18px;overflow:visible}.paper-stat-bars rect{fill:var(--border-color)}.paper-stat-bars rect.is-latest{fill:var(--accent)}.paper-stat-delta{margin-top:10px;font-family:var(--font-mono);font-size:11px;color:var(--status-ready)}.paper-section-head{margin-top:110px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}.paper-qa h2,.paper-section-head h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.05;letter-spacing:-.02em;margin:10px 0 0;color:var(--color);text-wrap:balance}.paper-feature-title em,.paper-qa h2 em,.paper-section-head h2 em{font-style:italic;color:var(--accent)}.paper-section-head p{font-size:15px;color:var(--ink-soft);max-width:32em;margin:0;line-height:1.6}.paper-preview{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.paper-preview .pane{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:hidden;min-width:0}.paper-preview .pane-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft)}.paper-preview .pane-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap}.paper-preview .pane-url{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.paper-preview .pane-body{padding:16px 18px;font-family:var(--font-mono);font-size:13px;line-height:1.9;color:var(--ink-soft)}.paper-preview .pane-body strong{color:var(--color);font-weight:600}.paper-preview .tok{color:var(--ink-faint)}.paper-preview .redact{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:0 5px}.paper-features{margin-top:28px;padding-top:28px;border-top:1px solid var(--border-color);display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}.paper-features-list{display:flex;flex-direction:column}.paper-feature{border-left:2px solid var(--border-soft);padding:16px 0 16px 20px;transition:border-color .2s}.paper-feature.is-on{border-left-color:var(--color)}.paper-feature-tab{all:unset;display:block;width:100%;cursor:pointer;color:inherit;border-radius:4px}.paper-feature-tab:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.paper-feature-tab .paper-eyebrow{display:block;margin-bottom:6px}.paper-feature-title{display:block;font-family:var(--font-serif);font-size:24px;line-height:1.15;letter-spacing:-.015em;color:var(--ink-muted);transition:color .2s}.paper-feature-title em{color:inherit}.paper-feature-tab:hover .paper-feature-title,.paper-feature.is-on .paper-feature-title{color:var(--color)}.paper-feature.is-on .paper-feature-title em{color:var(--accent)}.paper-feature-more{display:none}.paper-feature.is-on .paper-feature-more{display:block}.paper-feature-more .paper-feature-title-m{display:none}.paper-feature-more p{font-size:15px;color:var(--ink-soft);line-height:1.55;margin:10px 0 12px;max-width:30em}.paper-features-stage{min-width:0}.paper-feature-panel{animation:paper-feature-in .25s ease-out}@keyframes paper-feature-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.paper-feature-panel{animation:none}}.paper-crop{position:relative;height:380px;overflow:hidden;background:var(--paper-card)}.paper-crop img{position:absolute;left:0;top:0;max-width:none;height:auto;display:block}.paper-crop-anonymize img{width:150%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:160%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:150%;transform:translate(-6%,-9%)}.paper-qa{margin-top:110px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}.paper-qa h2{margin-bottom:12px}.paper-qa .q{border-top:1px solid var(--border-color);padding:18px 0}.paper-qa .q:last-child{border-bottom:1px solid var(--border-color)}.paper-qa .q a{display:block;font-weight:500;font-size:15px;color:var(--color);margin-bottom:6px}.paper-qa .q a:hover{color:var(--accent);text-decoration:none}.paper-qa .q p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6}@media (max-width:1100px){.paper-hero-shot .paper-frame{width:100%}}@media (max-width:991px){.paper-hero{grid-template-columns:1fr;gap:36px;padding-top:40px}.paper-qa,.paper-section-head{grid-template-columns:1fr;gap:16px}.paper-stats-grid{grid-template-columns:1fr 1fr}.paper-stat-card:nth-child(2n){border-right:0;margin-right:0;padding-right:0}.paper-stat-card:nth-child(-n+2){border-bottom:1px solid var(--border-color)}}@media (max-width:767px){.paper-hero,.paper-wrap{padding-left:20px;padding-right:20px}.paper-hero h1.hero-title{font-size:clamp(2.4rem,11vw,3.25rem)}.hero-subtitle{font-size:16px}.paper-cta-row .btn-hero{width:100%;justify-content:center}.paper-proof{margin-top:48px}.paper-stat-card{padding:18px 16px 16px 0;margin-right:16px}.paper-stat-value{font-size:40px}.paper-qa,.paper-section-head{margin-top:72px}.paper-preview{grid-template-columns:1fr}.paper-preview .pane-body{font-size:12px;line-height:1.8}.paper-features{display:flex;flex-wrap:wrap;gap:0;padding-top:0;border-top:0;margin-top:24px}.paper-feature,.paper-features-list,.paper-features-stage{display:contents}.paper-feature-tab{order:1;flex:1 1 0;width:auto;padding:12px 0 10px;border-bottom:2px solid var(--border-color);border-radius:0;text-align:left}.paper-feature.is-on .paper-feature-tab{border-bottom-color:var(--color)}.paper-feature-tab .paper-eyebrow{margin:0;font-size:11px;letter-spacing:.08em}.paper-feature-tab .paper-feature-title{display:none}.paper-feature-panel{order:2;width:100%;margin-top:20px;animation:none}.paper-crop{height:240px}.paper-crop-anonymize img{width:230%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:240%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:220%;transform:translate(-3%,-9%)}.paper-feature-more{order:3;width:100%}.paper-feature.is-on .paper-feature-more{margin-top:18px}.paper-feature-more .paper-feature-title-m{display:block;font-size:28px;line-height:1.1}.paper-feature-more p{max-width:none}.paper-footer-inner>.paper-footer-brand{grid-column:1/-1}.paper-footer-foot{flex-direction:column;gap:6px}}.dropdown-menu{background-color:var(--paper-card,var(--main-bg-color))!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:0 12px 28px rgba(26,24,21,.08),0 2px 6px rgba(26,24,21,.05)!important;padding:6px!important;font-family:var(--font-sans);font-size:13px;min-width:11rem}.dropdown-menu .dropdown-item{color:var(--color)!important;padding:7px 10px!important;border-radius:5px;font-size:13px}.dropdown-menu .dropdown-item:focus,.dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.dropdown-menu .dropdown-divider{border-top-color:var(--border-color)!important;margin:4px 2px}.dropdown-menu .dropdown-header{color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.body,.file-content,.markdown-body{background-color:var(--main-bg-color)!important;color:var(--color)!important}.markdown-body table tr{background-color:var(--main-bg-color);border-top:1px solid var(--border-color)}.markdown-body table tr:nth-child(2n){background-color:var(--paper-bg-alt)}.markdown-body table td,.markdown-body table th{border:1px solid var(--border-color)}.file-content{padding:4px 7px;text-align:left;min-height:100%}.badge{font-size:75%;font-weight:500;padding:3px 8px;border-radius:10px;vertical-align:middle}.warning-feedback{width:100%;margin-top:.25rem;font-size:80%;color:#dc8e35}.dropdown-item:focus,.dropdown-item:hover{background-color:var(--hover-bg-color)}.card-header .btn,.card-header .btn:focus,.card-header .btn:hover{border:none!important;background:0 0!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--button-height);padding:7px var(--button-padding-x);font:500 var(--button-font-size)/var(--button-line-height) var(--font-sans);vertical-align:middle;max-width:100%;transition:background-color 120ms ease,border-color 120ms ease,color 120ms ease;color:var(--btn-color);border:1px solid var(--border-color);background:var(--paper-card);border-radius:var(--radius-button);white-space:nowrap}.btn:active,.btn:hover{color:var(--btn-color);border:1px solid var(--border-color);background-color:var(--hover-bg-color);box-shadow:none!important}.btn.btn-primary{color:var(--primary-color);background-color:var(--primary-bg)}.btn.btn-primary:active,.btn.btn-primary:hover{color:var(--primary-active-color);background-color:var(--primary-hover-bg)!important}.btn::placeholder{color:var(--color);opacity:1}.white_border{border:1px solid #fff;color:#fff}.leftCol{display:flex;position:relative;flex:0 0 auto;width:100%;z-index:9;flex-direction:column}.card,.leftCol,.sidePanel{background-color:var(--sidebar-bg-color);border:1px solid var(--border-color)}@media (min-width:768px){.leftCol{flex:0 0 310px;width:310px;height:100%}}.leftCol-search{padding:10px 12px 0}.tree-search-box{display:flex;align-items:center;gap:8px;background:var(--canvas-bg-color);border:1px solid var(--border-color);border-radius:8px;padding:7px 10px;transition:border-color .15s}.tree-search-box:focus-within{border-color:var(--ink-muted)}.tree-search-icon{font-size:12px;color:var(--ink-muted);flex-shrink:0}.tree-search-input{flex:1;border:none;outline:0;background:0 0;font-family:var(--font-sans);font-size:13px;color:var(--color);min-width:0}.tree-search-input::placeholder{color:var(--ink-muted)}.tree-search-kbd{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:4px;padding:1px 6px;line-height:1.4;flex-shrink:0}.tree-search-clear{background:0 0;border:none;color:var(--ink-muted);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.tree-search-clear:hover{color:var(--color)}.leftCol-project-header{display:flex;align-items:baseline;justify-content:space-between;padding:12px 14px 4px;gap:8px}.project-name{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-file-count{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);white-space:nowrap;flex-shrink:0}.files{position:relative;display:block;overflow:auto;height:100%;padding:4px 6px}.files ul{list-style:none;margin:0;padding:0}.files li ul{padding-left:8px;margin-left:7px;border-left:1px solid var(--border-color)}.files .folder>ul{display:none}.files .folder.open>ul{display:block}.files .file,.files .folder{position:relative;color:var(--ink-soft);cursor:pointer;word-break:break-all}.files a{display:flex;align-items:center;gap:4px;padding:1px 8px 1px 2px;font-family:var(--font-sans);font-size:13px;color:var(--ink-soft);border-radius:4px;text-decoration:none;line-height:1.5;position:relative}.files a:hover{background:var(--hover-bg-color);color:var(--color);text-decoration:none}.files:focus{outline:0}.files a.tree-focused{background:var(--hover-bg-color);color:var(--color)}.files .file.active>a{background:rgba(128,128,128,.15);color:var(--color)}.files .file.active>a .tree-icon-file{color:#5b7ba5}.files .file.active>a .tree-count{color:var(--ink-muted)}.tree-icon-file,.tree-icon-folder{display:inline-block;flex-shrink:0}.tree-icon-folder{width:14px;height:12px;color:var(--ink-muted);opacity:.75}.tree-icon-folder svg{display:block;width:100%;height:100%;fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.files .folder.open>a .tree-icon-folder{color:#a07d2e;opacity:.9}.files .folder.open>a .tree-icon-folder svg{fill-opacity:.12}.dark-mode .files .folder.open>a .tree-icon-folder{color:#c9a03a}.tree-icon-file{width:16px;font-size:14px;text-align:center;color:#5b7ba5}.dark-mode .files .file.active>a .tree-icon-file,.dark-mode .tree-icon-file{color:#7ba3d0}.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:10px;height:14px;flex-shrink:0;opacity:.6}.tree-toggle::after{content:"";display:block;width:0;height:0;border-style:solid;border-width:3px 0 3px 4.5px;border-color:transparent transparent transparent var(--ink-muted);transition:transform .12s ease}.files .folder.open>a .tree-toggle::after{transform:rotate(90deg)}.tree-spacer{display:inline-block;width:10px;flex-shrink:0}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-count{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);flex-shrink:0;margin-left:auto;padding-left:8px;opacity:.7}.files .folder>a{color:var(--color)}.files .file::before,.files .folder::before{display:none}.files .folder>a::after{display:none}.tree-search-path{color:var(--ink-muted);font-size:11px}.tree-search-empty{padding:16px 12px;color:var(--ink-muted);font-size:13px;font-family:var(--font-sans);text-align:center}.leftCol{background:var(--paper-bg-alt,#f3f1ec);border-right:1px solid var(--border-color)}.dark-mode .leftCol{background:var(--sidebar-bg-color)}.status-bar{background:var(--canvas-bg-color);border-bottom:1px solid var(--border-color);padding:10px 14px}.paths .breadcrumb-item,.paths .breadcrumb-item a{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.paths .breadcrumb-item.active,.paths .breadcrumb-item:last-child{color:var(--color)}.paths .breadcrumb-item+.breadcrumb-item::before{content:'/';color:var(--ink-muted)}.last-update{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);padding:8px 10px;border-top:1px solid var(--border-color);letter-spacing:.02em}.ace_editor{height:100%}.ace_scroller{cursor:default}.status-bar{display:flex;align-items:center;gap:12px;background-color:var(--canvas-bg-color);padding:10px 14px;margin:0;border-bottom:1px solid var(--border-color);border-radius:0;flex-shrink:0}.status-bar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.status-bar-actions .btn{display:inline-flex;align-items:center;gap:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;padding:4px 10px;font-size:13px;min-height:30px}.status-bar-actions .btn:hover{background:var(--hover-bg-color);color:var(--color)}.status-bar-actions .btn.btn-active{border-color:currentColor;font-weight:600}.paths{flex:1 1 auto;min-width:0;padding:0;margin:0;background-color:initial;border:none;border-radius:0;align-items:center;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.paths::-webkit-scrollbar{display:none}.paths a{color:var(--color)}.paths .breadcrumb-item{padding-left:3px}.paths .breadcrumb-item::before{padding-right:3px}.content{height:100%;overflow:scroll;padding-top:42px;background-color:var(--main-bg-color);text-align:center}.image-content{max-width:100%;max-height:100%;text-align:center;padding:4px}.pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:0;background-color:var(--main-bg-color)}.pdf-toolbar{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:4px 8px;border-bottom:1px solid var(--border-color,rgba(0,0,0,.12))}.pdf-toolbar-group{display:inline-flex;align-items:center;gap:4px}.pdf-toolbar-right{margin-left:auto}.pdf-toolbar-btn{border:0;background:0 0;color:inherit;padding:4px 8px;border-radius:4px;font-size:13px;line-height:1.2;cursor:pointer}.pdf-toolbar-btn:hover:not(:disabled){background-color:rgba(128,128,128,.18)}.pdf-toolbar-btn:disabled{opacity:.4;cursor:default}.pdf-toolbar-zoom{min-width:52px;font-variant-numeric:tabular-nums}.pdf-toolbar-page{width:3.5em;text-align:right;padding:2px 4px;font-size:13px;color:inherit;background:0 0;border:1px solid var(--border-color,rgba(0,0,0,.2));border-radius:4px}.pdf-toolbar-count{font-size:13px;opacity:.75;font-variant-numeric:tabular-nums}.pdf-pages{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 0}.pdf-viewer-page{margin:0 auto 12px}.pdf-viewer-page canvas{display:block;box-shadow:0 1px 4px rgba(0,0,0,.25)}.pdf-viewer-error{padding:24px;text-align:center;font-weight:700}.html-doc{display:block;height:100%}.html-doc-frame{display:block;width:100%;height:100%;border:0;background-color:#fff}.file-error{font-weight:700;font-size:50px;text-align:center}pdfviewer{display:block;padding:15px}pdfpageviewer{display:block;width:100%;margin-bottom:10px}notebook{display:block;text-align:left;padding:15px}@media (min-width:768px){notebook{padding-left:100px}}.nb-output td,.nb-output th{border:1px solid var(--border-color)!important}.paper-faq{max-width:1180px;margin:0 auto;padding:48px 32px 80px;font-family:var(--font-sans)}.paper-faq-hero{padding-bottom:40px;border-bottom:1px solid var(--border-color);margin-bottom:36px}.paper-faq-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:32px}.paper-faq-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.5vw,4.6rem);line-height:1.03;letter-spacing:-.02em;color:var(--color);margin:0 0 22px;max-width:14em}.paper-faq-title em{font-style:italic;color:var(--color)}.paper-faq-lede{color:var(--ink-soft);font-size:18px;line-height:1.55;max-width:38em;margin:0}.paper-faq-lede a{color:var(--color);border-bottom:1px solid var(--color)}.paper-faq-lede a:hover{color:var(--accent);border-bottom-color:var(--accent)}.paper-faq-body{display:grid;grid-template-columns:220px 1fr;gap:60px;align-items:start}.paper-faq-toc{position:sticky;top:32px;font-size:14px}.paper-faq-toc-head{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--border-color)}.paper-faq-toc nav{display:flex;flex-direction:column}.paper-faq-toc nav a{color:var(--ink-soft);padding:8px 0 8px 14px;border-left:2px solid transparent;text-decoration:none;margin-left:-2px}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.faq-section{min-width:0}.faq-section>div{width:100%}.faq-section h4.faq-cat{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.015em;color:var(--color);margin:0 0 6px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.faq-section h4.faq-cat i{display:none}.faq-section .panel-group{margin-bottom:56px}.faq-section .panel-default .panel-title a{display:block;position:relative;padding:22px 0 22px 42px;font-family:var(--font-serif);font-weight:400;font-size:20px;line-height:1.35;letter-spacing:-.005em;color:var(--color);text-decoration:none;cursor:pointer}.faq-section .panel-default .panel-title a:hover{color:var(--accent)}.faq-section .panel-heading{background:0 0;padding:0!important;border:none}.faq-section .panel-default{background:0 0;border:none;border-bottom:1px solid var(--border-soft);border-radius:0;margin-bottom:0!important;box-shadow:none}.faq-section .panel-default .panel-title{margin-bottom:0}.faq-section .panel-default .panel-title a:after{content:"−";position:absolute;left:0;right:auto;top:22px;transform:none;font-family:var(--font-mono);font-size:18px;line-height:1.35;color:var(--ink-muted);float:none;margin:0;font-weight:400}.faq-section .panel-default .panel-title a.collapsed:after{content:"+"}.faq-section .panel-default .panel-body{padding:0 0 22px 42px!important;color:var(--ink-soft);font-size:15px;line-height:1.65;border-top:none;max-width:42em}.table{color:var(--color)}.dropdown-divider,.table td,.table th,hr{border-color:var(--border-color)}.table.repositories td{word-break:break-word}loc{display:block;position:relative;width:100%;height:5px}loc .lang{float:left;height:100%}.rounded-circle.fa{display:inline-block;font-size:75px;height:140px;width:140px;border:4px solid;line-height:140px;text-align:center}.featurette-divider{margin:4.5rem 0;border-color:var(--border-color)}.featurette-heading{font-family:var(--font-serif);font-weight:400;font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:14px;color:var(--color)}.dark-mode .shadow{box-shadow:none}.dark-mode .overflow-auto::-webkit-scrollbar{width:10px}.dark-mode .overflow-auto::-webkit-scrollbar-track{-webkit-box-shadow:none;background:inherit;border-radius:0}.dark-mode .overflow-auto::-webkit-scrollbar-thumb{border-radius:10px;border:1px solid var(--border-color);background-color:var(--hover-bg-color)}.dark-mode .rgba-gradient{background:linear-gradient(135deg,#2a2d4a,#151728)}.section-number{padding-right:10px;font-weight:700;font-style:italic}.org-subscript-child{font-size:85%}.highlighted-line{position:absolute;background:rgba(100,200,100,.5);z-index:20}code,pre{font-family:"Fira Code","Courier New",Courier,monospace;line-height:1.1;color:var(--color)}.diff-file,.diff-index,.diff-lines{background:rgba(172,172,172,.5)}.diff-add{background:rgba(100,200,100,.5)}.diff-remove{background:rgba(200,100,100,.5)}.dashboard-title{font-size:1.375rem;font-weight:600;letter-spacing:-.01em}.quota-row{display:flex;gap:16px;margin-bottom:16px;padding:0}.quota-item{flex:1;min-width:0}.quota-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.quota-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.7}.quota-value{font-size:.8125rem;font-weight:500;font-variant-numeric:tabular-nums}.quota-progress{height:6px;border-radius:3px;background:var(--hover-bg-color)}.quota-progress .progress-bar{border-radius:3px}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:.8125rem;font-weight:500;background:var(--primary-bg);color:var(--primary-color);border-radius:12px;line-height:1.4}.filter-chip-close{display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;color:inherit;opacity:.7;cursor:pointer;padding:0;min-width:24px;min-height:24px;margin:-6px -6px -6px 0;font-size:1rem;line-height:1;border-radius:999px}.filter-chip-close:hover{opacity:1}.repo-list{list-style:none;padding:0;margin:0}.repo-list-item{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border-color);gap:12px}.repo-list-item:first-child{border-top:1px solid var(--border-color)}.repo-list-item.repo-inactive{opacity:.6}.repo-list-item-content{flex:1;min-width:0}.repo-list-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.repo-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color);word-break:break-word}.repo-name:hover{color:var(--accent)}.repo-source{font-size:.875rem;opacity:.8;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.repo-date{opacity:.7}.repo-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.8125rem;opacity:.7}.repo-meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.repo-list-item-actions{flex-shrink:0;padding-top:2px;margin-left:14px}.repo-list-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;opacity:.5;font-size:.9375rem;list-style:none;border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color)}.repo-list-empty i{font-size:1.75rem}.type-badge{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:4px;white-space:nowrap}.type-badge{font-family:var(--font-mono);letter-spacing:.06em;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-bg-alt,transparent)}.type-badge.type-pr,.type-badge.type-repo{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.dark-mode .type-badge.type-pr,.dark-mode .type-badge.type-repo{background:rgba(255,255,255,.06);color:var(--ink-muted);border-color:var(--border-color)}.type-badge.type-coauthor{background:rgba(99,102,241,.12);color:#4f46e5;border-color:rgba(99,102,241,.35);margin-left:6px}.dark-mode .type-badge.type-coauthor{background:rgba(129,140,248,.18);color:#a5b4fc;border-color:rgba(165,180,252,.45)}.btn-group .btn:not(.btn-primary){background:var(--hover-bg-color)}.anonymize-page{display:flex;flex-direction:column;min-height:0}.anonymize-landing{flex:1 1 0;min-height:min-content;display:flex;align-items:center;justify-content:center;padding:20px}.anonymize-landing-inner{width:100%;max-width:600px}.anonymize-landing-inner h2{font-weight:700}.anonymize-workspace{display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:var(--canvas-bg-color)}.anonymize-topbar{background:var(--paper-card);border-bottom:1px solid var(--border-color);padding:18px 28px;flex:0 0 auto}.anonymize-topbar-inner{max-width:1400px;margin:0 auto}.anonymize-topbar-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.anonymize-topbar-title{margin:4px 0 0;font-size:clamp(1.8rem,3vw,2.4rem)}.anonymize-split{flex:1 1 auto;display:flex;min-height:0}.anonymize-form-col{flex:0 0 auto;width:100%;min-width:0;background:var(--canvas-bg-color);border-right:1px solid var(--border-color);overflow-y:auto}.anonymize-form-col .paper-settings-main{max-width:720px;padding:28px 32px 40px;margin:0}.anonymize-form-col .paper-settings-section:first-child{padding-top:0}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;background:var(--canvas-bg-color);padding:14px 0 0;border-top:1px solid var(--border-color);margin-top:20px}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{flex:1 1 auto;min-width:0;overflow:auto;background:var(--paper-bg-alt);padding:28px 32px}.anonymize-preview-head{display:flex;align-items:baseline;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color);margin-bottom:20px}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.anonymize-preview-sub{color:var(--ink-soft);font-size:13px}.anonymize-preview-body{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:28px 32px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}@media (max-width:700px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}.paper-optional{font-family:var(--font-sans);font-weight:400;color:var(--ink-muted);text-transform:none;letter-spacing:0;font-size:11px;margin-left:6px}.paper-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.paper-plan-card{position:relative;display:block;padding:18px 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;margin:0}.paper-plan-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.paper-plan-card.selected{border-color:var(--color);box-shadow:0 0 0 2px var(--color) inset}.paper-plan-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-plan-price{font-family:var(--font-serif);font-size:2rem;color:var(--color);margin:6px 0 4px}.paper-plan-price .paper-plan-per{font-family:var(--font-sans);font-size:12px;color:var(--ink-soft)}.paper-plan-desc{font-size:13px;color:var(--ink-soft)}.paper-plan-desc ul{padding-left:18px;margin:0}.paper-settings-copy{color:var(--ink-soft);font-size:13px;margin:0 0 14px}.anonymize-section-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin:18px 0 8px 0;padding-bottom:6px;border-bottom:1px solid var(--border-color);opacity:.7}.anonymize-section-title i{margin-right:4px}.anonymize-submit-bar{padding:12px 0 4px 0}.anonymize-submit-bar .btn{font-size:1rem;padding:10px 20px;font-weight:600}.anonymize-page .form-check{padding-top:4px;padding-bottom:4px}.anonymize-page .form-check-label{font-weight:500}.anonymize-preview-col{min-height:0;min-width:0}.pr-diff pre{overflow-x:auto;max-width:100%}@media (min-width:768px){.anonymize-form-col{height:100%;width:520px;flex:0 0 520px}.anonymize-preview-col{height:100%;flex:1}}@media (max-width:767px){.anonymize-workspace{flex:0 0 auto;min-height:0}.anonymize-topbar{padding:14px 16px}.anonymize-topbar-title{font-size:1.5rem;margin-top:2px}.anonymize-split{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.anonymize-form-col{width:100%!important;flex:0 0 auto!important;height:auto!important;border-right:none;border-bottom:1px solid var(--border-color);overflow:visible}.anonymize-form-col .paper-settings-main{padding:18px 16px 24px;max-width:none}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;margin:20px -16px 0;padding:12px 16px;background:var(--canvas-bg-color);border-top:1px solid var(--border-color);z-index:10}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{width:100%;flex:0 0 auto;height:auto!important;max-height:none;padding:18px 16px 24px;overflow:visible}.anonymize-preview-body{padding:16px;border-radius:8px}.anonymize-preview-body .pr-diff pre,.anonymize-preview-body pre{overflow-x:auto;max-width:100%}.anonymize-landing-inner{padding:16px}}@media (min-width:1280px){.anonymize-form-col{width:620px;flex:0 0 620px}}@media (max-width:767px){.btn{min-height:38px;padding:6px 14px;font-size:14px}.btn-sm{min-height:34px;padding:5px 10px}.navbar .nav-link{padding:8px 12px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:24px;line-height:32px}.container.page{padding-left:15px;padding-right:15px;max-width:100%}h1{font-size:1.5rem}h2{font-size:1.375rem}h3{font-size:1.125rem}.repo-list-item{flex-direction:column}.repo-list-item-actions{align-self:flex-start}.quota-row{flex-direction:column;gap:10px;padding:10px 12px}.dropdown-menu{position:absolute;right:0;left:auto}.form-group{margin-bottom:12px}.form-control{font-size:16px}.status-bar{gap:6px;padding:8px 10px}.status-bar .btn{font-size:12px;padding:4px 10px;min-height:32px}.status-bar .paths{font-size:12px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch}.status-bar .paths::-webkit-scrollbar{display:none}.status-bar-actions{flex-shrink:0;gap:4px}#home .display-4{font-size:1.75rem}#home h4.subtext-header{font-size:1rem}.progress:not(.quota-progress){min-width:120px!important}.badge{font-size:70%}.col-2.input-group{width:100%!important;max-width:100%;flex:0 0 100%}.color-text-secondary span{display:inline-block;margin-bottom:2px}.floatingchat-container-wrap{display:none!important}.anonymize-landing{align-items:flex-start;padding-top:60px}.anonymize-page .container-fluid>.row{height:auto!important;min-height:100%}.anonymize-form-col{width:100%!important;flex:0 0 100%!important;border-right:none;border-top:1px solid var(--border-color)}.anonymize-preview-col{height:auto!important;max-height:none}.anonymize-section-title{font-size:.8125rem;margin:12px 0 8px 0}.anonymize-submit-bar{position:sticky;bottom:0;background:var(--sidebar-bg-color);padding:10px 0;margin:0 -12px;padding-left:12px;padding-right:12px;border-top:1px solid var(--border-color);z-index:10}.anonymize-submit-bar .btn{font-size:1rem;padding:12px 20px}.anonymize-page .form-check{padding-top:6px;padding-bottom:6px;min-height:36px}.anonymize-page .form-check-label{font-size:.9375rem}.anonymize-page .card-body{padding:12px}.pr-title{font-size:1.125rem}.pr-diff pre{font-size:.75rem}.pr-comment .mb-1 h5{font-size:1rem}.nav-tabs .nav-link{padding:8px 12px;font-size:.875rem}}@media (min-width:768px) and (max-width:991px){.container.page{max-width:100%;padding-left:15px;padding-right:15px}.leftCol{flex:0 0 250px;width:250px}}.explorer-page{display:flex;height:100%;width:100%;background:var(--canvas-bg-color);position:relative}.explorer-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas-bg-color)}.explorer-content{flex:1 1 auto;min-height:0;width:100%;overflow:auto}.leftCol-close,.leftCol-head{display:none}.leftCol-body{flex:1 1 auto;min-height:0;overflow:auto}.leftCol-foot{padding:8px 12px;border-top:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-foot .last-update{display:block;border-top:none;padding:0}.leftCol-backdrop{display:none}.paper-inline-warning{display:flex;align-items:flex-start;gap:8px;margin:8px;padding:10px 12px;background:rgba(138,107,30,.08);border:1px solid rgba(138,107,30,.35);border-radius:8px;color:var(--color);font-size:13px;line-height:1.4}.paper-inline-warning i{color:#8a6b1e;margin-top:2px;flex-shrink:0}.dark-mode .paper-inline-warning i{color:#ffd37a}@media (min-width:768px){.leftCol-body{padding:8px 4px}}.sidebar-toggle{display:none;align-items:center;gap:8px;position:fixed;bottom:18px;right:18px;z-index:1100;padding:10px 14px;background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);border-radius:999px;font-family:var(--font-sans);font-size:13px;font-weight:500;box-shadow:0 6px 20px rgba(0,0,0,.15);cursor:pointer;outline:0}.sidebar-toggle:hover{background:var(--primary-hover-bg)}.sidebar-toggle:focus,.sidebar-toggle:focus-visible{outline:0;box-shadow:0 6px 20px rgba(0,0,0,.15)}@media (max-width:991px){.sidebar-toggle{display:inline-flex}.leftCol{position:fixed;top:0;left:0;bottom:0;width:min(86vw,340px);max-width:340px;z-index:1200;border:none;border-right:1px solid var(--border-color);transform:translateX(0);transition:transform .22s ease;box-shadow:4px 0 24px rgba(0,0,0,.18);background:var(--sidebar-bg-color)}.leftCol.collapsed{transform:translateX(-105%);box-shadow:none;pointer-events:none}.leftCol-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.leftCol-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:0 0;border:1px solid var(--border-color);border-radius:8px;color:var(--ink-muted);cursor:pointer}.leftCol-close:hover{color:var(--color);border-color:var(--color)}.leftCol-foot{display:block}.leftCol-body{padding:4px 0}.leftCol-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:1150;backdrop-filter:blur(2px)}.dark-mode .leftCol-backdrop{background:rgba(0,0,0,.5)}}.admin-nav{display:flex;gap:4px;padding:4px;margin:8px 0 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;flex-wrap:wrap}.admin-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:7px;color:var(--ink-muted);text-decoration:none;font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:background-color .15s,color .15s;white-space:nowrap}.admin-nav a:hover{background:var(--paper-bg-alt);color:var(--color)}.admin-nav a.active{background:var(--color);color:var(--paper-card)}.admin-nav a i{font-size:12px;width:14px;text-align:center}@media (max-width:767px){.admin-nav{flex-direction:column}.admin-nav a{justify-content:flex-start}}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:16px}.admin-stat-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px}.admin-stat-card .stat-value{font-family:var(--font-serif);font-size:1.375rem;font-weight:400;line-height:1.1;color:var(--color)}.admin-stat-card .stat-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 12px}.admin-toolbar .form-control{max-width:320px}@media (max-width:767px){.admin-toolbar .form-control{max-width:100%;width:100%}}.pagination-compact{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pagination-compact input{width:60px;text-align:center;flex-shrink:0}.pagination-compact .btn{padding:4px 10px;min-height:34px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);flex-shrink:0}.pagination-compact>span{white-space:nowrap}.admin-list-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color)}.admin-list-item:last-child{border-bottom:none}.admin-list-item .item-main{flex:1;min-width:0}.admin-list-item .item-title{font-size:1rem;font-weight:600;margin-bottom:4px;word-break:break-word}.admin-list-item .item-meta{font-size:.875rem;opacity:.8}.admin-list-item .item-meta span{margin-right:12px;display:inline-block;margin-bottom:2px}.admin-list-item .item-actions{flex-shrink:0}@media (max-width:767px){.admin-list-item{flex-direction:column;gap:8px}.admin-list-item .item-actions{align-self:flex-start}}.status-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}.status-badge{font-family:var(--font-sans);font-weight:500;letter-spacing:.02em;border:1px solid transparent;text-transform:none;font-size:12px;padding:1px 9px 2px;border-radius:999px}.status-badge.status-ready{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.status-badge.status-error{background:#fbe7e7;color:#b42318;border-color:#f3c7c7}.status-badge.status-download,.status-badge.status-preparing{background:#eef0ff;color:#3b4ad6;border-color:#d4d8fa}.status-badge.status-expired,.status-badge.status-expiring,.status-badge.status-removed,.status-badge.status-removing{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.status-badge.status-active{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.queue-job-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 18px;margin-bottom:10px}.queue-job-card .job-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.queue-job-card .job-id{font-family:var(--font-mono);font-size:.9375rem;color:var(--color);word-break:break-all;display:flex;align-items:center;gap:10px}.queue-job-card .job-timestamps{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:14px}.queue-job-card .job-actions{display:flex;gap:8px;margin-top:10px}.queue-job-card .job-actions .btn{font-size:12px;padding:4px 12px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.admin-section-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.admin-section-header h2{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.admin-section-header h2 i{margin-right:6px;color:var(--ink-muted)}.admin-section-header .section-count{background:var(--paper-bg-alt);color:var(--ink-muted);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;padding:1px 10px;border-radius:999px}.user-detail-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:22px;margin-bottom:24px}.user-detail-card .user-header{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.user-detail-card .user-header img{border-radius:50%}.user-detail-card .user-header h2{margin:0;font-family:var(--font-serif);font-weight:400;font-size:1.5rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;font-size:.9375rem}.user-detail-grid .detail-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.user-detail-grid .detail-value{word-break:break-all;color:var(--color)}@media (max-width:767px){.user-detail-grid{grid-template-columns:1fr}.user-detail-grid .detail-label{margin-top:8px;border-top:1px solid var(--border-color);padding-top:8px}.user-detail-grid .detail-label:first-child{border-top:none;margin-top:0;padding-top:0}}.paper-empty{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 24px}.paper-empty-inner{max-width:560px;text-align:left}.paper-empty-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:18px 0 20px;color:var(--color)}.paper-empty-title em{color:var(--accent);font-style:italic}.paper-empty-lede{font-size:18px;line-height:1.55;color:var(--ink-soft);text-wrap:pretty}.paper-empty-cta{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}.paper-page{max-width:1100px;margin:0 auto;padding:32px 32px 80px}@media (max-width:991px){.paper-page,.paper-page.container,.paper-page.container-fluid{padding:20px 18px 60px!important}.paper-page .row{margin-left:0;margin-right:0}.paper-page .row>.w-100,.paper-page .row>[class*=col]{padding-left:0;padding-right:0}.navbar.navbar-expand-lg{padding:10px 18px!important}.navbar .navbar-collapse{margin:10px -18px 0;padding:12px 18px 16px;border-top:1px solid var(--border-color);background:var(--header-bg-color)}.navbar .navbar-nav{align-items:stretch!important;gap:2px}.navbar .navbar-nav .nav-item,.navbar .navbar-nav .nav-link{width:100%}.navbar .nav-link{display:flex!important;align-items:center;justify-content:flex-start;margin:0!important;padding:12px 4px!important;border-bottom:1px solid var(--border-color)!important;border-radius:0;font-size:14px;line-height:1.2;gap:0;min-height:44px;box-sizing:border-box}.navbar .nav-link:not(.btn-signin):not(.user-chip){color:var(--color)!important}.navbar .nav-link .fa,.navbar .nav-link .fab,.navbar .nav-link .fas,.navbar .nav-link i{display:inline-flex!important;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:16px;line-height:1;margin:0 10px 0 0!important}.navbar .navbar-nav .nav-item:last-child .nav-link,.navbar .navbar-nav>.nav-link:last-child{border-bottom-color:transparent!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--border-color)!important}.navbar .nav-item>.nav-link:not(.btn-signin):not(.user-chip)::before{content:'';display:inline-block;width:28px;margin-right:10px;flex-shrink:0}.navbar .nav-link.nav-icon::before,.navbar .nav-link:has(>i)::before{display:none!important}.navbar .nav-link.nav-icon{width:100%!important;height:auto!important;justify-content:flex-start!important;padding:12px 4px!important}.navbar .nav-link.nav-icon::after{content:attr(title);font-family:var(--font-sans);font-size:14px;color:var(--color)}.navbar .btn-signin{display:inline-flex!important;width:auto!important;align-self:flex-start;justify-content:center;height:40px;padding:0 18px!important;margin:14px 0 0!important;border-radius:8px;border-bottom:none!important}.navbar .btn-signin i{margin:0 8px 0 0!important;width:auto!important}.navbar .user-chip-wrap{width:100%}.navbar .user-chip{display:flex!important;width:100%;margin:0!important;padding:10px 4px!important;background:0 0!important;border:none!important;border-bottom:1px solid var(--border-color)!important;border-radius:0!important;justify-content:flex-start;gap:0;min-height:44px}.navbar .user-chip::before{display:none!important}.navbar .user-chip img{width:28px!important;height:28px!important;margin-right:10px!important;flex-shrink:0}.navbar .user-chip .user-chip-name{font-size:14px;font-weight:500;color:var(--color)!important}.navbar .user-chip.dropdown-toggle::after{margin-left:auto;color:var(--ink-muted)}.navbar .user-chip-wrap .dropdown-menu{position:static!important;float:none;width:100%;margin:0!important;padding:0!important;background:0 0!important;border:none!important;box-shadow:none!important;transform:none!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item{padding:10px 4px 10px 42px!important;font-size:14px;color:var(--ink-muted)!important;background:0 0!important;border-bottom:1px solid var(--border-color);text-align:left!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item:last-child{border-bottom:none}.navbar .user-chip-wrap .dropdown-divider{display:none}.navbar-brand{border-right:none!important;padding-right:0!important;margin-right:0!important}.dark-mode .navbar .navbar-collapse{background:var(--header-bg-color);border-top-color:var(--border-color)}.dark-mode .navbar .nav-link{border-bottom-color:var(--border-color)!important}.dark-mode .navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--paper-bg-alt);border:1px solid var(--border-color);color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.paper-progress{position:relative;height:auto;background:0 0;margin:18px 0 8px}.paper-progress::before{content:"";display:block;height:8px;background:var(--paper-bg-alt);border-radius:999px}.paper-progress .paper-progress-bar{position:absolute;top:0;left:0;height:8px;background:var(--color);border-radius:999px;transition:width .4s ease;min-width:4px}.paper-progress .paper-progress-label{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.paper-progress .paper-progress-pct{color:var(--color)}.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--color)}.paper-error-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid #c53030;border-radius:10px;color:var(--color)}.dark-mode .paper-error-card{border-left-color:#ff8b7b}.paper-ratelimit-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid #d69e2e;border-radius:10px;color:var(--color)}.dark-mode .paper-ratelimit-card{border-left-color:#f6e05e}.paper-ratelimit-head{display:flex;align-items:flex-start;gap:14px}.paper-ratelimit-head>i{font-size:18px;color:#d69e2e;margin-top:4px;flex-shrink:0}.dark-mode .paper-ratelimit-head>i{color:#f6e05e}.paper-ratelimit-card strong{color:var(--color)}.status-pill-ratelimit{border-color:#d69e2e;color:#d69e2e}.dark-mode .status-pill-ratelimit{border-color:#f6e05e;color:#f6e05e}.status-ratelimit{background:#d69e2e}.dark-mode .status-ratelimit{background:#f6e05e}.paper-error-head{display:flex;align-items:flex-start;gap:14px}.paper-error-head>i{font-size:18px;color:#c53030;margin-top:4px;flex-shrink:0}.dark-mode .paper-error-head>i{color:#ff8b7b}.paper-error-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-error-title{font-family:var(--font-serif);font-size:1.375rem;line-height:1.2;margin-top:2px;color:var(--color)}.paper-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft);font-family:var(--font-mono);word-break:break-word;white-space:pre-wrap}.paper-error-hints{margin:14px 0 0;padding-left:18px;color:var(--ink-soft);font-size:14px;line-height:1.6}.paper-error-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.paper-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;margin-top:18px;font-size:.9375rem}.paper-detail-grid .detail-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.paper-detail-grid .detail-value{word-break:break-all;color:var(--color)}.paper-detail-grid .detail-value a{color:var(--color);border-bottom:1px solid var(--border-color)}.paper-detail-grid .detail-value a:hover{border-bottom-color:var(--color)}@media (max-width:700px){.paper-detail-grid{grid-template-columns:1fr;gap:4px 0}.paper-detail-grid .detail-label{padding-top:8px}}.paper-support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0 28px}.paper-support-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;color:var(--color);text-decoration:none;transition:border-color .15s ease,transform .15s ease}.paper-support-card:hover{border-color:var(--color);text-decoration:none;color:var(--color)}.paper-support-card .paper-support-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:8px}.paper-support-card p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.paper-support-card .paper-support-cta{margin-top:auto;font-size:13px;font-weight:500;color:var(--color);display:inline-flex;align-items:center;gap:6px}.paper-support-card:hover .paper-support-cta i{transform:translateX(2px)}.paper-support-card .paper-support-cta i{transition:transform .15s ease}.pr-page{min-height:100%;background:var(--canvas-bg-color)}.pr-page-inner{padding-top:24px;padding-bottom:60px}.pr-header{margin:6px 0 18px}.pr-title{margin:4px 0 10px;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;word-break:break-word}.pr-header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pr-header-meta .pr-meta-item{display:inline-flex;align-items:center;gap:6px}.pr-header-meta .pr-meta-item i{color:var(--ink-muted)}.pr-body-card{margin:18px 0 24px;padding:20px 22px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-body-card .paper-section-eyebrow{margin-bottom:12px}.paper-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border-color);margin:18px 0 0}.paper-tabs .paper-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:0 0;border:0;border-bottom:2px solid transparent;font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--ink-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.paper-tabs .paper-tab:hover{color:var(--color)}.paper-tabs .paper-tab.active{color:var(--color);border-bottom-color:var(--color)}.paper-tabs .paper-tab i{color:inherit;opacity:.85}.paper-tabs .paper-tab:active,.paper-tabs .paper-tab:focus,.paper-tabs .paper-tab:focus-visible{outline:0;box-shadow:none}.paper-tabs .paper-tab:focus-visible{color:var(--color);background:var(--hover-bg-color);border-radius:6px 6px 0 0}.pr-diff{margin:16px 0 28px;display:flex;flex-direction:column;gap:16px}.diff-file-block{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.diff-file-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper-bg-alt);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:13px;color:var(--color)}.diff-file-icon{color:var(--ink-muted);flex-shrink:0}.diff-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.diff-file-status{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border-color);color:var(--ink-muted);background:var(--paper-card)}.diff-file-status-added{color:#2f6b3e;border-color:rgba(47,107,62,.35);background:rgba(47,107,62,.08)}.diff-file-status-deleted{color:#a13a2e;border-color:rgba(161,58,46,.35);background:rgba(161,58,46,.08)}.diff-file-status-renamed{color:#8a6b1e;border-color:rgba(138,107,30,.35);background:rgba(138,107,30,.08)}.dark-mode .diff-file-status-added{color:#a7e2a7;border-color:rgba(167,226,167,.35);background:rgba(167,226,167,.08)}.dark-mode .diff-file-status-deleted{color:#ff8b7b;border-color:rgba(255,139,123,.35);background:rgba(255,139,123,.08)}.dark-mode .diff-file-status-renamed{color:#ffd37a;border-color:rgba(255,211,122,.35);background:rgba(255,211,122,.08)}.diff-file-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px;line-height:1.55;table-layout:fixed}.diff-file-table tr.diff-row{vertical-align:top}.diff-file-table .diff-gutter{width:48px;padding:0 10px;text-align:right;color:var(--ink-muted);background:var(--paper-bg-alt);border-right:1px solid var(--border-color);user-select:none;font-variant-numeric:tabular-nums;vertical-align:top;white-space:nowrap}.diff-file-table .diff-gutter-new{border-right:1px solid var(--border-color)}.diff-file-table .diff-sign{width:18px;padding:0 6px;text-align:center;color:var(--ink-muted);background:var(--paper-bg-alt);user-select:none;vertical-align:top}.diff-file-table .diff-code{padding:1px 12px;white-space:pre-wrap;word-break:break-word;color:var(--color)}.diff-row-hunk td{background:var(--paper-bg-alt)!important;color:var(--ink-muted);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-size:12px;letter-spacing:.02em;padding-top:6px;padding-bottom:6px}.diff-row-hunk .diff-code{color:var(--ink-muted)}.diff-row-add .diff-code{background:rgba(47,107,62,.1);color:#1f4a2a}.diff-row-add .diff-gutter,.diff-row-add .diff-sign{background:rgba(47,107,62,.06);color:#2f6b3e}.diff-row-remove .diff-code{background:rgba(161,58,46,.1);color:#6e1f1a}.diff-row-remove .diff-gutter,.diff-row-remove .diff-sign{background:rgba(161,58,46,.06);color:#a13a2e}.dark-mode .diff-row-add .diff-code{background:rgba(167,226,167,.1);color:#c9f0c9}.dark-mode .diff-row-add .diff-gutter,.dark-mode .diff-row-add .diff-sign{background:rgba(167,226,167,.06);color:#a7e2a7}.dark-mode .diff-row-remove .diff-code{background:rgba(255,139,123,.1);color:#ffc9c0}.dark-mode .diff-row-remove .diff-gutter,.dark-mode .diff-row-remove .diff-sign{background:rgba(255,139,123,.06);color:#ff8b7b}@media (max-width:700px){.diff-file-table{font-size:12px}.diff-file-table .diff-gutter{width:36px;padding:0 6px}.diff-file-table .diff-sign{width:14px;padding:0 4px}.diff-file-table .diff-code{padding:1px 8px}}.pr-comments{list-style:none;margin:16px 0 28px;padding:0;display:flex;flex-direction:column;gap:12px}.pr-comment{padding:16px 18px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-comment-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border-color)}.pr-comment-author{font-weight:600;color:var(--color);font-size:14px;display:inline-flex;align-items:center;gap:6px}.pr-comment-author i{color:var(--ink-muted);font-size:12px}.pr-comment-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.pr-comment-body{color:var(--color);font-size:14px;line-height:1.6}.pr-comment-body :last-child{margin-bottom:0}@media (max-width:700px){.pr-page-inner{padding-top:14px;padding-bottom:40px}.pr-body-card{padding:14px 14px;border-radius:8px}.pr-comment{padding:12px 14px}.paper-tabs .paper-tab{padding:10px 12px;font-size:13px}.pr-diff pre{font-size:12px;padding:12px}}.toast{background-color:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(0,0,0,.08);backdrop-filter:none;min-width:280px;max-width:calc(100vw - 24px)}.toast .toast-header{background:0 0!important;color:var(--color)!important;border-bottom:1px solid var(--border-color)!important;font-family:var(--font-sans);padding:10px 12px}.toast .toast-header strong{font-weight:600;color:var(--color);letter-spacing:.01em}.toast .toast-header .close{color:var(--ink-muted)!important;text-shadow:none;opacity:.9;font-size:1.25rem}.toast .toast-header .close:hover{color:var(--color)!important;opacity:1}.toast .toast-body{color:var(--color)!important;padding:12px;font-size:14px;line-height:1.45}.dark-mode .toast{box-shadow:0 8px 24px rgba(0,0,0,.5)}.paper-crumbs{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);letter-spacing:0}.paper-crumbs .here,.paper-crumbs a{color:var(--color);text-decoration:none}.paper-page-title{font-family:var(--font-sans);font-weight:600;font-size:32px;line-height:1.2;letter-spacing:-.035em;margin:8px 0 6px;color:var(--color)}.paper-page-title em{color:inherit;font-style:normal}.paper-page-lede{color:var(--ink-soft);font-size:16px;max-width:640px;line-height:1.55}.paper-meta-rule{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:22px 0 18px;padding:12px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.paper-meta-rule b{color:var(--color);font-weight:500}.paper-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:10px;padding:20px 22px}.dark-mode .paper-card{background:var(--admin-stat-bg)}.paper-section-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:10px;display:block}.paper-section-title{font-family:var(--font-serif);font-weight:400;font-size:22px;letter-spacing:-.01em;margin:0 0 8px}.paper-kbd{display:inline-block;font-family:var(--font-mono);font-size:11px;padding:1px 6px;border:1px solid var(--border-color);border-bottom-width:2px;border-radius:3px;background:var(--paper-card,#fff);color:var(--color)}.paper-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;padding:2px 8px;border:1px solid var(--border-color);border-radius:999px;color:var(--ink-soft);background:var(--paper-card,#fff);letter-spacing:.04em}.paper-pill.accent{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.paper-pill.good{border-color:#2f6b3e;color:#2f6b3e}.paper-pill.warn{border-color:#8a6b1e;color:#8a6b1e}.paper-pill.bad{border-color:#a13a2e;color:#a13a2e}.paper-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--border-color)}.paper-row:first-child{border-top:1px solid var(--border-color)}.paper-row .row-title{font-family:var(--font-serif);font-size:20px;letter-spacing:-.01em;line-height:1.2}.paper-row .row-title a{color:var(--color)}.paper-row .row-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.03em;margin-top:6px;display:flex;flex-wrap:wrap;gap:14px}.paper-row .row-actions{display:flex;gap:6px;flex-shrink:0}.paper-form-step{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--border-color)}.paper-form-step:first-child{border-top:1px solid var(--border-color)}.paper-form-step .step-num{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);padding-top:4px;letter-spacing:.02em}.paper-form-step .step-title{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;line-height:1.2;margin-bottom:4px}.paper-form-step .step-sub{color:var(--ink-soft);font-size:14px;margin-bottom:14px;text-wrap:pretty}.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}.paper-switch-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:16px}.paper-switch-row+.paper-switch-row{border-top:1px dashed var(--border-soft)}.paper-switch-row .sw-label{font-weight:500}.paper-switch-row .sw-sub{display:block;font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-page .custom-select,.paper-page .form-control{border-radius:6px;border-color:var(--border-color);font-size:14px;padding:8px 12px;height:auto;background:var(--input-bg);color:var(--input-color)}.paper-page .custom-select:focus,.paper-page .form-control:focus{color:var(--input-color);background:var(--input-bg);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.custom-select:focus,.form-control:focus,input:focus,select:focus,textarea:focus{color:var(--input-color)!important;background-color:var(--input-bg)!important}.form-control::selection,input::selection,textarea::selection{background:var(--accent-soft);color:var(--input-color)}.dark-mode .form-control::selection,.dark-mode input::selection,.dark-mode textarea::selection{background:rgba(167,178,255,.3);color:var(--input-color)}.btn.btn-ink{background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);font-weight:500;border-radius:6px;padding:8px 14px}.btn.btn-ink:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color);border-color:var(--primary-hover-bg)}.btn.btn-accent{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:500;border-radius:6px}.btn.btn-accent:hover{background:#2e3bb8;border-color:#2e3bb8;color:#fff}.paper-page .dashboard-filter-row{display:flex;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin:18px 0 0;flex-wrap:wrap}.paper-page .dashboard-filter-row .form-control{height:38px;background:var(--paper-card)}.paper-page .dashboard-filter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.paper-page .dashboard-filter-row .btn-group .btn,.paper-page .dashboard-filter-row .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);height:38px;padding:0 14px;font-size:14px;font-weight:500;border-radius:var(--radius-control,6px);display:inline-flex;align-items:center;gap:6px;line-height:1}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label{color:var(--ink-muted);font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label::after{content:"·";margin-left:6px;color:var(--ink-faint)}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-value{font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .fas{font-size:11px;color:var(--ink-muted)}.paper-page .dashboard-filter-row .btn-group .btn:hover,.paper-page .dashboard-filter-row .dropdown-toggle:hover{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.paper-page .dashboard-filter-row .btn-group{gap:0}.paper-page .dashboard-filter-row .btn-group .btn{border-radius:0;border-right-width:0}.paper-page .dashboard-filter-row .btn-group .btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.paper-page .dashboard-filter-row .btn-group .btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px;border-right-width:1px}.paper-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--color);color:var(--canvas-bg-color);border-color:var(--color)}.paper-page .dashboard-filter-row .search-wrap{flex:1 1 280px;min-width:220px}.paper-page .quota-row{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:24px 0 0;padding:0;background:0 0;border:none;border-radius:0}.paper-page .quota-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);opacity:1}.paper-page .quota-value{font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;color:var(--color)}.paper-page .quota-value .quota-unlimited-tag{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);margin-left:4px}.paper-page .quota-track{height:6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;width:100%;min-width:0}.paper-page .quota-track .quota-fill{height:100%;min-width:2px;border-radius:999px;background:var(--color);transition:width .3s ease}.paper-page .quota-track.quota-warn .quota-fill{background:var(--status-progress)}.paper-page .quota-track.quota-danger .quota-fill{background:var(--status-error)}.paper-page .quota-track.quota-unlimited{background:repeating-linear-gradient(-45deg,var(--paper-bg-alt) 0 4px,var(--border-soft,var(--border-color)) 4px 6px)}.paper-page .repo-list{margin-top:8px}.paper-page .repo-list-item{padding:20px 0;gap:16px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-page .repo-list-item:first-child{border-top:none}.paper-page .repo-list-item-header{gap:10px;margin-bottom:6px}.paper-page .repo-name{font-family:var(--font-mono);font-size:15px;color:var(--color)}.paper-page .repo-source{font-size:13px;color:var(--ink-soft);opacity:1;gap:10px}.paper-page .repo-source a{color:var(--ink-soft);border-bottom:1px dotted var(--border-color)}.paper-page .repo-source a:hover{color:var(--color)}.paper-page .repo-meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);opacity:1;gap:16px;margin-top:10px}.paper-page .type-badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;letter-spacing:.1em}.paper-page .repo-list-item-actions .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;font-size:13px;padding:6px 12px;height:auto}.paper-settings{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.paper-settings .paper-page-title{max-width:14em}.paper-settings-body{display:grid;grid-template-columns:220px 1fr;gap:60px;margin-top:32px;border-top:1px solid var(--border-color);padding-top:28px}.paper-settings-toc{position:sticky;top:32px;align-self:start}.paper-settings-toc-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:12px}.paper-settings-toc nav{display:flex;flex-direction:column;gap:2px}.paper-settings-toc nav a{padding:8px 0 8px 14px;border-left:2px solid transparent;color:var(--ink-soft);font-size:14px;text-decoration:none}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.paper-settings-main{min-width:0;max-width:720px}.paper-settings-section{padding:28px 0;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section:first-child{padding-top:0}.paper-settings-section:last-of-type{border-bottom:none}.paper-settings-section .form-group{margin-bottom:18px}.paper-settings-section .form-check{padding:10px 0 10px 28px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section .form-check:last-child{border-bottom:none}.paper-settings-section .form-check-label{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color);cursor:pointer}.paper-settings-section .form-check-input{cursor:pointer;width:16px;height:16px;margin-top:3px;margin-left:-28px;accent-color:var(--color)}.paper-settings-section .form-text{color:var(--ink-soft);font-size:13px;margin-top:4px;max-width:48em}.paper-settings-section .paper-section-copy{margin:-4px 0 14px}.paper-settings-footer{padding-top:24px;display:flex;flex-direction:column;gap:14px}.paper-settings-footer .btn-ink{align-self:flex-start}.paper-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.paper-settings-hint{font-size:13px;color:var(--ink-muted)}.paper-inline-alert{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-control,6px);border:1px solid var(--border-color);background:var(--paper-bg-alt);font-size:13px;color:var(--color)}.paper-inline-alert i{margin-top:2px;color:var(--ink-muted)}.paper-inline-alert-error{border-color:var(--status-error);background:var(--status-error-soft)}.paper-inline-alert-error i{color:var(--status-error)}.paper-account-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);background:var(--paper-card);margin-bottom:20px}.paper-account-card img{flex-shrink:0}.paper-account-identity{flex:1 1 auto;min-width:0}.paper-account-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color)}.paper-account-meta{font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-danger-zone{padding:16px;border:1px solid var(--status-error);border-radius:var(--radius-surface,10px);background:var(--status-error-soft)}.paper-danger-head{font-weight:600;font-size:14px;color:var(--status-error);margin-bottom:6px}.paper-danger-copy{font-size:13px;color:var(--ink-soft);max-width:52em;margin-bottom:12px}.paper-danger-zone .paper-inline-alert{margin-bottom:12px}.btn.btn-outline-danger{background:0 0;color:var(--status-error);border:1px solid var(--status-error);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-danger:hover{background:var(--status-error);color:#fff;border-color:var(--status-error)}.navbar .user-menu{min-width:260px}.navbar .user-menu .dropdown-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px!important}.navbar .user-menu .dropdown-item i{width:16px;margin-top:3px;font-size:13px;color:var(--ink-muted);text-align:center}.navbar .user-menu .dropdown-item span{display:flex;flex-direction:column;line-height:1.3}.navbar .user-menu .dropdown-item small{font-size:12px;color:var(--ink-muted)}.navbar .user-menu .dropdown-header{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px}.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:24px}.paper-settings-toc{position:static}.paper-settings-toc nav{flex-direction:row;flex-wrap:wrap;gap:8px}.paper-settings-toc nav a{border-left:none;border-bottom:2px solid transparent;padding:4px 0}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--color);border-left:none}}.paper-table{display:block;margin-top:20px;background:0 0;border:none;border-top:1px solid var(--border-color);border-radius:0;overflow:visible}.paper-table .paper-table-head,.paper-table .paper-table-row{display:grid;grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 140px 90px 140px 52px;align-items:center;gap:18px;padding:12px 4px}.paper-table.paper-table-conferences .paper-table-head,.paper-table.paper-table-conferences .paper-table-row{grid-template-columns:minmax(280px,2.4fr) 140px 90px 220px 52px}.paper-table.paper-table-repos .paper-table-head,.paper-table.paper-table-repos .paper-table-row{grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px}.paper-table.paper-table-repos.has-bulk .paper-table-head,.paper-table.paper-table-repos.has-bulk .paper-table-row{grid-template-columns:28px minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px;gap:12px}.paper-table .admin-users-row{grid-template-columns:28px minmax(280px,2.4fr) 90px 120px 100px 52px!important;gap:12px!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(320px,3fr) 190px 90px 170px 52px;gap:20px;padding:8px 4px}.paper-table.paper-table-dashboard .cell-anon .anon-text{gap:2px}.paper-table.paper-table-dashboard .cell-anon .repo-name{padding:0}.paper-table .paper-table-head{background:0 0;border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-top:8px;padding-bottom:8px}.paper-table .paper-table-head .sortable{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;padding:2px 0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border-radius:4px}.paper-table .paper-table-head .sortable:hover{color:var(--color)}.paper-table .paper-table-head .sortable.active{color:var(--color)}.paper-table .paper-table-head .sortable i{font-size:10px}.paper-table .paper-table-head .num,.paper-table .paper-table-row .num{text-align:right}.paper-table .paper-table-head .num .sortable{flex-direction:row-reverse}.paper-table .paper-table-row{border-top:1px solid var(--border-soft,var(--border-color));font-size:14px;transition:background-color .12s ease}.paper-table .paper-table-row:hover{background:var(--hover-bg-color)}.paper-table .paper-table-row.row-clickable{cursor:pointer}.paper-table .paper-table-row.repo-inactive>:not(.cell-actions){opacity:.55}.paper-table .paper-table-row.repo-error{background:var(--status-error-soft);border-left:2px solid var(--status-error);padding-left:6px}.paper-table .paper-table-row.repo-error:hover{background:var(--status-error-soft-hover)}.cell-status .status-sub.status-sub-error,.paper-table .cell-status .status-sub-error{color:var(--status-error)}.paper-table .cell-status .status-sub-warn{color:var(--status-progress)}.paper-table .cell-anon{display:flex;align-items:center;gap:12px;min-width:0}.paper-table .cell-anon .type-badge{flex-shrink:0;min-width:52px;justify-content:center}.paper-table .cell-anon .anon-text{min-width:0;display:flex;flex-direction:column;gap:3px}.paper-table .cell-anon .anon-title{display:flex;align-items:center;gap:8px;min-width:0}.paper-table .cell-anon .anon-title .type-badge{margin-left:0}.paper-table .cell-anon .repo-name{font-family:var(--font-mono);font-size:14px;color:var(--color);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;padding:2px 0}.paper-table .cell-anon .repo-name-static{color:var(--ink-muted);font-style:italic}.paper-table .cell-anon .anon-sub{font-family:var(--font-sans);font-size:13px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:10px;min-width:0}.paper-table .cell-anon .anon-sub .anon-source{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-anon .anon-sub .conf-tag{flex:0 1 auto;min-width:72px;max-width:50%}.paper-table .cell-anon .anon-sub a{color:var(--ink-muted);border-bottom:1px dotted var(--border-color);padding:4px 0;margin:-4px 0}.paper-table .cell-anon .anon-sub a:hover{color:var(--color)}.paper-table .cell-anon .anon-sub .commit-hash{font-family:var(--font-mono);font-size:12px}.paper-table .cell-conf{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-conf span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:14px;color:var(--color);min-width:0}.paper-table .cell-status .status-line{display:inline-flex;align-items:center;gap:8px}.paper-table .cell-status .status-sub{flex-basis:100%;font-family:var(--font-sans);font-size:13px;line-height:1.3;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.paper-table .cell-expires{font-family:var(--font-sans);font-size:13px;color:var(--ink-soft)}.paper-table .cell-expires .expires-never{color:var(--ink-muted)}.paper-table .cell-expires .expires-past{color:var(--ink-muted)}.paper-table .empty-dash{color:var(--ink-faint)}.paper-table .cell-actions{display:flex;justify-content:flex-end}.status-dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0;background:var(--status-inactive)}.status-dot.status-ready{background:var(--status-ready)}.status-dot.status-error{background:var(--status-error)}.status-dot.status-preparing,.status-dot.status-progress{background:var(--status-progress)}.status-dot.status-expired,.status-dot.status-removed{background:var(--status-inactive)}.dashboard-page{padding-bottom:96px}.dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;font-size:13px;color:var(--ink-muted)}.dashboard-meta .dashboard-count{font-variant-numeric:tabular-nums}.btn-link-inline{background:0 0;border:none;padding:2px 4px;margin:-2px 0;font:inherit;color:var(--link-color);cursor:pointer;border-radius:4px}.btn-link-inline:hover{color:var(--link-hover-color);text-decoration:underline}.btn.btn-outline-ink{background:0 0;color:var(--color);border:1px solid var(--border-color);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-ink:hover{background:var(--hover-bg-color);color:var(--color);border-color:var(--ink-faint)}.paper-page .dropdown-menu .dropdown-item-danger,.paper-page .dropdown-menu .dropdown-item-danger i{color:var(--status-error)}.paper-page .dropdown-menu .dropdown-item-danger:focus,.paper-page .dropdown-menu .dropdown-item-danger:hover{background:var(--status-error-soft-hover);color:var(--status-error)}.paper-page .dropdown-menu button.dropdown-item{width:100%;text-align:left;background:0 0;border:none}.paper-page .dropdown-menu .dropdown-divider{border-top-color:var(--border-soft,var(--border-color));margin:4px 0}.paper-table .paper-table-skeleton{pointer-events:none}.skeleton{display:block;background:var(--paper-bg-alt);border-radius:4px;position:relative;overflow:hidden}.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--hover-bg-color),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton-line{height:12px}.skeleton-line+.skeleton-line{margin-top:8px}.skeleton-line-sm{height:10px}.skeleton-badge{width:52px;height:22px;border-radius:999px;flex-shrink:0}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none}}.paper-table .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 20px;color:var(--ink-muted);text-align:center;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table .paper-table-empty>i{font-size:1.5rem;color:var(--ink-faint)}.paper-table .paper-table-empty-actions{display:flex;gap:8px;margin-top:8px}.bulk-bar{display:flex;align-items:center;gap:8px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;margin:8px 0}.paper-page.admin-page .paper-page-title{font-size:1.5rem;margin:4px 0}.paper-page.admin-page .paper-page-lede{display:none}.paper-page.admin-page .paper-crumbs{margin-bottom:4px}.paper-page.admin-page .admin-nav{margin:6px 0 12px}.admin-filter-toolbar{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px;position:sticky;top:0;z-index:4;background:var(--canvas-bg-color);padding:6px 0;border-bottom:1px solid var(--border-soft,var(--border-color));box-shadow:0 1px 0 var(--canvas-bg-color)}@media (max-width:900px){.admin-filter-toolbar{position:static;box-shadow:none}}.admin-filter-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-filter-row .search-wrap{flex:1;min-width:220px}.admin-filter-row .search-wrap .form-control{height:34px}.admin-filter-inline{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.admin-filter-inline>label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0;white-space:nowrap}.admin-filter-inline .form-control-sm{height:28px;padding:2px 8px;font-size:12px}.admin-filter-inline input[type=search].form-control-sm,.admin-filter-inline input[type=text].form-control-sm{width:130px}.admin-filter-inline input[type=date].form-control-sm{width:130px}.admin-filter-inline select.form-control-sm{width:auto;min-width:88px}.admin-filter-inline .arrow{color:var(--ink-muted);font-size:11px}.admin-filter-spacer{flex:1}.admin-active-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--ink-muted)}.admin-active-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--hover-bg-color);font-size:12px;color:var(--color)}.admin-active-chip .key{color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.admin-active-chip button{background:0 0;border:none;cursor:pointer;padding:0 4px;color:var(--ink-muted);font-size:12px;border-radius:50%}.admin-active-chip button:hover{color:#b42318}.admin-search-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);pointer-events:none;border:1px solid var(--border-color);border-radius:4px;padding:1px 5px;background:var(--paper-card)}.admin-filter-row .search-wrap{position:relative}.admin-filter-row .search-wrap .form-control{padding-right:40px}.paper-table-row.row-selected{background:rgba(47,122,68,.06)}.queue-state-pills{display:inline-flex;gap:6px;margin-left:8px;flex-wrap:wrap}.queue-state-pills .pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted)}.queue-state-pills .pill-active{color:#c48a2e;border-color:rgba(196,138,46,.4)}.queue-state-pills .pill-failed{color:#b42318;border-color:rgba(180,35,24,.4)}.queue-state-pills .pill-completed{color:#2f7a44;border-color:rgba(47,122,68,.3)}.queue-state-pills .pill-waiting{color:var(--ink-soft)}.queue-state-pills .pill-delayed{color:var(--ink-muted)}.admin-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 12px;font-size:13px}.admin-summary .summary-total{font-family:var(--font-serif);font-size:1rem;color:var(--color);margin-right:8px}.admin-summary .summary-meta{color:var(--ink-muted);font-size:12px;margin-right:8px}.admin-summary .summary-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);cursor:pointer;font-size:12px;user-select:none;transition:background-color .1s,border-color .1s}.admin-summary .summary-pill:hover{background:var(--hover-bg-color)}.admin-summary .summary-pill .count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.admin-summary .summary-pill.active{background:var(--primary-bg);color:var(--primary-color);border-color:var(--primary-bg)}.admin-summary .summary-pill.active .count{color:inherit}.admin-summary .summary-pill.error .count{color:#b42318}.admin-summary .summary-pill.warn .count{color:#c48a2e}.admin-summary .summary-pill.ok .count{color:#2f7a44}.dark-mode .admin-summary .summary-pill.error .count{color:#f08a82}.dark-mode .admin-summary .summary-pill.warn .count{color:#e8b970}.dark-mode .admin-summary .summary-pill.ok .count{color:#7dc894}.dark-mode .queue-state-pills .pill-active{color:#e8b970;border-color:rgba(232,185,112,.4)}.dark-mode .queue-state-pills .pill-failed{color:#f08a82;border-color:rgba(240,138,130,.4)}.dark-mode .queue-state-pills .pill-completed{color:#7dc894;border-color:rgba(125,200,148,.3)}.job-progress{flex:1;height:6px;background:var(--border-soft,var(--border-color));border-radius:999px;overflow:hidden;margin-left:12px;max-width:200px}.job-progress-bar{height:100%;background:#2f7a44;transition:width .3s}.paper-table-empty{padding:48px 4px;text-align:center;color:var(--ink-muted);display:flex;flex-direction:column;align-items:center;gap:8px;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table-empty>i{font-size:1.5rem}.q-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:4px}.q-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-range-btns{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.q-range-btns .btn{border:none;border-radius:0;padding:5px 14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);background:var(--paper-card)}.q-range-btns .btn+.btn{border-left:1px solid var(--border-color)}.q-range-btns .btn.active{background:var(--color);color:var(--paper-card)}.q-cards{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap}.q-card{flex:1;min-width:140px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.q-card:hover{border-color:var(--ink-muted)}.q-card.selected{border-color:var(--color);box-shadow:0 0 0 1px var(--color)}.q-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.q-dot{width:8px;height:8px;border-radius:50%;background:#2f7a44;flex-shrink:0}.q-dot-red{background:#b42318}.dark-mode .q-dot{background:#7dc894}.dark-mode .q-dot-red{background:#f08a82}.q-card-name{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--ink-muted);letter-spacing:.04em}.q-card-count{font-family:var(--font-serif);font-size:2rem;font-weight:400;line-height:1.1;color:var(--color);margin-bottom:6px}.q-card-sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.04em}.q-card-bar{height:4px;background:var(--border-color);border-radius:2px;overflow:hidden;margin-top:6px}.q-card-bar-fill{height:100%;background:#3b4ad6;border-radius:2px;transition:width .3s}.dark-mode .q-card-bar-fill{background:#a7b2ff}.q-detail{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-bottom:20px}.q-throughput{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-chart-wrap{position:relative}.q-throughput canvas{width:100%;display:block}.q-chart-tooltip{position:absolute;pointer-events:none;background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;font-family:var(--font-mono);font-size:11px;line-height:1.6;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.q-chart-tooltip .q-tip-time{color:var(--ink-muted);margin-bottom:2px}.q-chart-tooltip .q-tip-completed{color:#3b4ad6}.q-chart-tooltip .q-tip-failed{color:#b42318}.dark-mode .q-chart-tooltip .q-tip-completed{color:#a7b2ff}.dark-mode .q-chart-tooltip .q-tip-failed{color:#f08a82}.q-chart-crosshair{position:absolute;top:0;width:1px;height:100%;background:var(--ink-muted);opacity:.3;pointer-events:none;z-index:9}.q-stats-panel{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px;display:flex;flex-direction:column}.q-section-label{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:lowercase;letter-spacing:.04em;margin-bottom:14px}.q-section-right{float:right;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.q-legend-completed{color:#3b4ad6}.q-legend-failed{color:#b42318;margin-left:8px}.q-legend-exec{color:#b8860b;margin-left:8px;letter-spacing:2px}.dark-mode .q-legend-completed{color:#a7b2ff}.dark-mode .q-legend-failed{color:#f08a82}.dark-mode .q-legend-exec{color:#f5c842}.q-chart-tooltip .q-tip-exec{color:#b8860b}.dark-mode .q-chart-tooltip .q-tip-exec{color:#f5c842}.q-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;flex:1}.q-stat-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.q-stat-value{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;color:var(--color);line-height:1.2}.q-stats-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-color)}.q-stats-actions .btn{font-family:var(--font-mono);font-size:11px;padding:6px 14px;border-radius:8px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.q-jobs{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-jobs-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.q-state-filters{display:inline-flex;gap:6px;flex-wrap:wrap}.q-state-toggle{cursor:pointer;display:inline-flex;align-items:center}.q-state-toggle input{display:none}.q-state-chip{font-family:var(--font-mono);font-size:11px;padding:3px 10px;border-radius:10px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);transition:opacity .15s,background .15s;text-transform:capitalize}.q-state-toggle input:checked+.q-state-chip{opacity:1}.q-state-toggle input:not(:checked)+.q-state-chip{opacity:.4;text-decoration:line-through}.q-state-badge,.q-state-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.q-state-badge{display:inline-block;padding:2px 8px;border-radius:8px}.q-state-active{background:#dbeafe;color:#1d4ed8}.q-state-waiting{background:#fef3c7;color:#92400e}.q-state-delayed{background:#e0e7ff;color:#4338ca}.q-state-failed{background:#fee2e2;color:#b91c1c}.q-state-completed{background:#dcfce7;color:#166534}.dark-mode .q-state-active{background:rgba(59,130,246,.2);color:#93bbfd}.dark-mode .q-state-waiting{background:rgba(251,191,36,.15);color:#fbbf24}.dark-mode .q-state-delayed{background:rgba(99,102,241,.2);color:#a5b4fc}.dark-mode .q-state-failed{background:rgba(239,68,68,.2);color:#fca5a5}.dark-mode .q-state-completed{background:rgba(34,197,94,.15);color:#86efac}.q-cell-state{width:120px}.q-delay-hint{display:block;font-size:10px;color:var(--ink-muted);margin-top:2px;font-family:var(--font-mono)}.q-search-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.q-search-row .form-control{max-width:320px;height:34px}.q-auto-refresh{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.q-table{width:100%;border-collapse:collapse}.q-table thead th{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;border-bottom:1px solid var(--border-color);text-align:left;white-space:nowrap}.q-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .1s}.q-table tbody tr:hover{background:var(--paper-bg-alt)}.q-table tbody tr:last-child{border-bottom:none}.q-table tbody td{padding:10px 10px;font-size:.875rem;vertical-align:middle}.q-cell-id{font-family:var(--font-mono);font-size:12px;white-space:nowrap}.q-cell-id{display:flex;align-items:center;gap:8px}.q-chevron{font-size:10px;color:var(--ink-muted);transition:transform .15s;flex-shrink:0}.q-chevron-open{transform:rotate(90deg)}.q-cell-id a{color:var(--color)}.q-cell-payload{font-family:var(--font-mono);font-size:12px;color:var(--color)}.q-payload-detail{color:var(--ink-muted)}.q-cell-num{font-family:var(--font-mono);font-size:12px;text-align:center;white-space:nowrap}.q-cell-progress{min-width:120px}.q-progress-wrap{display:flex;align-items:center;gap:8px}.q-progress-bar{flex:1;height:6px;border-radius:3px;overflow:hidden;background-image:linear-gradient(to right,#3b4ad6 var(--pct,0),var(--border-color) var(--pct,0))}.dark-mode .q-progress-bar{background-image:linear-gradient(to right,#a7b2ff var(--pct,0),var(--border-color) var(--pct,0))}.q-progress-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap;min-width:32px;text-align:right}.q-cell-actions{text-align:right;white-space:nowrap}.q-cell-actions .btn{padding:3px 8px;font-size:11px;background:0 0;border:1px solid var(--border-color);color:var(--ink-muted)}.q-cell-actions .btn:hover{color:var(--color)}.q-row-failed{background:rgba(180,35,24,.04)}.dark-mode .q-row-failed{background:rgba(240,138,130,.06)}.q-error-detail{padding:4px 10px 12px;font-size:12px}.q-error-reason{color:#b42318;font-size:.8125rem;margin-bottom:4px}.dark-mode .q-error-reason{color:#f08a82}.q-toast-error{background:#fbe7e7;color:#b42318;border:1px solid #f3c7c7;border-radius:8px;padding:10px 16px;margin-bottom:12px;font-family:var(--font-mono);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px}.dark-mode .q-toast-error{background:rgba(240,138,130,.1);color:#f08a82;border-color:rgba(240,138,130,.25)}.q-error-stack{font-size:.75rem;max-height:120px;overflow:auto;margin:4px 0 0;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px}.q-row-expanded>td{border-bottom-color:transparent}.q-detail-row>td{padding:0 10px 14px!important;border-bottom:1px solid var(--border-color)}.q-job-detail{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:8px;padding:14px 16px}.q-job-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 20px;margin-bottom:10px}.q-job-detail-item{display:flex;flex-direction:column;gap:2px}.q-job-detail-label{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.q-job-detail-value{font-family:var(--font-mono);font-size:12px;color:var(--color);word-break:break-all}.q-job-detail-value a{color:var(--color)}.q-job-detail-error{margin:8px 0}.q-job-detail-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color)}.q-job-detail-actions .btn{font-family:var(--font-mono);font-size:11px;padding:5px 12px;border-radius:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}@media (max-width:900px){.q-detail{grid-template-columns:1fr}.q-cards{flex-direction:column}.q-card{min-width:100%}.q-jobs-header{flex-direction:column;align-items:flex-start}.q-tabs{flex-wrap:wrap}.q-search-row{flex-wrap:wrap}.q-search-row .form-control{max-width:100%;flex:1}.q-table{font-size:12px}.q-header{flex-direction:column}.q-job-detail-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.paper-table .paper-table-head{display:none}.paper-table .admin-users-row,.paper-table .paper-table-row,.paper-table.paper-table-conferences .paper-table-row,.paper-table.paper-table-repos .paper-table-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:14px 0;grid-template-columns:none!important}.paper-table .cell-anon{flex:1 1 calc(100% - 52px);min-width:0;order:1}.paper-table .cell-actions{flex:0 0 auto;order:2;align-self:center}.paper-table .cell-conf,.paper-table .cell-expires,.paper-table .cell-status,.paper-table .cell-views{order:3;font-size:13px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;text-align:left}.paper-table .cell-status{flex-wrap:nowrap;gap:6px;min-width:0}.paper-table .cell-status .status-sub{flex-basis:auto;font-size:13px;line-height:inherit}.paper-table .cell-status .status-sub::before{content:"·";margin-right:6px;color:var(--ink-faint)}.paper-table .cell-conf{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views.num{text-align:left}.paper-table .paper-table-skeleton .cell-expires,.paper-table .paper-table-skeleton .cell-status,.paper-table .paper-table-skeleton .cell-views{flex:1 1 30%}.paper-table .cell-views::before{content:'\f06e';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table .cell-expires::before{content:'\f017';font-family:'Font Awesome 5 Free';font-weight:400;font-size:10px;color:var(--ink-muted)}.paper-table .cell-conf::before{content:'\f51c';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table-dashboard .cell-conf::before{content:none}.paper-table .cell-conf:has(.empty-dash),.paper-table .cell-expires:has(.empty-dash){display:none}.paper-table .cell-expires::before,.paper-table .cell-views::before{color:var(--ink-faint)}}.paper-page .dropdown-menu{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);box-shadow:0 12px 28px rgba(26,24,21,.08);padding:6px;min-width:220px;font-family:var(--font-sans);font-size:14px;color:var(--color);margin-top:6px}.paper-page .dropdown-menu .dropdown-header{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px;font-weight:500}.paper-page .dropdown-menu .dropdown-item{border-radius:6px;padding:8px 10px;color:var(--color);font-size:14px;display:flex;align-items:center;gap:8px}.paper-page .dropdown-menu .dropdown-item:focus,.paper-page .dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .dropdown-menu .dropdown-item i{width:16px;font-size:13px;color:var(--ink-muted)}.paper-page .dropdown-menu .form-check.dropdown-item{padding:8px 10px 8px 36px!important;position:relative}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-input{position:absolute;left:12px;top:50%;transform:translateY(-50%);margin:0;width:16px;height:16px;accent-color:var(--color);cursor:pointer}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-label{font-family:var(--font-sans);font-size:14px;color:var(--color);font-weight:400;margin:0;cursor:pointer}.btn.btn-icon-dots{width:32px;height:32px;padding:0;border:1px solid transparent;background:0 0;color:var(--ink-muted);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn.btn-icon-dots:focus,.btn.btn-icon-dots:hover,.btn.btn-icon-dots[aria-expanded=true]{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.btn.btn-icon-dots::after{display:none}.btn.btn-icon-dots i{font-size:15px}.paper-page .repo-list-empty{border-top:none;padding:56px 20px;color:var(--ink-muted)}.paper-page .filter-chip{background:var(--paper-bg-alt);color:var(--color);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}@media (max-width:768px){.paper-page .paper-page-title{font-size:clamp(1.4rem,6vw,1.9rem);margin:4px 0 2px}.paper-page .paper-page-lede{font-size:13px;line-height:1.4;margin-bottom:0}.paper-page .btn-ink{padding:6px 12px;font-size:13px}.paper-page .quota-row{grid-template-columns:1fr;gap:12px;padding:0;margin:16px 0 0}.paper-page .dashboard-filter-row{padding:10px 0;margin-top:12px;gap:8px}.paper-page .quota-header{flex-direction:row;align-items:baseline;gap:8px}.paper-page .quota-value{white-space:nowrap}.paper-page .dashboard-filter-controls{width:100%}.paper-page .dashboard-filter-controls .btn-group{flex:1 1 100%;display:flex}.paper-page .dashboard-filter-controls .btn-group .btn{flex:1;justify-content:center}.paper-page .dashboard-filter-controls .dropdown{flex:1 1 0;min-width:0}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{width:100%;justify-content:space-between}.paper-page .dashboard-filter-controls .dropdown .filter-btn-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:480px){.paper-page .paper-page-lede{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.empty-state{text-align:center;padding:40px 20px;opacity:.6}.empty-state i{font-size:2rem;margin-bottom:10px;display:block}.paper-page .progress{height:10px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;margin-bottom:20px}.paper-page .progress .progress-bar{background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:10px;line-height:10px}.paper-page .progress .progress-bar.bg-success{background:var(--status-ready)!important}.paper-page .progress .progress-bar.bg-warning{background:var(--status-progress)!important;color:#fff}.paper-page .progress .progress-bar.bg-danger{background:var(--status-error)!important}.paper-page .progress .progress-bar.bg-dark{background:var(--ink-faint)!important}.paper-page .form>h5,.paper-page form>h5,.paper-page>h5{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:24px 0 8px}.paper-page .accordion .card{background:var(--paper-card,var(--sidebar-bg-color));border:1px solid var(--border-color);border-radius:8px!important;margin-bottom:8px;overflow:hidden}.paper-page .accordion .card+.card{border-top:1px solid var(--border-color)}.paper-page .accordion .card-header{background:0 0;border:none;padding:0}.paper-page .accordion .card-header .btn{color:var(--color)!important;font-family:var(--font-sans);font-weight:500;font-size:14px;padding:14px 18px!important;background:0 0!important;border:none!important;position:relative}.paper-page .accordion .card-header .btn::after{content:"+";position:absolute;right:18px;font-family:var(--font-serif);font-size:20px;color:var(--ink-muted)}.paper-page .accordion .card-header .btn:not(.collapsed)::after{content:"–"}.paper-page .accordion .card-body{padding:6px 18px 18px!important;border-top:1px solid var(--border-soft)}.paper-page .accordion .form-check-label{color:var(--color);font-weight:500;font-size:14px}.paper-page .accordion .form-text{color:var(--ink-muted);font-size:12px;margin-top:2px}.faq-section .panel-body code{font-family:var(--font-mono);font-size:13px;padding:1px 6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:3px;color:var(--color)}.faq-section .panel-body a{color:var(--accent)}@media (max-width:820px){.paper-faq-body{grid-template-columns:1fr;gap:24px}.paper-faq-toc{position:static}}.paper-footer{margin-top:80px;padding:56px max(20px,calc((100vw - 1200px)/ 2)) 28px;border-top:1px solid var(--border-color);background:var(--canvas-bg-color);font-family:var(--font-sans)}.paper-footer-inner{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}.paper-footer-brand .paper-footer-mark{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--color)}.paper-footer-brand .paper-footer-mark em{font-style:italic;font-weight:400}.paper-footer-tag{margin-top:10px;color:var(--ink-soft);font-size:14px;line-height:1.55;max-width:340px}.paper-footer-head{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.paper-footer-col a{display:block;color:var(--color);font-size:14px;padding:4px 0;text-decoration:none}.paper-footer-col a:hover{color:var(--accent)}.paper-footer-rule{height:1px;background:var(--border-color);margin:40px 0 16px}.paper-footer-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.02em}.paper-footer-foot .paper-footer-meta{font-family:var(--font-serif);font-style:italic;font-size:14px;letter-spacing:0;color:var(--ink-soft)}@media (max-width:768px){.paper-footer-inner{grid-template-columns:1fr 1fr}}.file.folder.truncated .truncated-warning{color:#d39e00;margin-left:4px;font-size:.85em;flex-shrink:0}.file.folder.truncated>a{color:#d39e00}body{--bucket-error-bg:#FCEDED;--bucket-error-fg:#8A1F1F;--bucket-error-bd:#F0C4C4;--bucket-error-dot:#B53737;--bucket-warn-bg:#FFF3DF;--bucket-warn-fg:#7A4D00;--bucket-warn-bd:#F0D8A0;--bucket-warn-dot:#B07A2F;--bucket-info-bg:#EAF2EC;--bucket-info-fg:#2C5D3A;--bucket-info-bd:#C5DCCD;--bucket-info-dot:#5B8D6B;--card-shadow:0 1px 2px rgba(26, 24, 21, 0.04),0 4px 14px rgba(26, 24, 21, 0.05);--card-shadow-hover:0 1px 2px rgba(26, 24, 21, 0.06),0 8px 24px rgba(26, 24, 21, 0.08)}.dark-mode{--bucket-error-bg:rgba(255, 139, 123, 0.10);--bucket-error-fg:#FF8B7B;--bucket-error-bd:rgba(255, 139, 123, 0.28);--bucket-error-dot:#FF8B7B;--bucket-warn-bg:rgba(255, 211, 122, 0.10);--bucket-warn-fg:#FFD37A;--bucket-warn-bd:rgba(255, 211, 122, 0.28);--bucket-warn-dot:#FFD37A;--bucket-info-bg:rgba(152, 200, 168, 0.10);--bucket-info-fg:#98C8A8;--bucket-info-bd:rgba(152, 200, 168, 0.28);--bucket-info-dot:#98C8A8;--card-shadow:0 1px 2px rgba(0, 0, 0, 0.35),0 6px 18px rgba(0, 0, 0, 0.30);--card-shadow-hover:0 2px 4px rgba(0, 0, 0, 0.45),0 12px 28px rgba(0, 0, 0, 0.40)}.errors-page .errors-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 8px}.errors-page .errors-actions{display:flex;gap:6px}.errors-page .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:14px 0 18px}.errors-page .kpi-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease,transform 160ms ease}.errors-page .kpi-card:hover{box-shadow:var(--card-shadow-hover)}.errors-page .kpi-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.errors-page .kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.errors-page .kpi-card.kpi-error .kpi-value{color:var(--bucket-error-fg)}.errors-page .kpi-card.kpi-warn .kpi-value{color:var(--bucket-warn-fg)}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--bucket-info-fg)}.errors-page .kpi-sub{font-size:.75rem;color:var(--ink-muted);font-style:italic}.errors-page .kpi-sub.up{color:var(--bucket-error-fg);font-style:normal}.errors-page .kpi-sub.down{color:var(--bucket-info-fg);font-style:normal}.errors-page .dropped-warn{color:var(--bucket-error-fg);font-weight:600;font-style:normal}.errors-page .volume-chart{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;margin-bottom:18px;box-shadow:var(--card-shadow)}.errors-page .volume-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.errors-page .volume-legend{display:flex;gap:14px;align-items:center;text-transform:none;letter-spacing:0;font-family:var(--font-sans)}.errors-page .volume-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}.errors-page .dot.dot-error{background:var(--bucket-error-dot)}.errors-page .dot.dot-warn{background:var(--bucket-warn-dot)}.errors-page .dot.dot-info{background:var(--bucket-info-dot)}.errors-page .volume-bars{display:flex;align-items:flex-end;gap:4px;height:80px}.errors-page .volume-bar{display:flex;flex-direction:column-reverse;flex:1 1 0;min-width:6px;height:100%}.errors-page .volume-bar .seg{display:block;width:100%}.errors-page .seg.seg-error{background:var(--bucket-error-dot)}.errors-page .seg.seg-warn{background:var(--bucket-warn-dot)}.errors-page .seg.seg-info{background:var(--bucket-info-dot);opacity:.7}.errors-page .errors-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.errors-page .seg-tabs{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--paper-card)}.errors-page .seg-tabs button{background:0 0;border:none;padding:6px 14px;font-size:.875rem;cursor:pointer;color:var(--color);font-family:var(--font-sans)}.errors-page .seg-tabs button+button{border-left:1px solid var(--border-color)}.errors-page .seg-tabs button.active{background:var(--primary-bg);color:var(--primary-color)}.errors-page .errors-toolbar .search-wrap{position:relative;flex:1 1 320px;min-width:220px}.errors-page .errors-toolbar .search-wrap input{width:100%;padding:6px 10px 6px 32px;border:1px solid var(--border-color);border-radius:8px;font-family:var(--font-mono);font-size:.8125rem;background:var(--input-bg);color:var(--input-color)}.errors-page .errors-toolbar .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-muted);font-size:.875rem}.errors-page .errors-toolbar .filter-count{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--ink-muted)}.errors-page .errors-toolbar .select-wrap{display:inline-flex;align-items:center;gap:6px}.errors-page .errors-toolbar .select-wrap label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin:0}.errors-page .errors-toolbar .select-wrap select{background:var(--input-bg);color:var(--input-color);border:1px solid var(--border-color);border-radius:8px}.errors-page .errors-toolbar .autoref{display:inline-flex;gap:6px;align-items:center;font-size:.8125rem;color:var(--color);cursor:pointer;margin:0}.errors-page .btn-icon{width:32px;padding:4px 0}.errors-page .errors-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;box-shadow:var(--card-shadow)}.errors-page .errors-list-head,.errors-page .errors-row-main{display:grid;grid-template-columns:110px 100px 100px 1fr 60px 70px;gap:16px;padding:18px 20px;align-items:start}.errors-page .errors-list-head{padding:12px 20px;align-items:center}.errors-page .errors-list-head{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.errors-page .errors-row{border-bottom:1px solid var(--border-soft)}.errors-page .errors-row:last-child{border-bottom:none}.errors-page .errors-row.open{background:var(--paper-bg-alt)}.errors-page .errors-row-main{cursor:pointer}.errors-page .errors-row-main:hover{background:var(--hover-bg-color)}.errors-page .col-when .when-rel{font-size:.9375rem;color:var(--color);font-variant-numeric:tabular-nums}.errors-page .col-when .when-abs{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-top:2px}.errors-page .col-sev{display:flex;align-items:center;gap:8px}.errors-page .sev-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.errors-page .sev-dot.sev-error{background:var(--bucket-error-dot)}.errors-page .sev-dot.sev-warn{background:var(--bucket-warn-dot)}.errors-page .sev-dot.sev-info{background:var(--bucket-info-dot)}.errors-page .sev-label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;color:var(--color)}.errors-page .pill-module{display:inline-block;font-family:var(--font-mono);font-size:.75rem;background:var(--paper-bg-alt);color:var(--ink-soft);border:1px solid var(--border-color);padding:3px 10px;border-radius:6px}.errors-page .col-msg .msg-code{font-family:var(--font-mono);font-size:1rem;color:var(--color);font-weight:600}.errors-page .col-msg .msg-context{color:var(--ink-muted);font-style:italic;font-size:.875rem;margin-left:10px}.errors-page .col-msg .msg-detail{color:var(--ink-soft);font-family:var(--font-mono);font-size:.8125rem;margin-left:10px}.errors-page .col-msg .msg-url{color:var(--ink-muted);font-family:var(--font-mono);font-size:.8125rem;margin-top:6px;word-break:break-all}.errors-page .count-pill{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--primary-bg);color:var(--primary-color);font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums}.errors-page .count-pill.count-pill-muted{background:0 0;color:var(--ink-muted);border:1px solid var(--border-color)}.errors-page .status-pill{display:inline-block;padding:2px 10px;border-radius:4px;font-family:var(--font-mono);font-size:.8125rem;font-variant-numeric:tabular-nums;border:1px solid transparent}.errors-page .status-pill.status-error{background:var(--bucket-error-bg);color:var(--bucket-error-fg);border-color:var(--bucket-error-bd)}.errors-page .status-pill.status-warn{background:var(--bucket-warn-bg);color:var(--bucket-warn-fg);border-color:var(--bucket-warn-bd)}.errors-page .status-pill.status-info{background:var(--bucket-info-bg);color:var(--bucket-info-fg);border-color:var(--bucket-info-bd)}.errors-page .errors-row-detail{padding:0 16px 16px}.errors-page .detail-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color);margin-bottom:12px}.errors-page .detail-tabs button{background:0 0;border:0;border-bottom:2px solid transparent;padding:8px 12px;font-size:.875rem;cursor:pointer;color:var(--ink-muted);font-family:var(--font-sans)}.errors-page .detail-tabs button.active{color:var(--color);border-bottom-color:var(--color)}.errors-page .detail-body{display:grid;grid-template-columns:1fr 260px;gap:20px}.errors-page .detail-main pre{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;font-family:var(--font-mono);font-size:.875rem;line-height:1.7;color:var(--color);max-height:26em;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;box-shadow:var(--card-shadow)}.errors-page .related-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;max-height:22em;overflow:auto;box-shadow:var(--card-shadow)}.errors-page .stack-pre{line-height:1.45;white-space:pre;overflow-x:auto}.errors-page .related-row{display:flex;gap:10px;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border-soft);font-size:.8125rem}.errors-page .related-row:last-child{border-bottom:none}.errors-page .detail-actions{display:flex;gap:6px;align-items:center;margin-top:10px}.errors-page .copy-hint{font-size:.75rem;color:var(--bucket-info-fg)}.errors-page .detail-aside{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px;box-shadow:var(--card-shadow)}.errors-page .aside-block+.aside-block{margin-top:16px}.errors-page .aside-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:4px}.errors-page .aside-value{font-family:var(--font-serif);font-size:1rem;color:var(--color);word-break:break-word;line-height:1.3}.errors-page .aside-value.mono{font-family:var(--font-mono);font-size:.8125rem}.errors-page .aside-sub{color:var(--ink-muted);font-style:italic;font-size:.8125rem;font-family:var(--font-sans)}.errors-page .errors-pager{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:var(--ink-muted);font-size:.875rem}@media (max-width:720px){.errors-page .errors-list-head,.errors-page .errors-row-main{grid-template-columns:80px 80px 1fr 60px}.errors-page .errors-list-head .col-mod,.errors-page .errors-list-head .col-sev,.errors-page .errors-row-main .col-mod,.errors-page .errors-row-main .col-sev{display:none}.errors-page .detail-body{grid-template-columns:1fr}}.overview-page .ov-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:2px}.overview-page .ov-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;vertical-align:middle}.overview-page .ov-dot-ok{background:#2f7a44}.overview-page .ov-dot-warn{background:#c48a2e}.overview-page .ov-dot-idle{background:var(--ink-muted)}.dark-mode .overview-page .ov-dot-ok{background:#7dc894}.dark-mode .overview-page .ov-dot-warn{background:#e8b970}.overview-page .ov-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:16px 0 22px}.overview-page .ov-kpi-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease}.overview-page .ov-kpi-card:hover{box-shadow:var(--card-shadow-hover)}.overview-page .ov-kpi-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.overview-page .ov-kpi-value.ov-val-warn{color:#b42318}.dark-mode .overview-page .ov-kpi-value.ov-val-warn{color:#f08a82}.overview-page .ov-kpi-sub{font-size:.75rem;color:var(--ink-muted);margin-top:2px}.overview-page .ov-daily-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:-4px 0 22px}.overview-page .ov-daily-card{background:var(--primary-bg);border:1px solid var(--border-color);border-radius:12px;padding:16px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-daily-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-daily-value{font-family:var(--font-serif);font-size:2.5rem;font-weight:400;line-height:1;color:var(--accent,#3b4ad6);margin-top:6px}.overview-page .ov-daily-sub{font-size:.75rem;color:var(--ink-muted);margin-top:5px}.dark-mode .overview-page .ov-daily-card{background:var(--paper-card)}.dark-mode .overview-page .ov-daily-value{color:#a7b2ff}.overview-page .ov-chart-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.overview-page .ov-chart-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px 14px;box-shadow:var(--card-shadow)}.overview-page .ov-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.overview-page .ov-chart-title{font-family:var(--font-serif);font-size:1rem}.overview-page .ov-chart-legend{font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);display:flex;align-items:center;gap:5px}.overview-page .ov-dot-legend{display:inline-block;width:8px;height:8px;border-radius:50%}.overview-page .ov-dot-accent{background:var(--accent,#3b4ad6)}.overview-page .ov-dot-ok-fill{background:#2f7a44}.overview-page .ov-dot-user-fill{background:#8b5e2e}.overview-page .ov-dot-new-user-fill{background:#c48a2e}.dark-mode .overview-page .ov-dot-ok-fill{background:#7dc894}.dark-mode .overview-page .ov-dot-user-fill{background:#d0a15f}.dark-mode .overview-page .ov-dot-new-user-fill{background:#e8b970}.overview-page .ov-spark-bars{display:flex;align-items:flex-end;gap:3px;height:140px}.overview-page .ov-spark-col{flex:1;display:flex;align-items:flex-end;height:100%;position:relative}.overview-page .ov-spark-fill{width:100%;background:var(--accent,#3b4ad6);border-radius:2px 2px 0 0;transition:height .3s ease;opacity:.55}.overview-page .ov-spark-fill-alt{background:#2f7a44}.overview-page .ov-spark-fill-user{background:#8b5e2e}.overview-page .ov-spark-fill-new-user{background:#c48a2e}.dark-mode .overview-page .ov-spark-fill-alt{background:#7dc894}.dark-mode .overview-page .ov-spark-fill-user{background:#d0a15f}.dark-mode .overview-page .ov-spark-fill-new-user{background:#e8b970}.overview-page .ov-spark-col:hover .ov-spark-fill{opacity:1}.overview-page .ov-spark-col.has-tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);z-index:10;padding:6px 8px;border-radius:6px;background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:.6875rem;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) translateY(4px);z-index:10;border:5px solid transparent;border-top-color:var(--color);opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip:hover::after,.overview-page .ov-spark-col.has-tip:hover::before{opacity:1;transform:translateX(-50%) translateY(0)}.overview-page .ov-spark-x{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);margin-top:6px}.overview-page .ov-triple-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:18px}.overview-page .ov-panel-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.overview-page .ov-panel-title{font-family:var(--font-serif);font-size:1rem}.overview-page .ov-panel-meta{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.overview-page .ov-panel-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color);font-size:.8125rem}.overview-page .ov-panel-foot a{color:var(--link-color);text-decoration:none}.overview-page .ov-panel-foot a:hover{text-decoration:underline}.overview-page .ov-performance{min-width:0;margin:22px 0}.overview-page .ov-performance-head{align-items:center;flex-wrap:wrap;gap:12px 20px}.overview-page .ov-performance-head h2{margin:0 0 4px}.overview-page .ov-performance-note{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--ink-muted)}.overview-page .ov-performance-head .ov-performance-note{margin:0}.overview-page .ov-performance-window{display:flex;align-items:center;gap:8px;flex-shrink:0}.overview-page .ov-performance-window label{margin:0;font-size:12px;color:var(--ink-muted)}.overview-page .ov-performance-window select{width:auto}.overview-page .ov-performance-tabs{margin:0 0 16px;gap:4px}.overview-page .ov-performance-tabs .paper-tab{white-space:nowrap}.overview-page .ov-metrics-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-control,8px)}.overview-page .ov-metrics-table{width:100%;border-collapse:collapse;color:var(--color);font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}.overview-page .ov-metrics-table td,.overview-page .ov-metrics-table th{padding:10px 12px;border-bottom:1px solid var(--border-color);vertical-align:middle;white-space:nowrap}.overview-page .ov-metrics-table thead th{background:var(--paper-bg-alt);color:var(--ink-muted);font-size:12px;font-weight:500}.overview-page .ov-metrics-table .num{text-align:right}.overview-page .ov-metrics-table tr:last-child>*{border-bottom:0}.overview-page .ov-metrics-table thead tr:last-child>*{border-bottom:1px solid var(--border-color)}.overview-page .ov-metrics-table tbody tr:hover{background:var(--hover-bg-color)}.overview-page .ov-metrics-table .ov-metric-name{min-width:190px;max-width:280px;text-align:left;white-space:normal;overflow-wrap:anywhere;font-weight:500}.overview-page .ov-metrics-table small{display:block;margin-top:3px;font-size:11px;font-weight:400;color:var(--ink-muted)}.overview-page .ov-metrics-table small .ui-icon{width:12px;height:12px}.overview-page .ov-metric-warning-row{background:rgba(196,138,46,.07)}.overview-page .ov-metric-warn,.overview-page .ov-metrics-table small.ov-metric-warn{color:#946519}.dark-mode .overview-page .ov-metric-warn,.dark-mode .overview-page .ov-metrics-table small.ov-metric-warn{color:#e8b970}.overview-page .ov-performance-message{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;margin:0 0 16px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);font-size:13px;line-height:1.5}.overview-page .ov-performance-message span{flex:1;min-width:160px}.overview-page .ov-performance-warning{background:rgba(196,138,46,.07)}.overview-page .ov-performance-empty{margin:0;padding:24px 12px;text-align:center;font-size:13px;color:var(--ink-muted)}.overview-page .ov-performance-help{margin-top:16px;font-size:12px;line-height:1.6;color:var(--ink-muted)}.overview-page .ov-performance-help summary{width:fit-content;cursor:pointer}.overview-page .ov-performance-help p{margin:8px 0 0;max-width:80ch}@media (max-width:575px){.overview-page .ov-performance{padding:16px 12px}.overview-page .ov-performance-window{width:100%}.overview-page .ov-performance-window select{flex:1;min-width:0}.overview-page .ov-performance-tabs .paper-tab{flex:1;padding:10px 8px}}.overview-page .ov-stacked-bar{display:flex;height:18px;border-radius:6px;overflow:hidden;margin-bottom:14px}.overview-page .ov-bar-seg{min-width:2px;transition:width .4s ease}.overview-page .ov-bar-ready{background:#2f7a44}.overview-page .ov-bar-preparing{background:#c48a2e}.overview-page .ov-bar-error{background:#b42318}.overview-page .ov-bar-expired{background:#8a857c}.overview-page .ov-bar-removed{background:#b5afa2}.dark-mode .overview-page .ov-bar-ready{background:#7dc894}.dark-mode .overview-page .ov-bar-preparing{background:#e8b970}.dark-mode .overview-page .ov-bar-error{background:#f08a82}.dark-mode .overview-page .ov-bar-expired{background:#6b665e}.dark-mode .overview-page .ov-bar-removed{background:#4a453e}.overview-page .ov-bar-legend{display:flex;flex-direction:column;gap:6px}.overview-page .ov-legend-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;text-decoration:none;color:inherit}.overview-page .ov-legend-item:hover{text-decoration:none;color:inherit}.overview-page .ov-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.overview-page .ov-legend-n{margin-left:auto;font-family:var(--font-mono);font-size:.8125rem;font-weight:600}.overview-page .ov-error-bars{display:flex;flex-direction:column;gap:12px}.overview-page .ov-ebar-row{display:flex;align-items:center;gap:10px}.overview-page .ov-ebar-label{width:30px;flex-shrink:0;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;color:var(--ink-muted)}.overview-page .ov-ebar-track{flex:1;height:10px;background:var(--hover-bg-color);border-radius:5px;overflow:hidden}.overview-page .ov-ebar-fill{height:100%;border-radius:5px;transition:width .4s ease}.overview-page .ov-ebar-error{background:#b42318}.overview-page .ov-ebar-warn{background:#c48a2e}.overview-page .ov-ebar-info{background:var(--accent,#3b4ad6)}.dark-mode .overview-page .ov-ebar-error{background:#f08a82}.dark-mode .overview-page .ov-ebar-warn{background:#e8b970}.overview-page .ov-ebar-n{width:36px;text-align:right;font-family:var(--font-mono);font-size:.8125rem;font-weight:600;flex-shrink:0}.overview-page .ov-routes-table{display:flex;flex-direction:column}.overview-page .ov-route-row{display:grid;grid-template-columns:1fr 60px 60px 60px;padding:8px 0;border-bottom:1px solid var(--border-soft,var(--border-color));text-decoration:none;color:inherit;font-size:.875rem;align-items:center}.overview-page .ov-route-row:last-child{border-bottom:none}.overview-page .ov-route-row:hover{background:var(--hover-bg-color);text-decoration:none;color:inherit}.overview-page .ov-route-head{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);border-bottom:1px solid var(--border-color)}.overview-page .ov-route-head:hover{background:0 0}.overview-page .ov-route-name{font-family:var(--font-mono);font-size:.8125rem}.overview-page .ov-route-n{text-align:right;font-family:var(--font-mono);font-size:.8125rem}.overview-page .ov-route-lat{color:var(--ink-muted)}.overview-page .ov-n-bad{color:#b42318;font-weight:600}.dark-mode .overview-page .ov-n-bad{color:#f08a82}.overview-page .ov-services-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;box-shadow:var(--card-shadow);margin-bottom:18px}.overview-page .ov-services-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.overview-page .ov-services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.overview-page .ov-svc{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border-soft,var(--border-color));border-radius:10px}.overview-page .ov-svc-dot{width:10px;height:10px;border-radius:50%;margin-top:3px;flex-shrink:0}.overview-page .ov-svc-info{display:flex;flex-direction:column;gap:1px;flex:1}.overview-page .ov-svc-name{font-family:var(--font-mono);font-size:.875rem;font-weight:600}.overview-page .ov-svc-meta{font-size:.75rem;color:var(--ink-muted)}.overview-page .ov-svc-detail{font-size:.75rem;color:var(--ink-muted);white-space:nowrap}@media (max-width:900px){.overview-page .ov-kpi-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-daily-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-triple-row{grid-template-columns:1fr}}@media (max-width:720px){.overview-page .ov-kpi-row{grid-template-columns:repeat(2,1fr)}.overview-page .ov-daily-row{grid-template-columns:1fr}.overview-page .ov-chart-row{grid-template-columns:1fr}.overview-page .ov-header{flex-direction:column;gap:8px}}@media (max-width:480px){.overview-page .ov-kpi-row{grid-template-columns:1fr 1fr}.overview-page .ov-services-grid{grid-template-columns:1fr 1fr}}.dashboard-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-bottom:12px}.dashboard-heading-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.dashboard-connections-link{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:var(--ink-muted);font-size:12px;line-height:1.5}.dashboard-connections-link:hover{color:var(--accent);text-decoration:none}.dashboard-connections-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (max-width:767px){.dashboard-heading-actions{align-items:flex-start;padding-bottom:0;gap:4px}.dashboard-connections-link{min-height:44px}}.paper-settings-connection-link{display:flex;align-items:center;gap:12px;padding:18px 0;color:var(--color);font-size:14px}.paper-settings-connection-link>i{color:var(--ink-muted);font-size:18px}.paper-settings-connection-link>span:first-of-type{flex:1}.paper-settings-connection-link small{display:block;margin-top:4px;color:var(--ink-muted);font-size:12px}.paper-settings-connection-link:hover{color:var(--accent);text-decoration:none}.paper-settings-connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.connections-heading{margin-bottom:36px}.connections-heading .paper-page-title{font-size:clamp(38px,4.5vw,56px);margin-bottom:12px}.connections-heading .paper-page-lede{font-size:15px}.connections-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start;border-top:1px solid var(--border-color);padding-top:28px}.connections-grid>section{min-width:0}.connection-title,.connection-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.connection-top{margin-bottom:24px;min-height:28px}.connection-top>i{color:var(--ink-muted);font-size:24px}.connection-top>.fa-key{font-size:18px}.connection-title{margin-bottom:10px}.connections-page h2{font-family:inherit;font-size:22px;font-weight:600;letter-spacing:-.5px;margin:0}.connections-page p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.connection-badge{background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;border-radius:5px;padding:4px 8px;white-space:nowrap}.connection-badge-muted{background:var(--paper-bg-alt);color:var(--ink-muted)}.connection-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-muted)}.connection-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.connection-status.is-connected{color:var(--status-ready)}.connection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:22px 0 16px}.connections-page .btn{font-size:13px;padding:9px 13px;white-space:normal}.connection-revoke p,.connections-page .connection-help{font-size:12px}.connection-link{display:inline-flex;align-items:center;gap:8px;border:0;padding:0;background:0 0;color:var(--accent);font-size:13px;line-height:1.6;font-weight:500;text-align:left;cursor:pointer}.connection-link:hover{color:var(--link-hover-color);text-decoration:underline}.connection-link:disabled{color:var(--ink-muted);opacity:.65;cursor:not-allowed;text-decoration:none}.connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.connection-installations{list-style:none;padding:0;margin:18px 0;border-top:1px solid var(--border-soft)}.connection-installations li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0;font-size:12px;border-bottom:1px solid var(--border-soft)}.connection-revoke{border-top:1px solid var(--border-soft);padding-top:18px;margin-top:24px}.connection-danger{color:var(--status-error)}.connection-resources{margin-top:36px;padding-top:28px;border-top:1px solid var(--border-color)}.connection-count{color:var(--ink-muted);font-size:12px}.connection-empty{display:flex;align-items:center;gap:18px;padding:20px 0;margin:22px 0}.connection-empty>i{font-size:22px;color:var(--ink-muted)}.connection-empty h3{font-size:14px;font-weight:600;margin:0 0 5px}.connection-empty p{font-size:12px;margin:0}.connection-empty>a{margin-left:auto;flex-shrink:0}.connection-resource{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--border-color)}.connection-resource-name{flex:1;min-width:180px;overflow-wrap:anywhere;font-size:14px}.connection-resource-name small{display:block;color:var(--ink-muted);font-size:11px;margin-top:5px}.connection-resource-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.connection-resource-actions .connection-help{flex-basis:100%}.connections-page .connection-footnote{display:flex;align-items:baseline;gap:10px;margin-top:22px;font-size:12px}@media (max-width:767px){.connections-grid{grid-template-columns:1fr;gap:28px}.connections-grid>section+section{border-top:1px solid var(--border-color);padding-top:28px}.connection-empty{flex-wrap:wrap}.connection-empty>div{flex:1;min-width:180px}.connection-empty>a{margin-left:40px}.connection-resource-actions{flex-basis:100%}}.paper-table-empty-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.paper-table-empty-actions .btn>i{font-size:1em;line-height:1;color:inherit;margin-right:0!important}.auth-back{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-muted);margin-bottom:48px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.auth-intro,.auth-options{padding-top:28px}.auth-title-mobile{display:none}.auth-intro .paper-page-title{font-size:clamp(48px,5vw,76px);line-height:1.06;margin:18px 0 24px}.auth-intro .paper-page-lede{max-width:330px}.auth-options{display:grid;gap:28px}.auth-options h2{font-family:inherit;font-size:22px;font-weight:600;margin:0 0 10px}.auth-options p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.auth-options .auth-existing{font-size:12px;border-left:2px solid var(--accent);padding-left:14px;margin:0}.auth-permissions{padding:6px 0 12px;list-style:none;font-size:13px;line-height:1.6}.auth-permissions li{display:flex;gap:10px;margin:12px 0}.auth-permissions i{color:var(--status-ready);margin-top:4px}.auth-continue{display:flex!important;align-items:center;justify-content:space-between;min-height:48px;padding:12px 16px!important}.auth-options small{display:block;font-size:12px;text-align:center;color:var(--ink-muted);margin-top:12px}.auth-legacy{border-top:1px solid var(--border-color);padding-top:24px}.auth-legacy h2{font-size:16px;margin:0}.auth-legacy p{font-size:13px}.source-url-label-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px}.source-url-label-row>.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}.repo-access{margin:0}.repo-access-details{margin:12px 0 24px}.source-url-label-row .repo-access-switch{padding:2px}.source-url-label-row .repo-access-switch button{padding:6px 10px;font-size:12px;line-height:20px}.repo-access-main{display:flex;align-items:center;gap:10px;padding:0 0 8px;flex-wrap:wrap}.repo-access-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.repo-access-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--border-color);border-radius:7px;flex-wrap:wrap}.repo-access-switch button{border:0;border-radius:4px;background:0 0;color:var(--ink-muted);padding:7px 10px;font:inherit;font-size:12px;cursor:pointer}.repo-access-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);opacity:1;cursor:default;font-weight:600}.repo-access-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.repo-access-details .btn{font-size:12px;padding:8px 12px}.repo-access-note{display:flex;gap:6px 16px;flex-wrap:wrap;padding:0;color:var(--ink-muted);font-size:11px;line-height:1.6}@media (max-width:767px){.auth-page{max-width:480px}.auth-back,.auth-intro .paper-eyebrow,.auth-title-desktop{display:none}.auth-title-mobile{display:inline}.auth-layout{grid-template-columns:1fr;gap:24px}.auth-intro,.auth-options{padding-top:0}.auth-intro .paper-page-title{font-size:40px;line-height:1.15;margin:6px 0 12px}.auth-intro .paper-page-lede{max-width:none;font-size:14px;margin:0}.auth-options{gap:24px}.auth-options .connection-top{margin-bottom:16px}.auth-options h2{font-size:18px}.auth-options p{font-size:13px;margin-bottom:12px}.auth-permissions{padding:0;margin:14px 0 20px;font-size:12px}.auth-permissions li{margin:8px 0}.auth-continue{font-size:14px}.auth-legacy{padding-top:20px}.auth-legacy h2{font-size:15px}.auth-legacy .connection-link{min-height:44px}.repo-access-controls{width:100%;gap:12px}}.text-muted{color:var(--ink-muted)!important}.anonymize-review-note,.draft-status{font-size:13px;color:var(--ink-muted)}.anonymize-review-note{padding:12px 0;margin:0}.anonymize-preview-status{padding:20px 32px;color:var(--ink-muted)}.anonymize-preview-status p{margin:0 0 12px}@media (max-width:575px){.dashboard-page .paper-page-lede{margin-bottom:8px}.dashboard-page .dashboard-heading-actions{gap:4px}.dashboard-page .dashboard-connections-link{min-height:32px}.dashboard-page .dashboard-filter-row{margin-top:12px}.anonymize-preview-status{padding:16px}}.paper-page .paper-page-title{font-size:32px}.paper-page.admin-page .paper-page-title{font-size:28px}.paper-page .paper-page-lede{font-size:14px;line-height:1.5}.paper-settings{padding-top:32px}.paper-settings-body{grid-template-columns:180px minmax(0,1fr);gap:40px;margin-top:24px;padding-top:24px;border-top:0}.paper-settings-main .paper-settings-section{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);padding:20px;margin-bottom:16px}.anonymize-page .paper-section-eyebrow,.paper-settings .paper-section-eyebrow{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:-.01em;margin-bottom:12px}.paper-settings .paper-settings-toc-head{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.paper-settings-section .paper-section-copy{margin-top:0}.paper-settings .quota-row{gap:24px}.paper-settings .quota-header{flex-direction:column;align-items:flex-start;gap:4px}.paper-settings .quota-value{white-space:nowrap}.paper-settings .paper-settings-footer{padding:0 0 20px}.paper-settings .form-control{font-size:14px;border-color:var(--border-color);border-radius:var(--radius-control)}.paper-settings .form-check{padding-top:8px;padding-bottom:8px}.anonymize-page .btn-ink,.explorer-page .btn-ink,.paper-page .btn-ink{background:var(--accent);color:#fff;border-color:var(--accent)}.dark-mode .anonymize-page .btn-ink,.dark-mode .explorer-page .btn-ink,.dark-mode .paper-page .btn-ink{color:#1a1815}.anonymize-page .btn-ink:hover,.explorer-page .btn-ink:hover,.paper-page .btn-ink:hover{background:var(--accent);border-color:var(--accent);color:#fff;filter:brightness(.94)}.dark-mode .anonymize-page .btn-ink:hover,.dark-mode .explorer-page .btn-ink:hover,.dark-mode .paper-page .btn-ink:hover{color:#1a1815}.anonymize-page .btn-ink:active,.explorer-page .btn-ink:active,.paper-page .btn-ink:active{filter:brightness(.9)}input[type=date],select{color-scheme:light}.dark-mode input[type=date],.dark-mode select{color-scheme:dark}.draft-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 0}.draft-discard{padding:0;border:0;color:var(--accent);font:inherit;font-size:13px;text-decoration:underline;background:0 0;cursor:pointer}.conference-feedback{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;margin-top:16px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);width:100%}.paper-table{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);margin-top:12px}.dashboard-page .paper-table-dashboard{width:100%}.paper-account-email{margin:20px 0}.paper-account-email .form-control{max-width:420px}.paper-settings .paper-account-email .btn[type=submit]{min-height:36px;padding:7px 18px;white-space:nowrap}.paper-table .paper-table-head{font-family:var(--font-sans);text-transform:none;letter-spacing:0;font-size:12px;background:var(--paper-bg-alt);border-radius:var(--radius-surface) var(--radius-surface) 0 0}.paper-table .paper-table-head,.paper-table .paper-table-row{padding-left:16px;padding-right:16px}.dashboard-page{--dashboard-space-xs:4px;--dashboard-space-sm:8px;--dashboard-space-md:12px;--dashboard-space-lg:16px;--dashboard-space-xl:24px;padding-top:var(--dashboard-space-xl)}.project-icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.project-type-svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.project-empty-icon{width:28px;height:28px;color:var(--ink-faint)}.project-type-icon{display:inline-flex;color:var(--ink-muted);flex-shrink:0}.dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--dashboard-space-lg)}.dashboard-heading .paper-page-title{font-size:28px;margin-bottom:var(--dashboard-space-xs)}.dashboard-heading .paper-page-lede{display:none}.dashboard-heading .btn{min-height:40px;display:inline-flex;gap:var(--dashboard-space-sm);align-items:center}.dashboard-new-mobile{display:none}.dashboard-quota{position:relative;margin:0;padding:0;border:0;background:0 0}.dashboard-quota>summary{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--paper-card);color:var(--color);font-family:var(--font-sans);font-size:12px;cursor:pointer;list-style:none;white-space:nowrap}.dashboard-quota>summary::-webkit-details-marker{display:none}.dashboard-quota>summary:hover,.dashboard-quota[open]>summary{background:var(--paper-bg-alt);border-color:var(--ink-faint)}.quota-summary-label{font-weight:600}.quota-summary-value{color:var(--ink-muted);font-variant-numeric:tabular-nums}.quota-summary-ring{width:18px;height:18px;flex-shrink:0;fill:none;stroke-width:2.5}.quota-ring-track{stroke:var(--border-color)}.quota-ring-fill{stroke:var(--accent);transform:rotate(-90deg);transform-origin:50% 50%}.quota-summary-ring.quota-warn .quota-ring-fill{stroke:var(--status-progress)}.quota-summary-ring.quota-danger .quota-ring-fill{stroke:var(--status-error)}.quota-ring-unlimited{stroke:var(--accent);stroke-width:1.7}.quota-summary-chevron{width:14px;height:14px;margin-left:2px;color:var(--ink-muted);transition:transform .15s ease}.dashboard-quota[open] .quota-summary-chevron{transform:rotate(180deg)}.dashboard-quota .quota-panel{position:absolute;z-index:25;top:calc(100% + 8px);left:0;width:344px;max-width:calc(100vw - 36px);padding:16px;border:1px solid var(--border-color);border-radius:12px;background:var(--paper-card);box-shadow:0 12px 36px rgba(26,24,21,.16)}.quota-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.quota-panel-heading h2{font:600 15px var(--font-sans);margin:0}.quota-panel-heading .project-close{margin:-8px -8px -8px 0}.paper-page .quota-usage{display:grid;grid-template-columns:1fr;gap:16px;margin:0;padding:0}.quota-usage .quota-item+.quota-item{padding-top:16px;border-top:1px solid var(--border-soft,var(--border-color))}.quota-usage .quota-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.quota-usage .quota-label{display:inline-flex;align-items:center;gap:8px;font:500 12px var(--font-sans);letter-spacing:0;text-transform:none;color:var(--ink-muted)}.quota-usage .quota-label .project-type-svg{width:16px;height:16px}.quota-usage .quota-value{display:flex;align-items:baseline;gap:4px;font:12px var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink-muted);margin-bottom:8px}.quota-usage .quota-value strong{font-size:20px;line-height:1.2;font-weight:600;color:var(--color)}.quota-percent,.quota-usage .quota-unlimited-tag{margin-left:auto;padding:2px 6px;border-radius:4px;background:var(--paper-bg-alt);font:11px var(--font-sans);color:var(--ink-muted);white-space:nowrap}.quota-warn>.quota-header .quota-percent{color:var(--status-progress)}.quota-danger>.quota-header .quota-percent{color:var(--status-error)}.quota-usage .quota-track{height:5px;border:0;background:var(--paper-bg-alt)}.quota-usage .quota-track .quota-fill{min-width:0;background:var(--accent)}.quota-remaining{margin:6px 0 0;color:var(--ink-muted);font-size:11px}.quota-remaining.quota-limit{color:var(--status-error)}.quota-loading{font-size:12px;color:var(--ink-muted);margin:12px 0 0}.dashboard-page .dashboard-filter-row{display:flex;align-items:center;gap:var(--dashboard-space-md);padding:0;margin:var(--dashboard-space-lg) 0 0;border:0;background:0 0}.dashboard-page .dashboard-filter-row .search-wrap{flex:1 1 240px;min-width:0}.dashboard-page .dashboard-filter-row .form-control{height:40px;padding:8px 12px;font-size:13px;background:var(--paper-card)}.dashboard-page .dashboard-filter-controls{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--dashboard-space-sm)}.dashboard-extra-filters{display:flex;gap:var(--dashboard-space-sm)}.dashboard-filters-toggle{display:none}.dashboard-page .dashboard-filter-row .btn-group .btn{border:0;background:0 0;border-radius:6px;height:36px;padding:6px 10px}.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--accent-soft);color:var(--accent)}.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary:active,.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary:hover{background:var(--accent-soft)!important;color:var(--accent)}.dashboard-page .dashboard-filter-row .dropdown-toggle{height:36px;padding:6px 10px}.dashboard-type-filter .project-type-svg{display:none}.sort-direction{width:14px;height:14px}.sort-direction.ascending{transform:rotate(180deg)}.dashboard-page .dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dashboard-space-sm) var(--dashboard-space-md);margin:var(--dashboard-space-md) 0 0;padding:0}.dashboard-view-tabs{display:flex;align-items:center;gap:var(--dashboard-space-lg)}.dashboard-view-short{display:none}.dashboard-view-tabs button{min-height:36px;border:0;border-bottom:2px solid transparent;border-radius:0;background:0 0;font:inherit;font-size:13px;color:var(--ink-muted);padding:4px 0}.dashboard-view-tabs button[aria-pressed=true]{color:var(--color);border-bottom-color:var(--color);font-weight:600}.attention-count{padding:1px 5px;margin-left:4px;border-radius:4px;background:var(--paper-bg-alt);font-size:11px;font-variant-numeric:tabular-nums}.attention-count.has-attention{color:var(--status-error)}.dashboard-count{margin-left:auto;font-size:12px;color:var(--ink-muted)}.dashboard-active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:var(--dashboard-space-sm);width:100%}.dashboard-page .filter-chip{display:inline-flex;font-family:var(--font-sans);font-size:11px;text-transform:none;letter-spacing:0;border-radius:6px}.dashboard-page .filter-chip .project-type-svg{width:12px;height:12px;margin-left:4px}.dashboard-page .filter-chip-close{min-width:24px;min-height:24px;display:inline-flex;align-items:center;justify-content:center;margin:-2px -4px -2px 2px}.dashboard-page .btn-link-inline{color:var(--ink-muted);font-size:12px}.dashboard-page .paper-table-dashboard{margin-top:var(--dashboard-space-md);border-left:0;border-right:0;border-radius:0}.dashboard-page .paper-table-dashboard .paper-table-head,.dashboard-page .paper-table-dashboard .paper-table-row{grid-template-columns:minmax(280px,3fr) 180px 72px 148px 64px;gap:var(--dashboard-space-lg);padding:8px 12px}.dashboard-page .paper-table-dashboard .paper-table-head{border-radius:0}.dashboard-page .paper-table .cell-anon{gap:var(--dashboard-space-sm)}.dashboard-page .paper-table .anon-text{flex:1}.dashboard-page .paper-table .repo-name{font-family:var(--font-sans);font-size:14px;font-weight:600}.dashboard-page .paper-table .anon-sub{display:flex;align-items:center;gap:var(--dashboard-space-sm);min-width:0}.anonymous-id{font-size:12px;font-family:var(--font-mono);color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-page .paper-table .type-badge{font-family:var(--font-sans);letter-spacing:0;font-size:11px;text-transform:none;border-radius:6px}.dashboard-page .paper-table .status-sub{font-size:12px}.dashboard-page .paper-table .cell-conf{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.dashboard-page .conf-tag .project-type-svg{width:14px;height:14px}.dashboard-row-meta{display:contents}.dashboard-page .cell-actions{gap:0;align-items:center}.copy-link-inline,.dashboard-page .btn-icon-dots,.project-close{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:0 0;color:var(--ink-muted);padding:0;width:32px;height:32px;min-width:32px;cursor:pointer}.copy-link-inline:focus-visible,.copy-link-inline:hover,.dashboard-page .btn-icon-dots:hover,.project-close:hover{background:var(--accent-soft);color:var(--accent)}.copy-link-inline:disabled{opacity:.5;cursor:wait}.mobile-meta-icon{display:none}.project-attention-action{display:inline-block;color:var(--accent);border:0;background:0 0;padding:0;font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.project-attention-action{text-align:left}.dashboard-page .cell-status .project-attention-action{flex-basis:100%}.project-details-row{width:100%;border-bottom:1px solid var(--border-color)}.project-details{padding:var(--dashboard-space-xl);background:var(--paper-bg-alt)}.project-details-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--dashboard-space-sm)}.project-details-heading h2{font:600 16px var(--font-sans);margin:0}.project-details-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--dashboard-space-md) var(--dashboard-space-xl);margin:12px 0}.project-details-list dt{font-size:12px;color:var(--ink-muted);font-weight:500;margin-bottom:4px}.project-details-list dd{margin:0;font-size:13px;overflow-wrap:anywhere}.project-details-list code{color:var(--color);font-size:12px}.project-name-form{margin-top:var(--dashboard-space-lg);padding-top:var(--dashboard-space-lg);border-top:1px solid var(--border-color)}.project-name-form label{display:block;font-size:13px;font-weight:500;margin-bottom:4px}.project-name-form p,.project-progress-help{font-size:12px;color:var(--ink-muted);margin-bottom:8px}.project-name-controls{display:flex;gap:var(--dashboard-space-sm);max-width:560px}.project-name-controls .form-control{min-width:0;font-size:14px}.project-name-controls .btn{flex-shrink:0;min-height:40px}.project-name-form .project-name-error{color:var(--status-error)}.project-details-button{min-height:44px;padding:0 8px;border:0;border-radius:6px;background:0 0;font:inherit;font-size:12px;color:var(--ink-muted);cursor:pointer}.anonymize-page .anonymize-topbar-title{font-family:var(--font-sans);font-size:28px;font-weight:600}.anonymize-topbar{padding:16px 24px}.anonymize-form-col{background:var(--paper-bg-alt)}.anonymize-form-col .paper-settings-main{padding:20px 24px}.anonymize-form-col .paper-settings-section{padding:18px}.anonymize-form-col .paper-settings-section:first-child{padding-top:18px}.anonymize-form-col .anonymize-submit-bar{background:var(--paper-bg-alt);padding:12px 0}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:0}.anonymize-preview-col{background:var(--canvas-bg-color);padding:24px}.anonymize-preview-head{flex-wrap:wrap;gap:6px 12px;margin-bottom:16px}.anonymize-preview-body{padding:24px}.anonymize-mobile-tabs,.anonymize-preview-empty,.mobile-preview-jump{display:none}.anonymize-page .repo-access-note{font-size:12px}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:18px}.paper-settings-toc{padding:0}.paper-settings-toc-head{display:none}.paper-table .paper-table-row{padding-left:14px;padding-right:14px}}@media (max-width:767px){.anonymize-page .paper-page-title,.paper-page .paper-page-title{font-size:24px}.paper-settings{padding:20px 16px 40px}.paper-settings-main .paper-settings-section{padding:16px}.anonymize-topbar{padding:12px 16px}.anonymize-topbar .paper-crumbs{display:none}.anonymize-mobile-tabs{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid var(--border-color);background:var(--paper-card)}.anonymize-mobile-tabs button{flex:1;font:inherit;font-size:13px;padding:10px;border:0;border-radius:6px;background:0 0;color:var(--ink-muted)}.anonymize-mobile-tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.anonymize-page:not(.mobile-preview-active) .anonymize-preview-col{display:none}.mobile-preview-active .anonymize-form-col{display:none}.mobile-preview-active .anonymize-preview-empty{display:block;padding:24px 16px;color:var(--ink-muted)}.anonymize-form-col .paper-settings-main{padding:16px}.anonymize-form-col .anonymize-submit-bar{background:var(--paper-bg-alt)}.mobile-preview-jump{display:block;width:100%;min-height:44px}.anonymize-preview-col{padding:16px}.anonymize-preview-body{padding:16px}}@media (max-width:575px){.paper-settings .quota-header{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 8px}}@media (max-width:1100px) and (min-width:901px){.dashboard-page .dashboard-filter-row{flex-wrap:wrap}.dashboard-page .dashboard-filter-row .search-wrap{flex-basis:100%}.dashboard-page .dashboard-filter-controls{width:100%;justify-content:space-between}}@media (max-width:900px){.dashboard-page .paper-table.paper-table-dashboard .paper-table-row{gap:4px 8px;padding:8px 12px}.dashboard-page .paper-table .cell-anon{flex:1 1 calc(100% - 96px);min-width:0}.dashboard-page .paper-table .cell-actions{flex:0 0 88px}.dashboard-row-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;order:3;width:100%}.dashboard-page .dashboard-row-meta .cell-status{flex:1 1 80px;flex-wrap:wrap;gap:2px 8px}.dashboard-page .dashboard-row-meta .cell-expires,.dashboard-page .dashboard-row-meta .cell-views{flex-shrink:0;font-size:12px}.dashboard-page .cell-expires::before,.dashboard-page .cell-views::before{content:none}.dashboard-page .mobile-meta-icon{display:inline-block;width:14px;height:14px}.dashboard-page .dashboard-row-meta .status-sub-date{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-page .dashboard-row-meta .status-sub-error,.dashboard-page .dashboard-row-meta .status-sub-warn{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}.dashboard-page .dashboard-row-meta .status-sub::before{content:none}.dashboard-page .project-attention-action{min-height:44px;display:inline-flex;align-items:center}.dashboard-page .paper-table .anon-sub .commit-hash,.dashboard-page .paper-table .anon-sub .conf-tag{display:none}}@media (max-width:767px){.container.dashboard-page{padding-top:12px}.dashboard-heading .paper-page-title{font-size:24px}.dashboard-heading-actions .btn-ink{min-height:44px}.dashboard-new-label{display:none}.dashboard-new-mobile{display:inline}.dashboard-quota>summary{min-height:44px;gap:6px;padding:10px;font-size:12px;line-height:20px}.dashboard-quota .quota-panel{max-height:calc(100dvh - 184px);overflow-y:auto;overscroll-behavior:contain}.dashboard-page .dashboard-filter-row{flex-wrap:wrap;gap:8px;margin-top:12px}.dashboard-page .dashboard-filter-row .search-wrap{flex:1 1 0}.dashboard-page .dashboard-filter-row .form-control{height:44px}.dashboard-page .dashboard-filters-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:8px;min-height:44px;background:0 0;border:0}.dashboard-page .dashboard-filter-controls{display:none;width:100%}.dashboard-page .dashboard-filter-controls.expanded{display:flex;flex-wrap:wrap;gap:8px}.dashboard-page .dashboard-filter-controls .btn-group{width:100%;display:flex}.dashboard-page .dashboard-filter-controls .btn-group .btn{flex:1;min-height:44px}.dashboard-extra-filters{display:flex;width:100%}.dashboard-page .dashboard-extra-filters .dropdown{flex:1;min-width:0}.dashboard-page .dashboard-extra-filters .dropdown-toggle{width:100%;height:44px}.dashboard-type-filter .type-filter-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-type-filter .project-type-svg{display:inline-block}.dashboard-page .dashboard-meta{margin-top:8px;gap:4px 8px}.dashboard-view-tabs{gap:16px}.dashboard-view-tabs button{min-width:44px;min-height:44px;font-size:12px}.dashboard-count{font-size:11px}.dashboard-count{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.dashboard-view-long{display:none}.dashboard-view-short{display:inline}.dashboard-active-filters{display:contents}.dashboard-page .filter-chip{font-size:11px;padding:0 8px;min-height:44px;gap:4px}.dashboard-page .filter-chip-close{min-width:44px;min-height:44px;margin:0}.dashboard-page .btn-link-inline{min-height:44px;font-size:12px}.dashboard-page .paper-table-dashboard{width:calc(100% + 36px);margin:8px -18px 0;border-left:0;border-right:0;border-radius:0}.dashboard-page .paper-table .repo-name{font-size:13px}.project-details{padding:16px 12px}.project-details-list{grid-template-columns:1fr;gap:12px}.project-name-controls{flex-wrap:wrap}.project-name-controls .form-control{flex-basis:100%}.project-name-controls .btn{min-height:44px}}@media (max-width:360px){.dashboard-attention-prefix{display:none}.dashboard-attention-prefix+span{text-transform:capitalize}}.ui-icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.ui-icon{display:inline-block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:-3px}.ui-icon.sort-direction{width:14px;height:14px}.pr-title-row{display:flex;align-items:flex-start;gap:16px}.pr-title-row .pr-title{flex:1;min-width:0}.pr-title-row>.btn{flex-shrink:0}.ui-icon.record-type-icon{color:var(--ink-muted)}.btn .ui-icon,.dropdown-item .ui-icon{width:16px;height:16px}.btn-icon-dots .ui-icon{width:18px;height:18px}.anonymize-page .paper-page-title,.paper-page .paper-page-title{font-size:28px}.paper-faq,.paper-page{padding-top:24px}.paper-page .paper-page-lede{margin-bottom:16px;overflow-wrap:anywhere}.paper-page-title{overflow-wrap:anywhere}.anonymize-page .form-control,.paper-page .form-control{min-height:40px;font-family:var(--font-sans);font-size:14px;border-radius:var(--radius-control)}.anonymize-page textarea.form-control,.paper-page textarea.form-control{height:auto}.anonymize-page .btn,.paper-page .btn,.status-bar-actions .btn{min-height:var(--button-height);padding:7px var(--button-padding-x);font:500 var(--button-font-size)/var(--button-line-height) var(--font-sans);border-radius:var(--radius-button);gap:6px}.anonymize-page .btn.btn-sm,.paper-page .btn.btn-sm,.status-bar-actions .btn{min-height:var(--button-compact-height);padding:5px 10px;font-size:13px;border-radius:6px}.anonymize-page .btn-ink,.paper-page .btn-ink{min-height:40px;padding:9px 15px}.btn-hero>i,.btn>.project-type-svg,.btn>.ui-icon,.btn>i{width:16px;height:16px;margin:0!important;flex-shrink:0}.btn.dropdown-toggle::after{margin-left:0}.btn.disabled,.btn:disabled{cursor:not-allowed}.btn.disabled:hover,.btn:disabled:hover{filter:none}.paper-page .btn.btn-link{background:0 0;border-color:transparent}.auth-continue.btn{min-height:44px;padding:11px 16px!important}.anonymize-page .btn.btn-icon,.paper-page .btn.btn-icon{width:32px;height:32px;min-width:32px;min-height:32px;padding:0}.paper-page .btn.btn-icon-dots{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:0;background:0 0;color:var(--ink-muted)}.paper-page .btn-icon-dots:hover{background:var(--accent-soft);color:var(--accent)}.paper-page .btn-group .btn-primary:active,.paper-page .btn-group .btn-primary:hover{background:var(--accent-soft)!important;color:var(--accent)}.paper-page .paper-section-eyebrow{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:0;margin-bottom:12px}.paper-page .paper-field-label{font-family:var(--font-sans);font-size:13px;letter-spacing:0}.paper-tabs .paper-tab{min-height:44px}.paper-pill,.status-pill{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;border-radius:6px}.paper-meta-rule{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;gap:12px 24px}.paper-meta-rule b:not(.commit-hash){font-family:var(--font-sans);font-weight:500}.connections-grid{gap:16px}.connections-grid>section{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);padding:20px}.connections-heading{margin-bottom:24px}.claim-page .claim-form,.status-page>.paper-settings-section{padding:20px;margin-top:24px;border:1px solid var(--border-color);border-radius:var(--radius-surface);background:var(--paper-card)}.claim-page .claim-form{max-width:640px}.status-page .anonymize-submit-bar{background:0 0;gap:8px;flex-wrap:wrap}.anonymize-landing{padding-top:32px}.paper-settings .quota-usage{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.paper-settings .quota-usage .quota-item+.quota-item{padding-top:0;border-top:0;padding-left:16px;border-left:1px solid var(--border-color)}.paper-settings .quota-usage .quota-header{flex-direction:row;align-items:center;flex-wrap:wrap}.paper-settings .quota-usage .quota-value{white-space:normal;flex-wrap:wrap}.paper-faq-hero{padding-bottom:24px;margin-bottom:24px}.paper-faq-eyebrow,.paper-faq-toc-head{font-family:var(--font-sans);font-size:12px;text-transform:none;letter-spacing:0;margin-bottom:8px}.paper-faq-title{font:600 28px/1.2 var(--font-sans);letter-spacing:-.025em;max-width:720px;margin-bottom:12px}.paper-faq-title em{font-style:normal}.paper-faq-lede{font-size:14px}.paper-faq-body{grid-template-columns:180px minmax(0,1fr);gap:40px}.faq-section h4.faq-cat{font:600 18px/1.4 var(--font-sans);padding-bottom:12px}.faq-section h4.faq-cat .ui-icon{display:none}.faq-section .panel-group{margin-bottom:32px}.faq-section .panel-default .panel-title a{font:500 15px/1.5 var(--font-sans);padding:16px 0 16px 28px;min-height:44px}.faq-section .panel-default .panel-title a:after{top:16px}.paper-empty-title{font:600 32px/1.2 var(--font-sans);letter-spacing:-.025em}.paper-empty-title em{font-style:normal}.btn-hero{justify-content:center;gap:8px;min-height:48px;padding:13px 20px;font-size:15px;line-height:20px;background:var(--accent);border-color:var(--accent);color:#fff;border-radius:var(--radius-button)}.dark-mode .btn-hero{color:#1a1815}.btn-hero:hover{background:var(--accent);color:#fff;filter:brightness(.94)}.dark-mode .btn-hero:hover{color:#1a1815}.paper-table:not(.paper-table-dashboard){border-left:0;border-right:0;border-radius:0}.paper-table:not(.paper-table-dashboard) .paper-table-head{border-radius:0}.paper-table .cell-anon{gap:8px}.paper-table .cell-anon .anon-text{flex:1}.paper-table-conferences .cell-anon .repo-name{font-family:var(--font-sans);font-weight:600}.paper-table .anon-sub>a,.paper-table .anon-sub>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.paper-table .anon-sub .ui-icon{width:14px;height:14px}.paper-page .filter-chip{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;border-radius:6px}.paper-page .filter-chip-close .ui-icon{width:12px;height:12px}.admin-nav{gap:4px;border:0;border-bottom:1px solid var(--border-color);border-radius:0;padding:0 0 8px;background:0 0}.admin-nav a{font-family:var(--font-sans);font-size:13px;letter-spacing:0;text-transform:none;border-radius:6px;min-height:40px;padding:8px 12px}.admin-nav a.active{background:var(--accent-soft);color:var(--accent)}.admin-nav .ui-icon{width:16px;height:16px}.admin-filter-toolbar{background:0 0;border:0;padding:0}.admin-filter-inline>label,.admin-filter-inline>span{font-family:var(--font-sans);text-transform:none;letter-spacing:0}.admin-summary .summary-total{font-family:var(--font-sans);font-size:18px;font-weight:600}.admin-summary .summary-pill{font:500 13px/20px var(--font-sans);min-height:32px;padding:5px 10px;border-radius:6px}.admin-summary .summary-pill.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.admin-summary .summary-pill .count{font-family:var(--font-sans)}.admin-active-chip{font-family:var(--font-sans);font-size:12px}.admin-active-chip button .ui-icon{width:12px;height:12px}.user-detail-card .user-header h2{font:600 20px/1.4 var(--font-sans)}.errors-page .errors-toolbar .select-wrap label,.errors-page .volume-head,.overview-page .ov-panel-meta,.paper-detail-grid .detail-label,.paper-progress .paper-progress-label,.status-page .paper-error-eyebrow,.user-detail-grid .detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.overview-page .ov-chart-title,.overview-page .ov-panel-title,.paper-error-title{font:600 16px/1.4 var(--font-sans)}.paper-error-head>.ui-icon,.paper-ratelimit-head>.ui-icon{margin-top:3px;color:var(--status-error)}.paper-ratelimit-head>.ui-icon{color:var(--status-progress)}.errors-page .seg-tabs{border-radius:var(--radius-control)}.errors-page .seg-tabs button{min-height:36px;padding:7px 12px;font:500 14px/20px var(--font-sans)}.errors-page .seg-tabs button.active{background:var(--accent-soft);color:var(--accent)}.errors-page .errors-list,.errors-page .kpi-card:hover,.errors-page .volume-chart,.overview-page .ov-chart-card,.overview-page .ov-panel-card{box-shadow:none}.errors-page .kpi-value,.overview-page .ov-daily-value,.overview-page .ov-kpi-value,.q-card-count,.user-hero-name{font-family:var(--font-sans);font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.errors-page .kpi-label,.overview-page .ov-daily-label,.overview-page .ov-kpi-label,.q-card-name,.q-section-label,.user-hero-details .detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.overview-page .ov-daily-card{background:var(--paper-card);box-shadow:none;border-radius:var(--radius-surface)}.dark-mode .overview-page .ov-daily-value,.overview-page .ov-daily-value{color:var(--accent)}.errors-page .kpi-card,.overview-page .ov-kpi-card{box-shadow:none;border-radius:var(--radius-surface)}.q-card{border-radius:var(--radius-surface)}.q-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.q-range-btns{border-radius:var(--radius-control)}.q-job-detail-actions .btn,.q-range-btns .btn{font-family:var(--font-sans);font-size:13px}.q-range-btns .btn.active{background:var(--accent-soft);color:var(--accent)}@media (max-width:900px){.paper-settings .quota-usage{grid-template-columns:1fr;gap:16px}.paper-settings .quota-usage .quota-item+.quota-item{padding-left:0;border-left:0;border-top:1px solid var(--border-color);padding-top:16px}.paper-table:not(.paper-table-dashboard) .paper-table-row{gap:4px 8px!important;padding:8px 12px}.paper-table:not(.paper-table-dashboard) .cell-anon{flex:1 1 calc(100% - 52px);order:1}.paper-table:not(.paper-table-dashboard) .cell-actions{order:2;flex:0 0 44px}.paper-table .admin-users-row>[role=cell]:first-child,.paper-table.paper-table-repos.has-bulk .paper-table-row>[role=cell]:first-child{flex:0 0 24px;order:0}.paper-table .admin-users-row .cell-anon,.paper-table.paper-table-repos.has-bulk .cell-anon{flex-basis:calc(100% - 84px)}.paper-table:not(.paper-table-dashboard) .cell-anon .anon-sub{font-size:12px;gap:6px}.paper-table:not(.paper-table-dashboard) .cell-status .status-sub{font-size:12px}.paper-table .cell-expires::before,.paper-table .cell-views::before{content:none}.paper-table .cell-expires .mobile-meta-icon,.paper-table .cell-views .mobile-meta-icon{display:inline-block;width:14px;height:14px}.paper-faq-body{grid-template-columns:1fr;gap:24px}}@media (max-width:767px){.paper-faq,.paper-page{padding-top:20px}.paper-settings .paper-account-email .btn[type=submit]{min-height:40px;padding:9px 18px}.anonymize-page .paper-page-title,.paper-faq-title,.paper-page .paper-page-title,.paper-page.admin-page .paper-page-title{font-size:24px}.anonymize-page .form-control,.paper-page .form-control{min-height:44px}.anonymize-page .btn,.connection-link,.draft-discard,.paper-faq-toc a,.paper-page .btn,.paper-settings-toc nav a{min-height:44px}.anonymize-page .btn,.paper-page .btn,.status-bar-actions .btn{min-height:44px;padding:11px 14px;font-size:14px;line-height:20px;white-space:normal}.anonymize-page .btn.btn-sm,.paper-page .btn.btn-sm{min-height:44px;padding:11px 12px;font-size:14px}.anonymize-page .btn.btn-icon,.copy-link-inline,.paper-page .btn.btn-icon,.paper-page .btn.btn-icon-dots,.project-close{width:44px;height:44px;min-width:44px;min-height:44px;padding:0}.dashboard-page .dashboard-filter-row .btn-group .btn,.dashboard-page .dashboard-filter-row .dropdown-toggle{height:auto;min-height:44px;font-size:14px;padding:11px 10px}.dashboard-heading-actions .btn-ink{padding:11px 16px}.dashboard-page .dashboard-filters-toggle{padding:11px 10px}.errors-page .btn-icon,.pr-title-row .btn,.status-bar-actions .btn{min-width:44px;min-height:44px;padding:0}.status-bar-actions .btn{width:44px;height:44px}.errors-page .seg-tabs button,.paper-tab{min-height:44px}.errors-page .seg-tabs button{padding:11px 12px}.status-bar-actions{flex-wrap:wrap;max-width:100%}.leftCol-close,.tree-search-clear{min-width:44px;min-height:44px}.anonymize-landing{padding:20px 18px}.anonymize-landing .repo-access-switch button,.source-url-label-row .repo-access-switch button{min-height:44px;padding:11px 10px;font-size:13px}.paper-settings-body{margin-top:16px;padding-top:0;gap:16px}.paper-settings-toc nav{gap:0 12px}.paper-settings-toc nav a{display:inline-flex;align-items:center}.paper-faq{padding-left:18px;padding-right:18px}.paper-faq-toc nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:0 16px}.paper-faq-toc a{display:inline-flex;align-items:center;padding:8px 0;border-left:0;border-bottom:2px solid transparent;margin-left:0}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{border-bottom-color:var(--accent);color:var(--accent)}.claim-page .claim-form,.status-page>.paper-settings-section{padding:16px;margin-top:16px}.admin-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:4px;max-width:100%;margin:8px 0 16px}.admin-nav a{flex-shrink:0;min-height:44px}.admin-summary .summary-pill{min-height:44px;padding:11px 12px;font-size:14px}.admin-active-chip button{min-width:44px;min-height:44px}.admin-filter-row{gap:8px}.admin-filter-row .admin-filter-inline{gap:8px;flex-wrap:wrap}.errors-page .kpi-grid{grid-template-columns:1fr 1fr;gap:12px}.q-cards{flex-direction:row}.q-card{min-width:130px}.q-header-actions{flex-wrap:wrap;gap:8px}}.paper-page.container:not(.auth-page){max-width:1180px}.paper-page>.row{margin-left:0;margin-right:0}.paper-page>.row>.w-100,.paper-page>.row>[class*=col]{padding-left:0;padding-right:0}.anonymize-landing{align-items:flex-start}.status-page .paper-support-grid{margin-bottom:0}.explorer-content .ace_editor{font-family:var(--font-mono);line-height:1.6}.dark-mode .explorer-content .ace-nord-dark,.dark-mode .explorer-content .ace-nord-dark .ace_gutter{background:var(--main-bg-color)}.explorer-content .file-content.markdown-body{max-width:960px;padding:32px 40px 96px}.leftCol-project-header .project-name{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.file-error{font-size:inherit;font-weight:inherit;text-align:left}.file-error-card{width:100%;max-width:520px;margin-top:0}.file-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.file-error-actions{display:flex;gap:8px;margin-top:16px}.file-error .paper-empty-title{font-size:20px;text-align:center}@media (min-width:992px){.leftCol-foot{padding-bottom:72px}}.explorer-content .ace-chrome,.explorer-content .ace-chrome .ace_gutter{background:var(--main-bg-color)}@media (max-width:991px){.explorer-content .file-content.markdown-body{padding:20px 16px 96px}.anonymize-landing{padding:20px 18px}.anonymize-landing-inner{padding:0}.paper-faq-toc nav,.paper-settings-toc nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.paper-faq-toc nav a,.paper-settings-toc nav a{flex-shrink:0;white-space:nowrap}.paper-faq-body,.paper-settings-body{grid-template-columns:minmax(0,1fr)}.paper-faq-toc,.paper-settings-toc{position:static}.paper-faq-toc nav,.paper-settings-toc nav{display:flex;flex-direction:row;gap:0 16px}.paper-faq-toc nav a,.paper-settings-toc nav a{display:inline-flex;align-items:center;padding:8px 0;margin-left:0;border-left:0;border-bottom:2px solid transparent}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover,.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--accent)}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{justify-content:flex-start;gap:6px}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle::after{margin-left:auto}}@media (max-width:480px){.paper-page .paper-page-lede{display:block;-webkit-line-clamp:unset;overflow:visible}}.navbar .btn-signin,.navbar .btn-signin:hover{background:var(--accent);border-color:var(--accent);color:#fff!important}.dark-mode .navbar .btn-signin,.dark-mode .navbar .btn-signin:hover{color:#1a1815!important}.navbar .btn-signin:hover{filter:brightness(.94)}.paper-progress .paper-progress-bar,.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--accent)}.paper-progress .paper-progress-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.paper-error-eyebrow,.paper-support-card .paper-support-eyebrow{font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.leftCol-foot .last-update{font-family:var(--font-sans);font-size:11px;letter-spacing:0}.paper-proof-venues span{font-family:var(--font-sans);font-size:18px;font-weight:600;letter-spacing:.02em;color:var(--ink-soft)}.markdown-body mark.redaction{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 2px}.ace_marker-layer .ace_redaction{position:absolute;background:var(--accent-soft);border-radius:3px}.leftCol-project-header{flex-wrap:wrap;row-gap:2px}.project-expiry{flex:1 0 100%;display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.project-expiry .ui-icon{width:12px;height:12px}.status-bar-actions .btn-icon-only{width:32px;padding:0;justify-content:center}.share-link-row{display:flex;gap:8px;margin-top:4px}.share-link-input{flex:1;min-width:0;font-family:var(--font-mono);font-size:14px;background:var(--paper-bg-alt)}.share-link-row .btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-width:112px;justify-content:center}.share-link-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.share-link-actions .btn{display:inline-flex;align-items:center;gap:6px}.status-page .paper-support-grid{gap:0 32px}.status-page .paper-support-card{padding:16px 0 0;border:0;border-top:1px solid var(--border-color);border-radius:0;background:0 0}.status-page .paper-support-card:hover{border-color:var(--color)}@media (min-width:992px){.paper-table .cell-expires{white-space:nowrap}}.paper-settings .paper-settings-main .paper-settings-section{background:0 0;border:0;border-bottom:1px solid var(--border-color);border-radius:0;padding:0 0 28px;margin-bottom:28px}.paper-settings .paper-settings-main .paper-settings-section:last-of-type{border-bottom:0}@media (max-width:991px){.paper-settings .paper-settings-main .paper-settings-section{padding:0 0 20px;margin-bottom:20px}.share-link-row{flex-direction:column}.share-link-actions{flex-direction:column}.share-link-actions .btn{justify-content:center}.status-page .paper-support-grid{row-gap:20px}}.paper-page .q-range-btns{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);overflow:visible}.paper-page .q-range-btns .btn,.paper-page .q-range-btns .btn+.btn{min-height:0;height:28px;padding:0 10px;border:0;border-radius:4px;background:0 0;color:var(--ink-muted);font:500 13px/1 var(--font-sans)}.paper-page .q-range-btns .btn:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .q-range-btns .btn.active{background:var(--accent-soft);color:var(--accent)}.q-header-actions>.btn{height:34px;min-height:34px}.paper-page .btn.btn-danger-soft{background:0 0;border-color:var(--status-error);color:var(--status-error)}.paper-page .btn.btn-danger-soft:hover{background:var(--status-error-soft-hover);border-color:var(--status-error);color:var(--status-error)}.q-auto-refresh,.q-section-label,.q-state-chip{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.q-state-chip{font-size:12px;text-transform:capitalize}.overview-page .ov-ebar-fill{display:block}.paper-table .paper-table-row.repo-error{border-left:0;box-shadow:inset 2px 0 0 var(--status-error);padding-left:16px}.admin-page .q-table th,.admin-page .type-badge,.admin-page .user-detail-section h2,.admin-page section>h2,.admin-page th,.admin-page>h2,.errors-page .col-count,.errors-page .col-mod,.errors-page .col-msg,.errors-page .col-sev,.errors-page .col-status,.errors-page .col-when,.overview-page .ov-chart-legend,.overview-page .ov-ebar-label,.overview-page .ov-route-n,.overview-page .ov-route-name,.q-card-sub,.q-delay-hint,.q-legend-completed,.q-legend-exec,.q-legend-failed,.q-section-right,.q-stat-label,.user-detail-grid .detail-label{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.admin-page th,.errors-page [class^=col-]{font-size:12px;font-weight:500;color:var(--ink-muted)}.q-card-sub,.q-stat-label,.user-detail-grid .detail-label{font-size:12px}.q-stat-value{font-family:var(--font-sans);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.q-state-badge{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:capitalize}.admin-page .type-badge{font-size:12px;text-transform:none}.errors-page .col-sev span,.errors-page .sev-label{text-transform:capitalize}.dark-mode .overview-page .ov-daily-value,.overview-page .ov-daily-value{color:var(--color)}.dark-mode .overview-page .ov-spark-fill-alt,.dark-mode .overview-page .ov-spark-fill-new-user,.dark-mode .overview-page .ov-spark-fill-user,.overview-page .ov-spark-fill-alt,.overview-page .ov-spark-fill-new-user,.overview-page .ov-spark-fill-user{background:var(--accent)}.dark-mode .overview-page .ov-dot-new-user-fill,.dark-mode .overview-page .ov-dot-ok-fill,.dark-mode .overview-page .ov-dot-user-fill,.overview-page .ov-dot-new-user-fill,.overview-page .ov-dot-ok-fill,.overview-page .ov-dot-user-fill{background:var(--accent)}.errors-page .seg-tabs{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card)}.errors-page .seg-tabs button,.errors-page .seg-tabs button+button{min-height:0;height:30px;padding:0 10px;border:0;border-radius:4px;background:0 0;color:var(--ink-muted);font:500 13px/1 var(--font-sans)}.errors-page .seg-tabs button:hover{background:var(--hover-bg-color);color:var(--color)}.errors-page .seg-tabs button.active{background:var(--accent-soft);color:var(--accent)}.user-detail-card .user-header .status-dot-wrap{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:400;color:var(--ink-soft)}.user-detail-card .user-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-page .paper-table .cell-anon .anon-sub{flex-wrap:wrap;row-gap:2px}.admin-page .paper-table .anon-sub>a,.admin-page .paper-table .anon-sub>span{flex:0 1 auto;max-width:100%;white-space:nowrap}.admin-page .paper-table .cell-views .mobile-meta-icon{margin-right:4px}.q-jobs{overflow-x:auto}.q-job-detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.admin-section-header h2{font-family:var(--font-sans);font-size:16px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--color)}.errors-page .sev-label{font-family:var(--font-sans);font-size:13px;letter-spacing:0}.email-prompt{width:min(560px,calc(100vw - 32px));padding:28px;border:1px solid var(--paper-border,#e5e1d9);border-radius:12px;background:var(--paper-bg,#faf9f6);color:inherit;box-shadow:0 16px 64px #0003}.email-prompt::backdrop{background:#0006}.email-prompt h2{margin:0 0 12px;font-size:24px}.email-prompt p{margin-bottom:20px}.email-prompt-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:24px}body.dark-mode .email-prompt{background:#242320;color:#faf9f6}.file-error .viewer-error{width:100%;max-width:65ch;padding:2rem 1rem;overflow-wrap:anywhere;font-size:1rem;font-weight:400;text-align:left}.viewer-error .paper-empty-title{margin-bottom:1rem}.viewer-error p{line-height:1.6}.viewer-error .paper-error-actions{display:flex;flex-wrap:wrap;gap:.75rem}.markdown-body .markdown-alert{margin:1rem 0;padding:.5rem 1rem;border-left:4px solid var(--alert-color,#0969da)}.markdown-body .markdown-alert-note{--alert-color:#0969da}.markdown-body .markdown-alert-tip{--alert-color:#1a7f37}.markdown-body .markdown-alert-important{--alert-color:#8250df}.markdown-body .markdown-alert-warning{--alert-color:#9a6700}.markdown-body .markdown-alert-caution{--alert-color:#cf222e}.markdown-body .markdown-alert-title{color:var(--alert-color);font-weight:600;display:flex;align-items:center;gap:.5rem}.markdown-body .markdown-alert-title svg{fill:currentColor;flex-shrink:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}body.dark-mode .markdown-alert-note{--alert-color:#79c0ff}body.dark-mode .markdown-alert-tip{--alert-color:#7ee787}body.dark-mode .markdown-alert-important{--alert-color:#d2a8ff}body.dark-mode .markdown-alert-warning{--alert-color:#e3b341}body.dark-mode .markdown-alert-caution{--alert-color:#ff7b72}.markdown-body .emoji{display:inline;vertical-align:text-bottom}.markdown-body .footnotes{margin-top:2rem;border-top:1px solid var(--border-color,#d0d7de);padding-top:1rem;font-size:.875em}.markdown-body .katex-display{overflow-x:auto;overflow-y:hidden;padding:.25rem 0}.markdown-body .markdown-diagram{margin:1rem 0;border:1px solid var(--border-color,#d0d7de);padding:.75rem}.markdown-body .markdown-diagram svg{display:block;width:100%;max-height:360px}.markdown-body .markdown-diagram path{fill:#a7b2ff;fill-opacity:.5;stroke:var(--link-color,#3b4ad6);stroke-width:1;vector-effect:non-scaling-stroke}.markdown-body .diagram-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.markdown-body .diagram-controls button{min-width:44px;min-height:44px;padding:.25rem .75rem;border:1px solid var(--border-color,#d0d7de);background:var(--main-bg-color,#fff);color:inherit;border-radius:4px}.markdown-body .diagram-controls button:hover{background:var(--hover-bg-color,#f6f8fa)}.markdown-body .diagram-controls button:focus-visible{outline:2px solid var(--link-color,#0969da);outline-offset:2px}.markdown-body .hljs-keyword,.markdown-body .hljs-selector-tag{color:#cf222e}.markdown-body .hljs-attr,.markdown-body .hljs-string{color:#0a3069}.markdown-body .hljs-literal,.markdown-body .hljs-number,.markdown-body .hljs-title{color:#8250df}.markdown-body .hljs-comment{color:#57606a}body.dark-mode .markdown-body .hljs-keyword{color:#ff7b72}body.dark-mode .markdown-body .hljs-attr,body.dark-mode .markdown-body .hljs-string{color:#a5d6ff}body.dark-mode .markdown-body .hljs-literal,body.dark-mode .markdown-body .hljs-number,body.dark-mode .markdown-body .hljs-title{color:#d2a8ff}body.dark-mode .markdown-body .hljs-comment{color:#b1bac4}body.dark-mode .markdown-body .gh-light-mode-only,body:not(.dark-mode) .markdown-body .gh-dark-mode-only{display:none}.billing-plan{padding:1.5rem 0;border-bottom:1px solid var(--paper-border,#d8d4cd)}.billing-plan h3{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}.billing-price{font-variant-numeric:tabular-nums;font-weight:400}.billing-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}#settings-billing p{max-width:72ch}.repository-hosting{border-top:1px solid var(--border-color);margin-top:24px}.repository-hosting h2{font-size:1.5rem}.hosting-choices{border:0;padding:0;margin:20px 0;min-width:0}.hosting-choices legend{font-size:1rem;font-weight:600}.hosting-choice{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--border-color);background:var(--paper-card);cursor:pointer}.hosting-choice+.hosting-choice{border-top:0}.hosting-choice input{margin-top:5px;accent-color:var(--accent)}.hosting-choice small,.hosting-choice strong{display:block}.hosting-choice small{margin-top:6px;color:var(--ink-muted)}.hosting-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:20px 0}.repository-pass{margin:20px 0}.repository-pass summary{cursor:pointer;color:var(--link-color)}.repository-pass p{margin-top:12px}.task-review-active.anonymize-page{height:auto!important;min-height:100%;overflow:visible}.task-review-active .anonymize-workspace{flex:0 0 auto;overflow:visible}.repository-task{width:100%;max-width:1020px;margin:0 auto;padding:32px 24px 42px;color:var(--color);font-size:15px;line-height:1.55}.repository-task .paper-crumbs{margin-bottom:24px}.repository-task h1{font:normal 40px/1.15 'Iowan Old Style',Georgia,serif;margin:8px 0 10px}.repository-task h2{font:normal 27px/1.25 'Iowan Old Style',Georgia,serif;margin:0 0 12px}.repository-task h3{font:600 17px/1.5 var(--font-sans);margin:0 0 10px}.repository-task p{margin:0 0 16px}.task-lede,.task-muted{color:var(--ink-muted)}.task-trail{list-style:none;display:flex;flex-wrap:wrap;gap:24px;margin:30px 0;padding:18px 0;border-bottom:1px solid var(--border-color);color:var(--ink-muted);font-size:13px}.task-trail [aria-current]{color:var(--color);font-weight:600}.task-trail button{color:inherit;padding:0;border:0;background:0 0;font:inherit;cursor:pointer}.task-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(245px,1fr);gap:34px;align-items:start}.task-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.task-text-button{border:0;padding:7px 0;background:0 0;color:var(--link-color);cursor:pointer;font:inherit;text-align:left}.task-text-button:focus-visible,.task-trail button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.task-summary{background:var(--paper-bg-alt);padding:24px;border-radius:5px}.task-summary dt{margin-top:18px;font-size:12px;font-weight:400;color:var(--ink-muted)}.task-summary dd{margin:3px 0;overflow-wrap:anywhere}.task-redactions,.task-summary h3{overflow-wrap:anywhere}.task-summary dl{margin-bottom:0}.task-summary-foot{border-top:1px solid var(--border-color);margin-top:28px;padding-top:24px}.task-summary-foot p{color:var(--ink-muted);margin:0}.task-hosting{border-top:1px solid var(--border-color);margin-top:22px;padding-top:20px}.repository-task .hosting-choices{margin:18px 0}.repository-task .hosting-choice{padding:18px;gap:13px;font-weight:400;margin:0}.repository-task .hosting-choice:first-of-type{border-radius:6px 6px 0 0}.repository-task .hosting-choice:last-of-type{border-radius:0 0 6px 6px}.repository-task .hosting-choice small{margin-top:0;font-size:13px;line-height:1.55}.task-terms{font-size:13px;color:var(--ink-soft)}.task-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:24px 0 16px}.repository-task .btn{padding:10px 16px;border-radius:5px;font-size:15px}.task-status{background:var(--accent-soft);padding:16px 20px;margin:20px 0}.task-status p:last-child{margin:0}@media(max-width:650px){.repository-task{padding:24px 18px}.repository-task h1{font-size:32px}.task-columns{display:block}.task-summary{margin-top:28px}.task-trail{gap:15px;font-size:12px}}.repository-task{scroll-margin-top:70px}.task-columns{align-items:stretch}.repository-task .btn-ink{background:var(--color);border-color:var(--color);color:var(--canvas-bg-color);box-shadow:none}.repository-task .btn-ink:hover{background:var(--ink-soft);border-color:var(--ink-soft)}.task-field{margin-bottom:24px}.task-field>label{display:block;font-weight:600;margin-bottom:8px}.task-field input,.task-field select,.task-field textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:4px;background:var(--paper-card);color:var(--color);font:inherit}.task-field textarea{resize:vertical}.task-field small{display:block;margin-top:8px;font-size:13px;color:var(--ink-muted)}.task-field :is(input,select,textarea):focus-visible{outline:3px solid var(--accent);outline-offset:3px}.task-paybox{background:var(--paper-card);border:1px solid var(--border-color);border-radius:5px;padding:22px;margin-top:20px}.task-ready{border-left:3px solid var(--success,#2f7a44);padding:16px 20px;background:var(--paper-bg-alt);margin-bottom:22px}.repository-task.status-page .paper-progress{margin-top:24px}.task-date-options summary{cursor:pointer;color:var(--link-color);font-size:13px}.task-date-options[open] summary{margin-bottom:12px}.task-result{padding:18px;background:var(--paper-bg-alt);overflow-wrap:anywhere}.task-result .detail-label{font-size:12px;color:var(--ink-muted);margin-bottom:6px}.task-configure-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.task-live-preview{min-width:0;border:1px solid var(--border-color);border-radius:5px;background:var(--paper-card)}.task-preview-head{padding:20px 24px;border-bottom:1px solid var(--border-color)}.task-preview-head h2{font-size:23px;margin-bottom:6px}.task-preview-head p{margin:0;font-size:13px}.task-preview-content,.task-preview-message{padding:24px}.task-preview-content{overflow:auto;max-height:650px;overflow-wrap:anywhere}.repository-task .task-preview-content h1{font:600 28px/1.3 var(--font-sans)}.repository-task .task-preview-content h2{font:600 22px/1.3 var(--font-sans)}@media(max-width:650px){.task-live-preview{margin-top:28px}.task-preview-content{max-height:none}}.anonymize-page .anonymize-topbar{padding:14px 22px;background:var(--canvas-bg-color)}.anonymize-page .anonymize-topbar-inner{max-width:none}.anonymize-page .anonymize-topbar-head{justify-content:space-between}.anonymize-page .anonymize-topbar-title{font:600 19px/1.25 var(--font-sans);margin:0}.anonymize-page .anonymize-split{display:grid;grid-template-columns:minmax(320px,42%) minmax(0,1fr);overflow:hidden}.anonymize-page .anonymize-form-col{width:auto;min-height:0;overflow:hidden!important;background:var(--paper-card)}.anonymize-page .anonymize-form-col .paper-settings-main{display:flex;flex-direction:column;height:100%;min-height:0;max-width:none;padding:0}.anonymize-fields{flex:1;min-height:0;overflow:auto;position:relative;scrollbar-width:thin}.anonymize-page .paper-settings-main .paper-settings-section{border:0;border-top:1px solid var(--border-color);border-radius:0;padding:18px 20px 20px;margin:0;box-shadow:none}.anonymize-page .paper-settings-main .paper-settings-section:first-child{border-top:0;padding-top:18px}.anonymize-page .paper-section-eyebrow{font:600 15px/1.4 var(--font-sans);margin:0 0 16px;letter-spacing:0}.anonymize-page .paper-field-label{font:500 13px/1.5 var(--font-sans);margin-bottom:8px}.anonymize-page .form-group{margin-bottom:16px}.anonymize-page .form-group:last-child{margin-bottom:0}.anonymize-page .form-control{font-size:14px;min-height:40px;padding:9px 10px;border-radius:4px}.anonymize-page textarea.form-control{line-height:1.6}.anonymize-page .form-grid-2{gap:12px}.anonymize-page .form-check{padding-top:10px;padding-bottom:10px;font-size:14px}.anonymize-page .form-check-label{font-size:14px;line-height:1.5}.anonymize-page .form-text{font-size:12px;line-height:1.6}.anonymize-page .repo-access-details{margin:12px 0 16px}.anonymize-page .repo-access-note{font-size:11px}.anonymize-page .anonymize-submit-bar{flex:none;position:static;margin:0;padding:16px 20px;background:var(--paper-card);border-top:1px solid var(--border-color)}.anonymize-page .anonymize-submit-bar .btn{width:100%;font-size:14px;padding:10px 12px;min-height:43px}.checkout-return-note{font-size:11px;line-height:1.5;color:var(--ink-muted);margin:8px 0 0;text-align:center}.anonymize-fields>.alert,.anonymize-fields>.anonymize-review-note,.anonymize-fields>.draft-status{margin:12px 20px}.anonymize-page .anonymize-preview-col{min-height:0;padding:20px;position:relative;background:var(--canvas-bg-color)}.anonymize-page .anonymize-preview-head{border:0;padding:0;min-height:32px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.anonymize-preview-head button,.anonymize-preview-head strong{font-size:13px}.anonymize-page .anonymize-preview-body{padding:24px;border-radius:6px;min-height:480px;overflow-wrap:anywhere;font:14px/1.7 var(--font-sans)}.anonymize-page .anonymize-preview-body h1{font-size:27px;line-height:1.2;margin:0 0 20px;padding-bottom:14px}.anonymize-page .anonymize-preview-body h2{font-size:18px;margin:28px 0 12px}.anonymize-page .anonymize-preview-body pre{font-size:12px;padding:15px}.anonymize-page.preview-expanded .anonymize-split{grid-template-columns:1fr}.anonymize-page.preview-expanded .anonymize-form-col{display:none}.hosting-usage{font-size:12px;color:var(--ink-muted);margin:0 0 4px}.expiration-choices{border:0;padding:0;margin:0 0 16px;min-width:0}.expiration-choice{display:flex;align-items:flex-start;gap:10px;padding:12px 0;margin:0;cursor:pointer;font-size:14px;font-weight:500;line-height:1.5}.expiration-choice input{width:16px;height:16px;margin:4px 0 0;flex:none;accent-color:var(--accent)}.expiration-choice small{display:block;font-size:12px;font-weight:400;color:var(--ink-muted);margin-top:2px}.dated-options{padding:2px 0 14px 26px}.hosting-date,.hosting-property{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:center;margin-bottom:10px}.hosting-property{margin-bottom:0}.hosting-date .paper-field-label,.hosting-property label{font-size:12px;font-weight:400;margin:0}.hosting-date .invalid-feedback{grid-column:1/-1}.anonymize-page .conference-field{border-top:1px solid var(--border-color);padding:16px 0;margin:0}.subscription-choice{padding:16px;background:var(--paper-bg-alt);border-radius:6px;margin-top:4px}.subscription-choice h3{font-size:13px;font-weight:600;margin:0 0 10px}.billing-cycle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;padding:0;margin:0 0 12px;min-width:0}.cycle-option{display:flex;align-items:center;gap:7px;padding:10px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--paper-card);font-size:12px;cursor:pointer;margin:0}.cycle-option.selected{border-color:var(--accent);background:var(--accent-soft)}.cycle-option input{accent-color:var(--accent);margin:0;flex:none}.subscription-choice p{font-size:12px;line-height:1.5;margin:0 0 8px}.subscription-choice p:last-child{margin:0}.hosting-terms{font-size:12px;line-height:1.5;color:var(--ink-muted)}.capacity-reason{font-size:13px}.capacity-options,.repository-pass{margin-top:12px;font-size:12px}.capacity-options summary,.repository-pass summary{cursor:pointer}.capacity-options p,.repository-pass p{margin:8px 0}.capacity-options .task-text-button{display:block}@media(max-width:767px){.anonymize-page .anonymize-split{display:block;overflow:visible}.anonymize-page .anonymize-form-col .paper-settings-main{height:auto}.anonymize-fields{overflow:visible}.anonymize-page .paper-settings-main .paper-settings-section{padding:18px 16px 20px}.anonymize-page .anonymize-topbar{padding:14px 16px}.anonymize-page .anonymize-preview-col{padding:16px}.anonymize-page .anonymize-preview-body{padding:20px}.anonymize-page .anonymize-submit-bar{padding:16px}.anonymize-page .preview-expand{display:none}.anonymize-page .anonymize-mobile-tabs{padding:0;gap:0;background:var(--paper-card)}.anonymize-mobile-tabs button{border-radius:0;padding:12px;min-height:44px}.anonymize-mobile-tabs button[aria-selected=true]{background:0 0;box-shadow:inset 0 -2px var(--accent)}.cycle-option{min-height:44px}}.anonymize-page{--font-sans:system-ui,-apple-system,sans-serif;font-family:var(--font-sans)}body:not(.dark-mode) .anonymize-page{--paper-card:#fff;--canvas-bg-color:#faf9f6;--paper-bg-alt:#f5f4f0;--border-color:#dedbd4;--color:#242320;--ink-muted:#68655e}.anonymize-page .repo-access-controls .btn{font-size:12px;padding:8px 12px;min-height:36px}.anonymize-page .form-check-label{font-weight:400}.anonymize-page .form-check{padding-left:26px}.anonymize-page .form-check input{width:16px;height:16px;margin-left:-26px;accent-color:var(--accent)}.anonymize-page .form-check small{margin-top:6px}.anonymize-page .btn.btn-icon.refresh-branches{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:100%;min-height:40px;padding:0}@media (max-width:767px){.anonymize-page #branch,.anonymize-page #commit{min-height:44px}.anonymize-page .btn.btn-icon.refresh-branches{width:44px;min-width:44px;min-height:44px}}.anonymize-page .redaction-syntax{font-size:12px;margin-top:8px}.redaction-syntax summary{cursor:pointer;color:var(--link-color);min-height:28px}.anonymize-page .anonymize-preview-body h2{border:0;padding:0;font-weight:700}.anonymize-page .anonymize-preview-body h1{font-weight:700}.anonymize-page .anonymize-preview-body pre{background:var(--paper-bg-alt);line-height:1.7}.anonymize-page .anonymize-preview-body pre code{font:12px/1.7 ui-monospace,monospace;background:0 0;padding:0}.anonymize-page .anonymize-preview-body{--main-bg-color:var(--paper-card);background:var(--paper-card)}.anonymize-page .anonymize-submit-bar .btn{font-weight:600}.anonymize-page .form-grid-2 .form-group{margin-bottom:0}.anonymize-page .form-check small{margin-left:-26px}@media (min-width:992px){body:has([class*=floatingchat-container-wrap]) .anonymize-page .anonymize-submit-bar{padding-left:228px}}.user-settings{max-width:1060px;padding:28px 26px 40px}.user-settings .settings-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}.user-settings .settings-title h1{font:650 26px/1.3 var(--font-sans);letter-spacing:-.025em;margin:0}.settings-title>span{color:var(--ink-muted);font-size:12px}.settings-nav{display:flex;gap:28px;border-bottom:1px solid var(--border-color)}.settings-nav button{border:0;border-radius:0;background:0 0;color:var(--ink-muted);padding:12px 0;min-height:44px;font:13px/1.4 var(--font-sans)}.settings-nav button[aria-current=page]{color:var(--color);font-weight:600;box-shadow:inset 0 -2px var(--accent)}.settings-nav button:hover{color:var(--accent)}.user-settings .settings-scope{color:var(--ink-muted);font-size:12px;margin:20px 0 4px}.user-settings .settings-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;padding:22px 0;border-bottom:1px solid var(--border-color)}.user-settings .settings-label,.user-settings .settings-row>h2{font-size:13px;font-weight:600;line-height:1.5;margin:8px 0 0;display:block}.user-settings .settings-help{font-size:12px;color:var(--ink-muted);margin:7px 0 0;line-height:1.6}.user-settings .form-control{font-size:14px;min-height:40px;padding:9px 10px;border-radius:4px;background:var(--paper-card)}.user-settings textarea.form-control{line-height:1.6}.settings-syntax{font-size:12px;margin-top:8px}.settings-syntax summary{cursor:pointer;color:var(--link-color);min-height:26px}.settings-syntax p{margin:8px 0}.settings-checks{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding:4px 0;margin-bottom:12px}.user-settings .settings-check{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:400;margin:0}.user-settings .settings-check .form-check-input{position:static;width:16px;height:16px;margin:0;flex:none;accent-color:var(--accent)}.settings-save{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 0 22px}.settings-save-status{color:var(--ink-muted);font-size:12px}.settings-save #save{margin-left:auto;min-width:125px}.settings-save-error{color:var(--status-error);flex-basis:100%}.user-settings .settings-inline{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.user-settings .btn{font-size:13px;min-height:40px;padding:9px 13px}.settings-inline .btn{flex-shrink:0}.user-settings #settings-quota{margin:22px 0 16px}.user-settings .quota-row{gap:20px}.user-settings .quota-item{padding:0;background:0 0;border:0}.user-settings .quota-label{font-size:12px}.user-settings .quota-value{font-size:13px;margin:6px 0}.user-settings .quota-value strong{font-size:14px}.user-settings .quota-percent,.user-settings .quota-remaining{font-size:11px}.user-settings .settings-plan{background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:20px;margin:20px 0 0}.user-settings .settings-plan h3{font-size:15px;margin:0 0 10px}.user-settings .settings-plan>p{font-size:13px}.settings-cycles{display:flex;flex-wrap:wrap;gap:10px;border:0;padding:0;margin:16px 0}.settings-cycles label{display:flex;align-items:center;gap:8px;border:1px solid var(--border-color);background:var(--paper-card);border-radius:5px;padding:12px;font-size:13px;margin:0;cursor:pointer;flex:1}.settings-cycles label.selected{border-color:var(--accent);background:var(--accent-soft)}.settings-cycles input{accent-color:var(--accent)}.settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.settings-notice{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:5px;padding:14px 16px;margin:16px 0;font-size:13px}.settings-notice p{margin:6px 0 12px}.settings-text-button{border:0;background:0 0;color:var(--link-color);padding:8px 0;font-size:12px}.settings-pass{margin-top:18px}.settings-pass label{display:block;font-size:13px;margin-bottom:8px}.settings-pass .btn{margin-top:12px}.settings-purchase{padding:12px 0;border-bottom:1px solid var(--border-color);font-size:13px;overflow-wrap:anywhere}.settings-purchase:last-child{border:0}.settings-purchase>span{display:block;color:var(--ink-muted);margin-top:4px}.user-settings .paper-account-card{padding:24px 0;border:0;background:0 0}.user-settings .paper-danger-zone{margin-top:24px}@media (max-width:767px){.user-settings{padding:22px 18px 90px}.user-settings .settings-row{grid-template-columns:1fr;gap:12px;padding:20px 0}.user-settings .settings-label,.user-settings .settings-row>h2{margin-top:0}.settings-nav{gap:18px;justify-content:space-between}.settings-nav button{text-align:left;font-size:12px;max-width:124px}.user-settings .settings-check{font-size:12px;min-height:28px}.settings-save{gap:8px}.settings-save-status{font-size:11px}.settings-save #save{min-width:120px}.user-settings .quota-row{grid-template-columns:1fr}.settings-cycles label{flex-basis:100%}}.user-settings .settings-save .draft-status{margin:0;padding:0}.settings-delete-confirm{max-width:480px;margin-top:18px}.settings-delete-confirm label{display:block;font-size:13px;margin-bottom:8px}.user-settings .quota-usage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.user-settings .quota-usage .quota-item+.quota-item{border:0;padding:0}.user-settings .quota-percent,.user-settings .quota-remaining{display:none}@media (max-width:767px){.user-settings .quota-usage{grid-template-columns:1fr}}.settings-header-actions{display:flex;align-items:center;gap:16px}.settings-header-actions>span{color:var(--ink-muted);font-size:12px}.user-settings .settings-upgrade{color:var(--accent);border-color:var(--accent);background:0 0}.user-settings .settings-comparison{width:100%;table-layout:fixed;margin:16px 0 20px;font-size:12px}.settings-comparison td,.settings-comparison th{padding:10px 8px;border-bottom:1px solid var(--border-color);text-align:left;overflow-wrap:anywhere;vertical-align:top}.settings-comparison th:first-child{width:42%;padding-left:0}.settings-comparison tbody th{font-weight:400}.settings-comparison thead th{font-weight:600}@media(max-width:580px){.settings-header-actions>span{display:none}.settings-header-actions{gap:8px}.user-settings .settings-comparison{font-size:11px}}.navbar .nav-link.nav-upgrade{border:1px solid var(--accent);border-radius:5px;color:var(--accent)!important;padding:7px 12px!important;margin-right:12px;font-size:12px;line-height:1.5}.navbar .nav-link.nav-upgrade:hover{background:var(--accent-soft)}@media(max-width:991px){.navbar .nav-link.nav-upgrade{display:inline-block;min-height:44px;padding:11px 14px!important;margin:8px 0}}@media (max-width:600px){.ov-cache .ov-performance-window{display:grid;grid-template-columns:auto minmax(0,1fr);width:100%}.ov-cache .ov-performance-window select{width:100%;min-width:0}} \ No newline at end of file + */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.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-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.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:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter: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%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\e005"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\e05e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hive:before{content:"\e07f"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\e065"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\e013"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-innosoft:before{content:"\e080"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\e066"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\e01a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\e068"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-perbyte:before{content:"\e083"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\e069"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-rust:before{content:"\e07a"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\e057"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sink:before{content:"\e06d"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\e070"}.fa-store-slash:before{content:"\e071"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-tiktok:before{content:"\e07b"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-uncharted:before{content:"\e084"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-users-slash:before{content:"\e073"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\e074"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-watchman-monitoring:before{content:"\e087"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:'Font Awesome 5 Brands';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:'Font Awesome 5 Brands';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:400;font-display:block;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:'Font Awesome 5 Free';font-weight:400}@font-face{font-family:'Font Awesome 5 Free';font-style:normal;font-weight:900;font-display:block;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:'Font Awesome 5 Free';font-weight:900}.nb-notebook{line-height:1.5}.nb-stderr,.nb-stdout{white-space:pre-wrap;margin:1em 0;padding:.1em .5em}.nb-stderr{background-color:#faa}.nb-cell+.nb-cell{margin-top:.5em}.nb-output table{border:1px solid #000;border-collapse:collapse}.nb-output th{font-weight:700}.nb-output td,.nb-output th{border:1px solid #000;padding:.25em;text-align:left;vertical-align:middle;border-collapse:collapse}.nb-notebook blockquote{border-left:5px solid #ccc;margin-left:0;padding-left:1em}.nb-cell{position:relative}.nb-raw-cell{white-space:pre-wrap;background-color:#f5f2f0;font-family:Consolas,Monaco,'Andale Mono',monospace;padding:1em;margin:.5em 0}.nb-output{min-height:1em;width:100%;overflow-x:scroll;border-right:1px dotted #ccc}.nb-output img{max-width:100%}.nb-input:before,.nb-output:before{position:absolute;font-family:monospace;color:#999;left:-7.5em;width:7em;text-align:right}.nb-input:before{content:"In [" attr(data-prompt-number) "]:"}.nb-output:before{content:"Out [" attr(data-prompt-number) "]:"}// Fix pandas dataframe formatting div[style="max-height:1000px;max-width:1500px;overflow:auto;"]{max-height:none!important}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,math,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.18.10"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .katex-base,.katex .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 .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.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 .mathsfit,.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 .katex-vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .katex-thinbox{display:inline-flex;flex-direction:row;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 .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .katex-hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.katex-root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .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 .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .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;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .katex-stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .katex-stretchy:after,.katex .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 .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 .reflectbox{display:inline-block;transform:scaleX(-1)}.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>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.mermaid{text-align:center;margin:1em 0;overflow:auto}.mermaid svg{max-width:100%;height:auto}.dark-mode .mermaid{filter:invert(1) hue-rotate(180deg)}.dark-mode .mermaid svg{background:0 0}.dark-mode .mermaid .edgeLabel,.dark-mode .mermaid .nodeLabel{filter:invert(1) hue-rotate(180deg)}.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon,.mermaid .node rect{stroke-width:2px}.mermaid .flowchart-link{stroke-width:2px}.mermaid .actor{fill:#f9f9f9;stroke:#333;stroke-width:2px}.mermaid .messageLine0,.mermaid .messageLine1{stroke:#333;stroke-width:1.5px}.mermaid .section0,.mermaid .section1,.mermaid .section2,.mermaid .section3{opacity:.8}.mermaid .pieChart .slice{opacity:.9}.markdown-body .mermaid{background:0 0;border:none;padding:10px}.mermaid .error{color:#d32f2f;font-family:monospace;font-size:12px;padding:10px;border:1px solid #d32f2f;border-radius:4px;background-color:#ffebee}@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAZwABAAAAAACFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEU0lHAAAGaAAAAAgAAAAIAAAAAUdTVUIAAAZcAAAACgAAAAoAAQAAT1MvMgAAAyQAAABJAAAAYFYEU3RjbWFwAAADcAAAAEUAAACAAJThvmN2dCAAAATkAAAABAAAAAQAAAAAZnBnbQAAA7gAAACyAAABCUM+8IhnYXNwAAAGTAAAABAAAAAQABoAI2dseWYAAAFsAAABPAAAAZwcEq9taGVhZAAAAsgAAAA0AAAANgh4a91oaGVhAAADCAAAABoAAAAkCA8DRGhtdHgAAAL8AAAADAAAAAwGAACfbG9jYQAAAsAAAAAIAAAACABiATBtYXhwAAACqAAAABgAAAAgAA8ASm5hbWUAAAToAAABQgAAAlXu73sOcG9zdAAABiwAAAAeAAAAME3QpOBwcmVwAAAEbAAAAHYAAAB/aFGpk3jaTY6xa8JAGMW/O62BDi0tJLYQincXEypYIiGJjSgHniQ6umTsUEyLm5BV6NDBP8Tpts6F0v+k/0an2i+itHDw3v2+9+DBKTzsJNnWJNTgHEy4BgG3EMI9DCEDOGEXzDADU5hBKMIgNPZqoD3SilVaXZCER3/I7AtxEJLtzzuZfI+VVkprxTlXShWKb3TBecG11rwoNlmmn1P2WYcJczl32etSpKnziC7lQyWe1smVPy/Lt7Kc+0vWY/gAgIIEqAN9we0pwKXreiMasxvabDQMM4riO+qxM2ogwDGOZTXxwxDiycQIcoYFBLj5K3EIaSctAq2kTYiw+ymhce7vwM9jSqO8JyVd5RH9gyTt2+J/yUmYlIR0s04n6+7Vm1ozezUeLEaUjhaDSuXHwVRgvLJn1tQ7xiuVv/ocTRF42mNgZGBgYGbwZOBiAAFGJBIMAAizAFoAAABiAGIAznjaY2BkYGAA4in8zwXi+W2+MjCzMIDApSwvXzC97Z4Ig8N/BxYGZgcgl52BCSQKAA3jCV8CAABfAAAAAAQAAEB42mNgZGBg4f3vACQZQABIMjKgAmYAKEgBXgAAeNpjYGY6wTiBgZWBg2kmUxoDA4MPhGZMYzBi1AHygVLYQUCaawqDA4PChxhmh/8ODDEsvAwHgMKMIDnGL0x7gJQCAwMAJd4MFwAAAHjaY2BgYGaA4DAGRgYQkAHyGMF8NgYrIM3JIAGVYYDT+AEjAwuDFpBmA9KMDEwMCh9i/v8H8sH0/4dQc1iAmAkALaUKLgAAAHjaTY9LDsIgEIbtgqHUPpDi3gPoBVyRTmTddOmqTXThEXqrob2gQ1FjwpDvfwCBdmdXC5AVKFu3e5MfNFJ29KTQT48Ob9/lqYwOGZxeUelN2U2R6+cArgtCJpauW7UQBqnFkUsjAY/kOU1cP+DAgvxwn1chZDwUbd6CFimGXwzwF6tPbFIcjEl+vvmM/byA48e6tWrKArm4ZJlCbdsrxksL1AwWn/yBSJKpYbq8AXaaTb8AAHja28jAwOC00ZrBeQNDQOWO//sdBBgYGRiYWYAEELEwMTE4uzo5Zzo5b2BxdnFOcALxNjA6b2ByTswC8jYwg0VlNuoCTWAMqNzMzsoK1rEhNqByEyerg5PMJlYuVueETKcd/89uBpnpvIEVomeHLoMsAAe1Id4AAAAAAAB42oWQT07CQBTGv0JBhagk7HQzKxca2sJCE1hDt4QF+9JOS0nbaaYDCQfwCJ7Au3AHj+LO13FMmm6cl7785vven0kBjHCBhfpYuNa5Ph1c0e2Xu3jEvWG7UdPDLZ4N92nOm+EBXuAbHmIMSRMs+4aUEd4Nd3CHD8NdvOLTsA2GL8M9PODbcL+hD7C1xoaHeLJSEao0FEW14ckxC+TU8TxvsY6X0eLPmRhry2WVioLpkrbp84LLQPGI7c6sOiUzpWIWS5GzlSgUzzLBSikOPFTOXqly7rqx0Z1Q5BAIoZBSFihQYQOOBEdkCOgXTOHA07HAGjGWiIjaPZNW13/+lm6S9FT7rLHFJ6fQbkATOG1j2OFMucKJJsxIVfQORl+9Jyda6Sl1dUYhSCm1dyClfoeDve4qMYdLEbfqHf3O/AdDumsjAAB42mNgYoAAZQYjBmyAGYQZmdhL8zLdDEydARfoAqIAAAABAAMABwAKABMAB///AA8AAQAAAAAAAAAAAAAAAAABAAAAAA==) format('woff')}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;line-height:1.5;color:#24292e;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body .pl-c{color:#6a737d}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:#005cc5}.markdown-body .pl-e,.markdown-body .pl-en{color:#6f42c1}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:#24292e}.markdown-body .pl-ent{color:#22863a}.markdown-body .pl-k{color:#d73a49}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:#032f62}.markdown-body .pl-smw,.markdown-body .pl-v{color:#e36209}.markdown-body .pl-bu{color:#b31d28}.markdown-body .pl-ii{color:#fafbfc;background-color:#b31d28}.markdown-body .pl-c2{color:#fafbfc;background-color:#d73a49}.markdown-body .pl-c2::before{content:"^M"}.markdown-body .pl-sr .pl-cce{font-weight:700;color:#22863a}.markdown-body .pl-ml{color:#735c0f}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{font-weight:700;color:#005cc5}.markdown-body .pl-mi{font-style:italic;color:#24292e}.markdown-body .pl-mb{font-weight:700;color:#24292e}.markdown-body .pl-md{color:#b31d28;background-color:#ffeef0}.markdown-body .pl-mi1{color:#22863a;background-color:#f0fff4}.markdown-body .pl-mc{color:#e36209;background-color:#ffebda}.markdown-body .pl-mi2{color:#f6f8fa;background-color:#005cc5}.markdown-body .pl-mdr{font-weight:700;color:#6f42c1}.markdown-body .pl-ba{color:#586069}.markdown-body .pl-sg{color:#959da5}.markdown-body .pl-corl{text-decoration:underline;color:#032f62}.markdown-body .octicon{display:inline-block;vertical-align:text-top;fill:currentColor}.markdown-body a{background-color:transparent;-webkit-text-decoration-skip:objects}.markdown-body a:active,.markdown-body a:hover{outline-width:0}.markdown-body strong{font-weight:inherit}.markdown-body strong{font-weight:bolder}.markdown-body h1{font-size:2em;margin:.67em 0}.markdown-body img{border-style:none}.markdown-body svg:not(:root){overflow:hidden}.markdown-body hr{box-sizing:content-box;height:0;overflow:visible}.markdown-body input{font:inherit;margin:0}.markdown-body input{overflow:visible}.markdown-body [type=checkbox]{box-sizing:border-box;padding:0}.markdown-body *{box-sizing:border-box}.markdown-body input{font-family:inherit;font-size:inherit;line-height:inherit}.markdown-body a{color:#0366d6;text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body hr{height:0;margin:15px 0;overflow:hidden;background:0 0;border:0;border-bottom:1px solid #dfe2e5}.markdown-body hr::before{display:table;content:""}.markdown-body hr::after{display:table;clear:both;content:""}.markdown-body table{border-spacing:0;border-collapse:collapse}.markdown-body td,.markdown-body th{padding:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:0;margin-bottom:0}.markdown-body h1{font-size:32px;font-weight:600}.markdown-body h2{font-size:24px;font-weight:600}.markdown-body h3{font-size:20px;font-weight:600}.markdown-body h4{font-size:16px;font-weight:600}.markdown-body h5{font-size:14px;font-weight:600}.markdown-body h6{font-size:12px;font-weight:600}.markdown-body p{margin-top:0;margin-bottom:10px}.markdown-body blockquote{margin:0}.markdown-body ol,.markdown-body ul{padding-left:0;margin-top:0;margin-bottom:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px}.markdown-body .octicon{vertical-align:text-bottom}.markdown-body .pl-0{padding-left:0!important}.markdown-body .pl-1{padding-left:4px!important}.markdown-body .pl-2{padding-left:8px!important}.markdown-body .pl-3{padding-left:16px!important}.markdown-body .pl-4{padding-left:24px!important}.markdown-body .pl-5{padding-left:32px!important}.markdown-body .pl-6{padding-left:40px!important}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:0}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1{padding-bottom:.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:#6a737d}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body code{padding:0;padding-top:.2em;padding-bottom:.2em;margin:0;font-size:85%;background-color:rgba(27,31,35,.05);border-radius:3px}.markdown-body .full-commit .btn-outline:not(:disabled):hover{color:#005cc5;border-color:#005cc5}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1}.markdown-body :checked+.radio-label{position:relative;z-index:1;border-color:#0366d6}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{margin:0 .2em .25em -1.6em;vertical-align:middle}.markdown-body hr{border-bottom-color:#eee}.dark-mode{--canvas-bg-color:#1B1916;--sidebar-bg-color:#1A1918;--main-bg-color:#1B1916;--header-bg-color:#1A1918;--hover-bg-color:rgba(255, 255, 255, 0.05);--header-color:#FAF9F6;--color:#D6D1C5;--link-color:#A7B2FF;--link-hover-color:#C8CEFF;--border-color:#33302B;--border-soft:#2A2825;--btn-color:#FAF9F6;--input-color:#E6E1D8;--input-bg:#25231F;--primary-bg:#FAF9F6;--primary-hover-bg:#FFFFFF;--primary-color:#1A1815;--primary-active-color:#1A1815;--accent:#A7B2FF;--accent-soft:rgba(167, 178, 255, 0.12);--ink-muted:#A39D92;--ink-faint:#8A857C;--ink-soft:#B5AFA2;--status-ready:#5FB27A;--status-progress:#E0A94A;--status-error:#F08A82;--status-inactive:#8A857C;--status-error-soft:rgba(240, 138, 130, 0.08);--status-error-soft-hover:rgba(240, 138, 130, 0.14);--admin-nav-bg:#1A1918;--admin-nav-active:rgba(167, 178, 255, 0.12);--admin-stat-bg:#25231F;--paper-card:#25231F;--paper-bg-alt:#201E1B;--highlight:#3A341E;background-color:var(--canvas-bg-color);color:var(--color)}body{--canvas-bg-color:#FAF9F6;--sidebar-bg-color:#FFFFFF;--header-bg-color:#FAF9F6;--header-color:#1A1815;--main-bg-color:#FAF9F6;--hover-bg-color:rgba(26, 24, 21, 0.05);--input-color:#1A1815;--color:#1A1815;--link-color:#3B4AD6;--link-hover-color:#2E3BB8;--border-color:#E6E1D8;--border-soft:#EDE9E1;--btn-color:#1A1815;--input-bg:#FFFFFF;--primary-bg:#1A1815;--primary-hover-bg:#000000;--primary-color:#FAF9F6;--primary-active-color:#FAF9F6;--accent:#3B4AD6;--accent-soft:#EEF0FF;--ink-muted:#6F6A61;--ink-faint:#8A857C;--ink-soft:#4A4641;--paper-bg-alt:#F3F1EC;--paper-card:#FFFFFF;--highlight:#FFF3C4;--status-ready:#2F7A44;--status-progress:#946512;--status-error:#B42318;--status-inactive:#8A857C;--status-error-soft:rgba(180, 35, 24, 0.04);--status-error-soft-hover:rgba(180, 35, 24, 0.08);--radius-control:6px;--radius-button:8px;--button-height:36px;--button-font-size:14px;--button-line-height:20px;--button-padding-x:13px;--button-compact-height:32px;--radius-surface:10px;--font-serif:'Instrument Serif','Iowan Old Style',Georgia,serif;--font-sans:'Inter',ui-sans-serif,system-ui,-apple-system,sans-serif;--font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;background-color:var(--canvas-bg-color);color:var(--color);font-family:var(--font-sans);font-size:14px;letter-spacing:-.005em;line-height:1.5}.fadeIn{opacity:1;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:.6s}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}.btn:active,.btn:focus{box-shadow:none}:focus:not(:focus-visible){outline:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:focus-visible,.dropdown-item:focus-visible,.form-control:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}input:active,input:hover{box-shadow:none!important}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{border-color:var(--border-color);-webkit-text-fill-color:var(--color);-webkit-box-shadow:none;transition:background-color 1000s ease-in-out 0s}.custom-select,.form-control,input:-internal-autofill-selected{color:var(--input-color);background-color:var(--input-bg)!important;border-color:var(--border-color)}.form-control:focus{border-color:var(--border-color)}body,html{position:relative;height:100%;overflow-x:hidden}body{overflow-y:hidden}#app{flex:1 1 auto;min-height:0}.app-header{flex:0 0 auto}.app-view{display:block;flex:1 1 auto;min-height:0;overflow-x:hidden!important;overflow-y:auto!important;max-width:100%}.markdown-body a,a{color:var(--link-color)}.markdown-body a:hover,a:hover{text-decoration:none;color:var(--link-hover-color)}.dropdown-menu a.dropdown-item{color:var(--color)}.dropdown-menu a.dropdown-item:hover{color:var(--color);text-decoration:none}.markdown-body .emoji{height:1.3em;margin:0;vertical-align:-.1em}.navbar.navbar-expand-lg{background:var(--header-bg-color)!important;border-bottom:1px solid var(--border-color);transition:background-color .5s ease;padding:10px max(20px,calc((100vw - 1200px)/ 2));font-family:var(--font-sans)}.navbar-toggler{border:1px solid var(--border-color)!important;color:var(--color)!important}.navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}.navbar .navbar-nav{align-items:center}.navbar .nav-link{display:inline-flex;align-items:center;font-size:13px;color:var(--ink-muted)!important;padding:6px 0!important;margin:0 12px;border-bottom:1px solid transparent;letter-spacing:-.005em;line-height:1}.navbar .nav-link:hover{color:var(--color)!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--color)}.navbar .nav-link.nav-icon{padding:0!important;margin:0 8px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:15px;line-height:1}.navbar #navbarSupportedContent{align-items:center}.navbar-brand{font-family:var(--font-serif)!important;font-size:20px!important;letter-spacing:-.01em;color:var(--color)!important;padding-right:18px;margin-right:12px;border-right:1px solid var(--border-color)}.navbar-brand em,.navbar-brand i{font-style:italic;font-weight:400}.navbar-dark .navbar-toggler{border-color:var(--border-color);color:var(--color)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%231A1815' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar .btn-signin{display:inline-flex;align-items:center;height:32px;padding:0 14px!important;margin-left:6px;border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color)!important;border-radius:6px;font-size:13px;font-weight:500;line-height:1}.navbar .btn-signin:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color)!important}.navbar .nav-support{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;order:3;gap:6px;min-height:36px;margin-left:12px;padding:0 12px;border:1px solid var(--border-color);border-radius:8px;color:var(--color);font-size:13px;font-weight:500;text-decoration:none}.navbar .nav-support:hover{background:var(--hover-bg-color);border-color:var(--color);color:var(--color)}@media (max-width:991px){.navbar .nav-support{order:0;width:44px;min-height:44px;margin:0 8px 0 auto;padding:0}.navbar .nav-support-label{display:none}}.navbar .user-chip{display:inline-flex!important;align-items:center;gap:8px;padding:4px 12px 4px 6px!important;margin-left:6px;border:1px solid var(--border-color);border-radius:999px;background:var(--sidebar-bg-color);font-size:13px;color:var(--color)!important}.navbar .user-chip:hover{background:var(--hover-bg-color)}.navbar .user-chip img{width:22px;height:22px}.navbar .user-chip .user-chip-name{color:var(--color);font-weight:500}.navbar .user-chip::after{color:var(--ink-muted)}#navbarSupportedContent{padding-right:0}.generalMessage{display:block;text-align:center;color:var(--header-color)}.rgba-gradient{background:var(--canvas-bg-color);color:var(--color)}.paper-landing{overflow-x:clip}.paper-wrap{max-width:1140px;margin-left:auto;margin-right:auto;padding-left:32px;padding-right:32px}.paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500}.paper-hero{max-width:1140px;margin:0 auto;padding:64px 32px 0;display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}.paper-hero h1.hero-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.4vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:14px 0 0;color:var(--color);text-wrap:balance}.paper-hero h1 .accent{color:var(--accent);font-style:italic}.hero-subtitle{margin-top:18px;font-size:18px;line-height:1.55;color:var(--ink-soft);max-width:30em;text-wrap:pretty}.paper-cta-row{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:26px}.btn-hero{display:inline-flex;align-items:center;font-family:var(--font-sans);border:1px solid var(--color);background:var(--color);color:var(--canvas-bg-color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control);letter-spacing:-.005em;transition:background .15s,border-color .15s,transform .1s}.btn-hero:hover{background:var(--primary-hover-bg);border-color:var(--primary-hover-bg);color:var(--canvas-bg-color);text-decoration:none;transform:translateY(-1px)}.btn-hero-ghost{background:0 0;border:1px solid var(--border-color);color:var(--color);padding:12px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-control)}.btn-hero-ghost:hover{background:var(--hover-bg-color);border-color:var(--color);color:var(--color)}.paper-link-arrow{font-size:14px;color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--border-color)}.paper-link-arrow:hover{color:var(--color);text-decoration-color:var(--color)}.paper-reassure{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--ink-muted)}.paper-reassure li::before{content:"\2713";color:var(--status-ready);margin-right:6px;font-size:11px}.paper-frame{border-radius:var(--radius-surface);background:var(--paper-card);border:1px solid var(--border-color);box-shadow:0 24px 60px rgba(26,24,21,.1),0 2px 6px rgba(26,24,21,.04);overflow:hidden}.dark-mode .paper-frame{box-shadow:0 24px 60px rgba(0,0,0,.45)}.paper-frame-bar{display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-bottom:1px solid var(--border-soft);background:var(--paper-bg-alt);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted)}.paper-frame-bar .dots{display:flex;gap:5px}.paper-frame-bar .dots i{width:8px;height:8px;border-radius:50%;background:var(--border-color)}.paper-frame-bar .url{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-frame img{display:block;width:100%;height:auto}.paper-hero-shot .paper-frame{width:112%}.paper-proof{margin-top:64px;padding-top:18px;padding-bottom:18px;border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px 30px;align-items:center}.paper-proof-venues{display:flex;gap:22px;align-items:center;font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--ink-soft)}.paper-proof-venues i{font-style:normal;font-family:var(--font-sans);font-size:14px;color:var(--ink-faint)}.paper-stats{margin-top:12px;padding-top:22px;border-top:1px solid var(--border-color)}.paper-stats-meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:14px}.paper-stats-meta-right{display:inline-flex;align-items:center;gap:6px}.paper-stats-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-ready)}.paper-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.paper-stat-card{display:flex;flex-direction:column;padding:22px 26px 20px 0;margin-right:26px;border-right:1px solid var(--border-color);min-width:0}.paper-stat-card:last-child{border-right:0;margin-right:0;padding-right:0}.paper-stat-value{font-size:44px;font-weight:500;letter-spacing:-.04em;line-height:1;color:var(--color);font-variant-numeric:tabular-nums}.paper-stat-label{margin-top:6px;font-size:13px;color:var(--ink-soft)}.paper-stat-bars{display:block;width:100%;height:34px;margin-top:18px;overflow:visible}.paper-stat-bars rect{fill:var(--border-color)}.paper-stat-bars rect.is-latest{fill:var(--accent)}.paper-stat-delta{margin-top:10px;font-family:var(--font-mono);font-size:11px;color:var(--status-ready)}.paper-section-head{margin-top:110px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}.paper-qa h2,.paper-section-head h2{font-family:var(--font-serif);font-weight:400;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.05;letter-spacing:-.02em;margin:10px 0 0;color:var(--color);text-wrap:balance}.paper-feature-title em,.paper-qa h2 em,.paper-section-head h2 em{font-style:italic;color:var(--accent)}.paper-section-head p{font-size:15px;color:var(--ink-soft);max-width:32em;margin:0;line-height:1.6}.paper-preview{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.paper-preview .pane{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);overflow:hidden;min-width:0}.paper-preview .pane-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border-soft)}.paper-preview .pane-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap}.paper-preview .pane-url{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.paper-preview .pane-body{padding:16px 18px;font-family:var(--font-mono);font-size:13px;line-height:1.9;color:var(--ink-soft)}.paper-preview .pane-body strong{color:var(--color);font-weight:600}.paper-preview .tok{color:var(--ink-faint)}.paper-preview .redact{background:var(--accent-soft);color:var(--accent);border-radius:4px;padding:0 5px}.paper-features{margin-top:28px;padding-top:28px;border-top:1px solid var(--border-color);display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}.paper-features-list{display:flex;flex-direction:column}.paper-feature{border-left:2px solid var(--border-soft);padding:16px 0 16px 20px;transition:border-color .2s}.paper-feature.is-on{border-left-color:var(--color)}.paper-feature-tab{all:unset;display:block;width:100%;cursor:pointer;color:inherit;border-radius:4px}.paper-feature-tab:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.paper-feature-tab .paper-eyebrow{display:block;margin-bottom:6px}.paper-feature-title{display:block;font-family:var(--font-serif);font-size:24px;line-height:1.15;letter-spacing:-.015em;color:var(--ink-muted);transition:color .2s}.paper-feature-title em{color:inherit}.paper-feature-tab:hover .paper-feature-title,.paper-feature.is-on .paper-feature-title{color:var(--color)}.paper-feature.is-on .paper-feature-title em{color:var(--accent)}.paper-feature-more{display:none}.paper-feature.is-on .paper-feature-more{display:block}.paper-feature-more .paper-feature-title-m{display:none}.paper-feature-more p{font-size:15px;color:var(--ink-soft);line-height:1.55;margin:10px 0 12px;max-width:30em}.paper-features-stage{min-width:0}.paper-feature-panel{animation:paper-feature-in .25s ease-out}@keyframes paper-feature-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.paper-feature-panel{animation:none}}.paper-crop{position:relative;height:380px;overflow:hidden;background:var(--paper-card)}.paper-crop img{position:absolute;left:0;top:0;max-width:none;height:auto;display:block}.paper-crop-anonymize img{width:150%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:160%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:150%;transform:translate(-6%,-9%)}.paper-qa{margin-top:110px;display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}.paper-qa h2{margin-bottom:12px}.paper-qa .q{border-top:1px solid var(--border-color);padding:18px 0}.paper-qa .q:last-child{border-bottom:1px solid var(--border-color)}.paper-qa .q a{display:block;font-weight:500;font-size:15px;color:var(--color);margin-bottom:6px}.paper-qa .q a:hover{color:var(--accent);text-decoration:none}.paper-qa .q p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6}@media (max-width:1100px){.paper-hero-shot .paper-frame{width:100%}}@media (max-width:991px){.paper-hero{grid-template-columns:1fr;gap:36px;padding-top:40px}.paper-qa,.paper-section-head{grid-template-columns:1fr;gap:16px}.paper-stats-grid{grid-template-columns:1fr 1fr}.paper-stat-card:nth-child(2n){border-right:0;margin-right:0;padding-right:0}.paper-stat-card:nth-child(-n+2){border-bottom:1px solid var(--border-color)}}@media (max-width:767px){.paper-hero,.paper-wrap{padding-left:20px;padding-right:20px}.paper-hero h1.hero-title{font-size:clamp(2.4rem,11vw,3.25rem)}.hero-subtitle{font-size:16px}.paper-cta-row .btn-hero{width:100%;justify-content:center}.paper-proof{margin-top:48px}.paper-stat-card{padding:18px 16px 16px 0;margin-right:16px}.paper-stat-value{font-size:40px}.paper-qa,.paper-section-head{margin-top:72px}.paper-preview{grid-template-columns:1fr}.paper-preview .pane-body{font-size:12px;line-height:1.8}.paper-features{display:flex;flex-wrap:wrap;gap:0;padding-top:0;border-top:0;margin-top:24px}.paper-feature,.paper-features-list,.paper-features-stage{display:contents}.paper-feature-tab{order:1;flex:1 1 0;width:auto;padding:12px 0 10px;border-bottom:2px solid var(--border-color);border-radius:0;text-align:left}.paper-feature.is-on .paper-feature-tab{border-bottom-color:var(--color)}.paper-feature-tab .paper-eyebrow{margin:0;font-size:11px;letter-spacing:.08em}.paper-feature-tab .paper-feature-title{display:none}.paper-feature-panel{order:2;width:100%;margin-top:20px;animation:none}.paper-crop{height:240px}.paper-crop-anonymize img{width:230%;transform:translate(-1.5%,-8%)}.paper-crop-review img{width:240%;transform:translate(-1%,-8%)}.paper-crop-manage img{width:220%;transform:translate(-3%,-9%)}.paper-feature-more{order:3;width:100%}.paper-feature.is-on .paper-feature-more{margin-top:18px}.paper-feature-more .paper-feature-title-m{display:block;font-size:28px;line-height:1.1}.paper-feature-more p{max-width:none}.paper-footer-inner>.paper-footer-brand{grid-column:1/-1}.paper-footer-foot{flex-direction:column;gap:6px}}.dropdown-menu{background-color:var(--paper-card,var(--main-bg-color))!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:8px!important;box-shadow:0 12px 28px rgba(26,24,21,.08),0 2px 6px rgba(26,24,21,.05)!important;padding:6px!important;font-family:var(--font-sans);font-size:13px;min-width:11rem}.dropdown-menu .dropdown-item{color:var(--color)!important;padding:7px 10px!important;border-radius:5px;font-size:13px}.dropdown-menu .dropdown-item:focus,.dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color)!important;color:var(--color)!important}.dropdown-menu .dropdown-divider{border-top-color:var(--border-color)!important;margin:4px 2px}.dropdown-menu .dropdown-header{color:var(--ink-muted);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.body,.file-content,.markdown-body{background-color:var(--main-bg-color)!important;color:var(--color)!important}.markdown-body table tr{background-color:var(--main-bg-color);border-top:1px solid var(--border-color)}.markdown-body table tr:nth-child(2n){background-color:var(--paper-bg-alt)}.markdown-body table td,.markdown-body table th{border:1px solid var(--border-color)}.file-content{padding:4px 7px;text-align:left;min-height:100%}.badge{font-size:75%;font-weight:500;padding:3px 8px;border-radius:10px;vertical-align:middle}.warning-feedback{width:100%;margin-top:.25rem;font-size:80%;color:#dc8e35}.dropdown-item:focus,.dropdown-item:hover{background-color:var(--hover-bg-color)}.card-header .btn,.card-header .btn:focus,.card-header .btn:hover{border:none!important;background:0 0!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--button-height);padding:7px var(--button-padding-x);font:500 var(--button-font-size)/var(--button-line-height) var(--font-sans);vertical-align:middle;max-width:100%;transition:background-color 120ms ease,border-color 120ms ease,color 120ms ease;color:var(--btn-color);border:1px solid var(--border-color);background:var(--paper-card);border-radius:var(--radius-button);white-space:nowrap}.btn:active,.btn:hover{color:var(--btn-color);border:1px solid var(--border-color);background-color:var(--hover-bg-color);box-shadow:none!important}.btn.btn-primary{color:var(--primary-color);background-color:var(--primary-bg)}.btn.btn-primary:active,.btn.btn-primary:hover{color:var(--primary-active-color);background-color:var(--primary-hover-bg)!important}.btn::placeholder{color:var(--color);opacity:1}.white_border{border:1px solid #fff;color:#fff}.leftCol{display:flex;position:relative;flex:0 0 auto;width:100%;z-index:9;flex-direction:column}.card,.leftCol,.sidePanel{background-color:var(--sidebar-bg-color);border:1px solid var(--border-color)}@media (min-width:768px){.leftCol{flex:0 0 310px;width:310px;height:100%}}.leftCol-search{padding:10px 12px 0}.tree-search-box{display:flex;align-items:center;gap:8px;background:var(--canvas-bg-color);border:1px solid var(--border-color);border-radius:8px;padding:7px 10px;transition:border-color .15s}.tree-search-box:focus-within{border-color:var(--ink-muted)}.tree-search-icon{font-size:12px;color:var(--ink-muted);flex-shrink:0}.tree-search-input{flex:1;border:none;outline:0;background:0 0;font-family:var(--font-sans);font-size:13px;color:var(--color);min-width:0}.tree-search-input::placeholder{color:var(--ink-muted)}.tree-search-kbd{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:4px;padding:1px 6px;line-height:1.4;flex-shrink:0}.tree-search-clear{background:0 0;border:none;color:var(--ink-muted);font-size:16px;cursor:pointer;padding:0 2px;line-height:1}.tree-search-clear:hover{color:var(--color)}.leftCol-project-header{display:flex;align-items:baseline;justify-content:space-between;padding:12px 14px 4px;gap:8px}.project-name{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.project-file-count{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);white-space:nowrap;flex-shrink:0}.files{position:relative;display:block;overflow:auto;height:100%;padding:4px 6px}.files ul{list-style:none;margin:0;padding:0}.files li ul{padding-left:8px;margin-left:7px;border-left:1px solid var(--border-color)}.files .folder>ul{display:none}.files .folder.open>ul{display:block}.files .file,.files .folder{position:relative;color:var(--ink-soft);cursor:pointer;word-break:break-all}.files a{display:flex;align-items:center;gap:4px;padding:1px 8px 1px 2px;font-family:var(--font-sans);font-size:13px;color:var(--ink-soft);border-radius:4px;text-decoration:none;line-height:1.5;position:relative}.files a:hover{background:var(--hover-bg-color);color:var(--color);text-decoration:none}.files:focus{outline:0}.files a.tree-focused{background:var(--hover-bg-color);color:var(--color)}.files .file.active>a{background:rgba(128,128,128,.15);color:var(--color)}.files .file.active>a .tree-icon-file{color:#5b7ba5}.files .file.active>a .tree-count{color:var(--ink-muted)}.tree-icon-file,.tree-icon-folder{display:inline-block;flex-shrink:0}.tree-icon-folder{width:14px;height:12px;color:var(--ink-muted);opacity:.75}.tree-icon-folder svg{display:block;width:100%;height:100%;fill:currentColor;fill-opacity:0;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}.files .folder.open>a .tree-icon-folder{color:#a07d2e;opacity:.9}.files .folder.open>a .tree-icon-folder svg{fill-opacity:.12}.dark-mode .files .folder.open>a .tree-icon-folder{color:#c9a03a}.tree-icon-file{width:16px;font-size:14px;text-align:center;color:#5b7ba5}.dark-mode .files .file.active>a .tree-icon-file,.dark-mode .tree-icon-file{color:#7ba3d0}.tree-toggle{display:inline-flex;align-items:center;justify-content:center;width:10px;height:14px;flex-shrink:0;opacity:.6}.tree-toggle::after{content:"";display:block;width:0;height:0;border-style:solid;border-width:3px 0 3px 4.5px;border-color:transparent transparent transparent var(--ink-muted);transition:transform .12s ease}.files .folder.open>a .tree-toggle::after{transform:rotate(90deg)}.tree-spacer{display:inline-block;width:10px;flex-shrink:0}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-count{font-family:var(--font-sans);font-size:11px;color:var(--ink-muted);flex-shrink:0;margin-left:auto;padding-left:8px;opacity:.7}.files .folder>a{color:var(--color)}.files .file::before,.files .folder::before{display:none}.files .folder>a::after{display:none}.tree-search-path{color:var(--ink-muted);font-size:11px}.tree-search-empty{padding:16px 12px;color:var(--ink-muted);font-size:13px;font-family:var(--font-sans);text-align:center}.leftCol{background:var(--paper-bg-alt,#f3f1ec);border-right:1px solid var(--border-color)}.dark-mode .leftCol{background:var(--sidebar-bg-color)}.status-bar{background:var(--canvas-bg-color);border-bottom:1px solid var(--border-color);padding:10px 14px}.paths .breadcrumb-item,.paths .breadcrumb-item a{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.paths .breadcrumb-item.active,.paths .breadcrumb-item:last-child{color:var(--color)}.paths .breadcrumb-item+.breadcrumb-item::before{content:'/';color:var(--ink-muted)}.last-update{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);padding:8px 10px;border-top:1px solid var(--border-color);letter-spacing:.02em}.ace_editor{height:100%}.ace_scroller{cursor:default}.status-bar{display:flex;align-items:center;gap:12px;background-color:var(--canvas-bg-color);padding:10px 14px;margin:0;border-bottom:1px solid var(--border-color);border-radius:0;flex-shrink:0}.status-bar-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.status-bar-actions .btn{display:inline-flex;align-items:center;gap:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;padding:4px 10px;font-size:13px;min-height:30px}.status-bar-actions .btn:hover{background:var(--hover-bg-color);color:var(--color)}.status-bar-actions .btn.btn-active{border-color:currentColor;font-weight:600}.paths{flex:1 1 auto;min-width:0;padding:0;margin:0;background-color:initial;border:none;border-radius:0;align-items:center;overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.paths::-webkit-scrollbar{display:none}.paths a{color:var(--color)}.paths .breadcrumb-item{padding-left:3px}.paths .breadcrumb-item::before{padding-right:3px}.content{height:100%;overflow:scroll;padding-top:42px;background-color:var(--main-bg-color);text-align:center}.image-content{max-width:100%;max-height:100%;text-align:center;padding:4px}.pdf-viewer{display:flex;flex-direction:column;height:100%;min-height:0;background-color:var(--main-bg-color)}.pdf-toolbar{display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:4px 8px;border-bottom:1px solid var(--border-color,rgba(0,0,0,.12))}.pdf-toolbar-group{display:inline-flex;align-items:center;gap:4px}.pdf-toolbar-right{margin-left:auto}.pdf-toolbar-btn{border:0;background:0 0;color:inherit;padding:4px 8px;border-radius:4px;font-size:13px;line-height:1.2;cursor:pointer}.pdf-toolbar-btn:hover:not(:disabled){background-color:rgba(128,128,128,.18)}.pdf-toolbar-btn:disabled{opacity:.4;cursor:default}.pdf-toolbar-zoom{min-width:52px;font-variant-numeric:tabular-nums}.pdf-toolbar-page{width:3.5em;text-align:right;padding:2px 4px;font-size:13px;color:inherit;background:0 0;border:1px solid var(--border-color,rgba(0,0,0,.2));border-radius:4px}.pdf-toolbar-count{font-size:13px;opacity:.75;font-variant-numeric:tabular-nums}.pdf-pages{flex:1 1 auto;min-height:0;overflow:auto;padding:8px 0}.pdf-viewer-page{margin:0 auto 12px}.pdf-viewer-page canvas{display:block;box-shadow:0 1px 4px rgba(0,0,0,.25)}.pdf-viewer-error{padding:24px;text-align:center;font-weight:700}.html-doc{display:block;height:100%}.html-doc-frame{display:block;width:100%;height:100%;border:0;background-color:#fff}.file-error{font-weight:700;font-size:50px;text-align:center}pdfviewer{display:block;padding:15px}pdfpageviewer{display:block;width:100%;margin-bottom:10px}notebook{display:block;text-align:left;padding:15px}@media (min-width:768px){notebook{padding-left:100px}}.nb-output td,.nb-output th{border:1px solid var(--border-color)!important}.paper-faq{max-width:1180px;margin:0 auto;padding:48px 32px 80px;font-family:var(--font-sans)}.paper-faq-hero{padding-bottom:40px;border-bottom:1px solid var(--border-color);margin-bottom:36px}.paper-faq-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:32px}.paper-faq-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.6rem,5.5vw,4.6rem);line-height:1.03;letter-spacing:-.02em;color:var(--color);margin:0 0 22px;max-width:14em}.paper-faq-title em{font-style:italic;color:var(--color)}.paper-faq-lede{color:var(--ink-soft);font-size:18px;line-height:1.55;max-width:38em;margin:0}.paper-faq-lede a{color:var(--color);border-bottom:1px solid var(--color)}.paper-faq-lede a:hover{color:var(--accent);border-bottom-color:var(--accent)}.paper-faq-body{display:grid;grid-template-columns:220px 1fr;gap:60px;align-items:start}.paper-faq-toc{position:sticky;top:32px;font-size:14px}.paper-faq-toc-head{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.14em;text-transform:uppercase;padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--border-color)}.paper-faq-toc nav{display:flex;flex-direction:column}.paper-faq-toc nav a{color:var(--ink-soft);padding:8px 0 8px 14px;border-left:2px solid transparent;text-decoration:none;margin-left:-2px}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.faq-section{min-width:0}.faq-section>div{width:100%}.faq-section h4.faq-cat{font-family:var(--font-serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.2rem);letter-spacing:-.015em;color:var(--color);margin:0 0 6px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.faq-section h4.faq-cat i{display:none}.faq-section .panel-group{margin-bottom:56px}.faq-section .panel-default .panel-title a{display:block;position:relative;padding:22px 0 22px 42px;font-family:var(--font-serif);font-weight:400;font-size:20px;line-height:1.35;letter-spacing:-.005em;color:var(--color);text-decoration:none;cursor:pointer}.faq-section .panel-default .panel-title a:hover{color:var(--accent)}.faq-section .panel-heading{background:0 0;padding:0!important;border:none}.faq-section .panel-default{background:0 0;border:none;border-bottom:1px solid var(--border-soft);border-radius:0;margin-bottom:0!important;box-shadow:none}.faq-section .panel-default .panel-title{margin-bottom:0}.faq-section .panel-default .panel-title a:after{content:"−";position:absolute;left:0;right:auto;top:22px;transform:none;font-family:var(--font-mono);font-size:18px;line-height:1.35;color:var(--ink-muted);float:none;margin:0;font-weight:400}.faq-section .panel-default .panel-title a.collapsed:after{content:"+"}.faq-section .panel-default .panel-body{padding:0 0 22px 42px!important;color:var(--ink-soft);font-size:15px;line-height:1.65;border-top:none;max-width:42em}.table{color:var(--color)}.dropdown-divider,.table td,.table th,hr{border-color:var(--border-color)}.table.repositories td{word-break:break-word}loc{display:block;position:relative;width:100%;height:5px}loc .lang{float:left;height:100%}.rounded-circle.fa{display:inline-block;font-size:75px;height:140px;width:140px;border:4px solid;line-height:140px;text-align:center}.featurette-divider{margin:4.5rem 0;border-color:var(--border-color)}.featurette-heading{font-family:var(--font-serif);font-weight:400;font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:14px;color:var(--color)}.dark-mode .shadow{box-shadow:none}.dark-mode .overflow-auto::-webkit-scrollbar{width:10px}.dark-mode .overflow-auto::-webkit-scrollbar-track{-webkit-box-shadow:none;background:inherit;border-radius:0}.dark-mode .overflow-auto::-webkit-scrollbar-thumb{border-radius:10px;border:1px solid var(--border-color);background-color:var(--hover-bg-color)}.dark-mode .rgba-gradient{background:linear-gradient(135deg,#2a2d4a,#151728)}.section-number{padding-right:10px;font-weight:700;font-style:italic}.org-subscript-child{font-size:85%}.highlighted-line{position:absolute;background:rgba(100,200,100,.5);z-index:20}code,pre{font-family:"Fira Code","Courier New",Courier,monospace;line-height:1.1;color:var(--color)}.diff-file,.diff-index,.diff-lines{background:rgba(172,172,172,.5)}.diff-add{background:rgba(100,200,100,.5)}.diff-remove{background:rgba(200,100,100,.5)}.dashboard-title{font-size:1.375rem;font-weight:600;letter-spacing:-.01em}.quota-row{display:flex;gap:16px;margin-bottom:16px;padding:0}.quota-item{flex:1;min-width:0}.quota-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.quota-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.7}.quota-value{font-size:.8125rem;font-weight:500;font-variant-numeric:tabular-nums}.quota-progress{height:6px;border-radius:3px;background:var(--hover-bg-color)}.quota-progress .progress-bar{border-radius:3px}.filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:.8125rem;font-weight:500;background:var(--primary-bg);color:var(--primary-color);border-radius:12px;line-height:1.4}.filter-chip-close{display:inline-flex;align-items:center;justify-content:center;background:0 0;border:none;color:inherit;opacity:.7;cursor:pointer;padding:0;min-width:24px;min-height:24px;margin:-6px -6px -6px 0;font-size:1rem;line-height:1;border-radius:999px}.filter-chip-close:hover{opacity:1}.repo-list{list-style:none;padding:0;margin:0}.repo-list-item{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border-color);gap:12px}.repo-list-item:first-child{border-top:1px solid var(--border-color)}.repo-list-item.repo-inactive{opacity:.6}.repo-list-item-content{flex:1;min-width:0}.repo-list-item-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.repo-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color);word-break:break-word}.repo-name:hover{color:var(--accent)}.repo-source{font-size:.875rem;opacity:.8;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.repo-date{opacity:.7}.repo-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.8125rem;opacity:.7}.repo-meta span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.repo-list-item-actions{flex-shrink:0;padding-top:2px;margin-left:14px}.repo-list-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 20px;opacity:.5;font-size:.9375rem;list-style:none;border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color)}.repo-list-empty i{font-size:1.75rem}.type-badge{display:inline-flex;align-items:center;gap:3px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;border-radius:4px;white-space:nowrap}.type-badge{font-family:var(--font-mono);letter-spacing:.06em;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-bg-alt,transparent)}.type-badge.type-pr,.type-badge.type-repo{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.dark-mode .type-badge.type-pr,.dark-mode .type-badge.type-repo{background:rgba(255,255,255,.06);color:var(--ink-muted);border-color:var(--border-color)}.type-badge.type-coauthor{background:rgba(99,102,241,.12);color:#4f46e5;border-color:rgba(99,102,241,.35);margin-left:6px}.dark-mode .type-badge.type-coauthor{background:rgba(129,140,248,.18);color:#a5b4fc;border-color:rgba(165,180,252,.45)}.btn-group .btn:not(.btn-primary){background:var(--hover-bg-color)}.anonymize-page{display:flex;flex-direction:column;min-height:0}.anonymize-landing{flex:1 1 0;min-height:min-content;display:flex;align-items:center;justify-content:center;padding:20px}.anonymize-landing-inner{width:100%;max-width:600px}.anonymize-landing-inner h2{font-weight:700}.anonymize-workspace{display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:var(--canvas-bg-color)}.anonymize-topbar{background:var(--paper-card);border-bottom:1px solid var(--border-color);padding:18px 28px;flex:0 0 auto}.anonymize-topbar-inner{max-width:1400px;margin:0 auto}.anonymize-topbar-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.anonymize-topbar-title{margin:4px 0 0;font-size:clamp(1.8rem,3vw,2.4rem)}.anonymize-split{flex:1 1 auto;display:flex;min-height:0}.anonymize-form-col{flex:0 0 auto;width:100%;min-width:0;background:var(--canvas-bg-color);border-right:1px solid var(--border-color);overflow-y:auto}.anonymize-form-col .paper-settings-main{max-width:720px;padding:28px 32px 40px;margin:0}.anonymize-form-col .paper-settings-section:first-child{padding-top:0}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;background:var(--canvas-bg-color);padding:14px 0 0;border-top:1px solid var(--border-color);margin-top:20px}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{flex:1 1 auto;min-width:0;overflow:auto;background:var(--paper-bg-alt);padding:28px 32px}.anonymize-preview-head{display:flex;align-items:baseline;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color);margin-bottom:20px}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.anonymize-preview-sub{color:var(--ink-soft);font-size:13px}.anonymize-preview-body{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:28px 32px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid-3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}@media (max-width:700px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}.paper-optional{font-family:var(--font-sans);font-weight:400;color:var(--ink-muted);text-transform:none;letter-spacing:0;font-size:11px;margin-left:6px}.paper-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.paper-plan-card{position:relative;display:block;padding:18px 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;margin:0}.paper-plan-card input[type=radio]{position:absolute;opacity:0;pointer-events:none}.paper-plan-card.selected{border-color:var(--color);box-shadow:0 0 0 2px var(--color) inset}.paper-plan-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-plan-price{font-family:var(--font-serif);font-size:2rem;color:var(--color);margin:6px 0 4px}.paper-plan-price .paper-plan-per{font-family:var(--font-sans);font-size:12px;color:var(--ink-soft)}.paper-plan-desc{font-size:13px;color:var(--ink-soft)}.paper-plan-desc ul{padding-left:18px;margin:0}.paper-settings-copy{color:var(--ink-soft);font-size:13px;margin:0 0 14px}.anonymize-section-title{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;margin:18px 0 8px 0;padding-bottom:6px;border-bottom:1px solid var(--border-color);opacity:.7}.anonymize-section-title i{margin-right:4px}.anonymize-submit-bar{padding:12px 0 4px 0}.anonymize-submit-bar .btn{font-size:1rem;padding:10px 20px;font-weight:600}.anonymize-page .form-check{padding-top:4px;padding-bottom:4px}.anonymize-page .form-check-label{font-weight:500}.anonymize-preview-col{min-height:0;min-width:0}.pr-diff pre{overflow-x:auto;max-width:100%}@media (min-width:768px){.anonymize-form-col{height:100%;width:520px;flex:0 0 520px}.anonymize-preview-col{height:100%;flex:1}}@media (max-width:767px){.anonymize-workspace{flex:0 0 auto;min-height:0}.anonymize-topbar{padding:14px 16px}.anonymize-topbar-title{font-size:1.5rem;margin-top:2px}.anonymize-split{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.anonymize-form-col{width:100%!important;flex:0 0 auto!important;height:auto!important;border-right:none;border-bottom:1px solid var(--border-color);overflow:visible}.anonymize-form-col .paper-settings-main{padding:18px 16px 24px;max-width:none}.anonymize-form-col .anonymize-submit-bar{position:sticky;bottom:0;margin:20px -16px 0;padding:12px 16px;background:var(--canvas-bg-color);border-top:1px solid var(--border-color);z-index:10}.anonymize-form-col .anonymize-submit-bar .btn{width:100%;padding:12px 16px;font-size:15px}.anonymize-preview-col{width:100%;flex:0 0 auto;height:auto!important;max-height:none;padding:18px 16px 24px;overflow:visible}.anonymize-preview-body{padding:16px;border-radius:8px}.anonymize-preview-body .pr-diff pre,.anonymize-preview-body pre{overflow-x:auto;max-width:100%}.anonymize-landing-inner{padding:16px}}@media (min-width:1280px){.anonymize-form-col{width:620px;flex:0 0 620px}}@media (max-width:767px){.btn{min-height:38px;padding:6px 14px;font-size:14px}.btn-sm{min-height:34px;padding:5px 10px}.navbar .nav-link{padding:8px 12px}.navbar .nav-link .fa,.navbar .nav-link .fab{font-size:24px;line-height:32px}.container.page{padding-left:15px;padding-right:15px;max-width:100%}h1{font-size:1.5rem}h2{font-size:1.375rem}h3{font-size:1.125rem}.repo-list-item{flex-direction:column}.repo-list-item-actions{align-self:flex-start}.quota-row{flex-direction:column;gap:10px;padding:10px 12px}.dropdown-menu{position:absolute;right:0;left:auto}.form-group{margin-bottom:12px}.form-control{font-size:16px}.status-bar{gap:6px;padding:8px 10px}.status-bar .btn{font-size:12px;padding:4px 10px;min-height:32px}.status-bar .paths{font-size:12px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;-webkit-overflow-scrolling:touch}.status-bar .paths::-webkit-scrollbar{display:none}.status-bar-actions{flex-shrink:0;gap:4px}#home .display-4{font-size:1.75rem}#home h4.subtext-header{font-size:1rem}.progress:not(.quota-progress){min-width:120px!important}.badge{font-size:70%}.col-2.input-group{width:100%!important;max-width:100%;flex:0 0 100%}.color-text-secondary span{display:inline-block;margin-bottom:2px}.anonymize-landing{align-items:flex-start;padding-top:60px}.anonymize-page .container-fluid>.row{height:auto!important;min-height:100%}.anonymize-form-col{width:100%!important;flex:0 0 100%!important;border-right:none;border-top:1px solid var(--border-color)}.anonymize-preview-col{height:auto!important;max-height:none}.anonymize-section-title{font-size:.8125rem;margin:12px 0 8px 0}.anonymize-submit-bar{position:sticky;bottom:0;background:var(--sidebar-bg-color);padding:10px 0;margin:0 -12px;padding-left:12px;padding-right:12px;border-top:1px solid var(--border-color);z-index:10}.anonymize-submit-bar .btn{font-size:1rem;padding:12px 20px}.anonymize-page .form-check{padding-top:6px;padding-bottom:6px;min-height:36px}.anonymize-page .form-check-label{font-size:.9375rem}.anonymize-page .card-body{padding:12px}.pr-title{font-size:1.125rem}.pr-diff pre{font-size:.75rem}.pr-comment .mb-1 h5{font-size:1rem}.nav-tabs .nav-link{padding:8px 12px;font-size:.875rem}}@media (min-width:768px) and (max-width:991px){.container.page{max-width:100%;padding-left:15px;padding-right:15px}.leftCol{flex:0 0 250px;width:250px}}.explorer-page{display:flex;height:100%;width:100%;background:var(--canvas-bg-color);position:relative}.explorer-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--canvas-bg-color)}.explorer-content{flex:1 1 auto;min-height:0;width:100%;overflow:auto}.leftCol-close,.leftCol-head{display:none}.leftCol-body{flex:1 1 auto;min-height:0;overflow:auto}.leftCol-foot{padding:8px 12px;border-top:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-foot .last-update{display:block;border-top:none;padding:0}.leftCol-backdrop{display:none}.paper-inline-warning{display:flex;align-items:flex-start;gap:8px;margin:8px;padding:10px 12px;background:rgba(138,107,30,.08);border:1px solid rgba(138,107,30,.35);border-radius:8px;color:var(--color);font-size:13px;line-height:1.4}.paper-inline-warning i{color:#8a6b1e;margin-top:2px;flex-shrink:0}.dark-mode .paper-inline-warning i{color:#ffd37a}@media (min-width:768px){.leftCol-body{padding:8px 4px}}.sidebar-toggle{display:none;align-items:center;gap:8px;position:fixed;bottom:18px;right:18px;z-index:1100;padding:10px 14px;background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);border-radius:999px;font-family:var(--font-sans);font-size:13px;font-weight:500;box-shadow:0 6px 20px rgba(0,0,0,.15);cursor:pointer;outline:0}.sidebar-toggle:hover{background:var(--primary-hover-bg)}.sidebar-toggle:focus,.sidebar-toggle:focus-visible{outline:0;box-shadow:0 6px 20px rgba(0,0,0,.15)}@media (max-width:991px){.sidebar-toggle{display:inline-flex}.leftCol{position:fixed;top:0;left:0;bottom:0;width:min(86vw,340px);max-width:340px;z-index:1200;border:none;border-right:1px solid var(--border-color);transform:translateX(0);transition:transform .22s ease;box-shadow:4px 0 24px rgba(0,0,0,.18);background:var(--sidebar-bg-color)}.leftCol.collapsed{transform:translateX(-105%);box-shadow:none;pointer-events:none}.leftCol-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.leftCol-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.leftCol-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:0 0;border:1px solid var(--border-color);border-radius:8px;color:var(--ink-muted);cursor:pointer}.leftCol-close:hover{color:var(--color);border-color:var(--color)}.leftCol-foot{display:block}.leftCol-body{padding:4px 0}.leftCol-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.32);z-index:1150;backdrop-filter:blur(2px)}.dark-mode .leftCol-backdrop{background:rgba(0,0,0,.5)}}.admin-nav{display:flex;gap:4px;padding:4px;margin:8px 0 20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;flex-wrap:wrap}.admin-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:7px;color:var(--ink-muted);text-decoration:none;font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;transition:background-color .15s,color .15s;white-space:nowrap}.admin-nav a:hover{background:var(--paper-bg-alt);color:var(--color)}.admin-nav a.active{background:var(--color);color:var(--paper-card)}.admin-nav a i{font-size:12px;width:14px;text-align:center}@media (max-width:767px){.admin-nav{flex-direction:column}.admin-nav a{justify-content:flex-start}}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:16px}.admin-stat-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px}.admin-stat-card .stat-value{font-family:var(--font-serif);font-size:1.375rem;font-weight:400;line-height:1.1;color:var(--color)}.admin-stat-card .stat-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}.admin-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 12px}.admin-toolbar .form-control{max-width:320px}@media (max-width:767px){.admin-toolbar .form-control{max-width:100%;width:100%}}.pagination-compact{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pagination-compact input{width:60px;text-align:center;flex-shrink:0}.pagination-compact .btn{padding:4px 10px;min-height:34px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);flex-shrink:0}.pagination-compact>span{white-space:nowrap}.admin-list-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-color)}.admin-list-item:last-child{border-bottom:none}.admin-list-item .item-main{flex:1;min-width:0}.admin-list-item .item-title{font-size:1rem;font-weight:600;margin-bottom:4px;word-break:break-word}.admin-list-item .item-meta{font-size:.875rem;opacity:.8}.admin-list-item .item-meta span{margin-right:12px;display:inline-block;margin-bottom:2px}.admin-list-item .item-actions{flex-shrink:0}@media (max-width:767px){.admin-list-item{flex-direction:column;gap:8px}.admin-list-item .item-actions{align-self:flex-start}}.status-badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.3px;vertical-align:middle}.status-badge{font-family:var(--font-sans);font-weight:500;letter-spacing:.02em;border:1px solid transparent;text-transform:none;font-size:12px;padding:1px 9px 2px;border-radius:999px}.status-badge.status-ready{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.status-badge.status-error{background:#fbe7e7;color:#b42318;border-color:#f3c7c7}.status-badge.status-download,.status-badge.status-preparing{background:#eef0ff;color:#3b4ad6;border-color:#d4d8fa}.status-badge.status-expired,.status-badge.status-expiring,.status-badge.status-removed,.status-badge.status-removing{background:var(--paper-bg-alt);color:var(--ink-muted);border-color:var(--border-color)}.status-badge.status-active{background:#e8f3ec;color:#2f7a44;border-color:#cfe6d6}.queue-job-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 18px;margin-bottom:10px}.queue-job-card .job-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px}.queue-job-card .job-id{font-family:var(--font-mono);font-size:.9375rem;color:var(--color);word-break:break-all;display:flex;align-items:center;gap:10px}.queue-job-card .job-timestamps{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);display:flex;flex-wrap:wrap;gap:14px}.queue-job-card .job-actions{display:flex;gap:8px;margin-top:10px}.queue-job-card .job-actions .btn{font-size:12px;padding:4px 12px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.admin-section-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.admin-section-header h2{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.admin-section-header h2 i{margin-right:6px;color:var(--ink-muted)}.admin-section-header .section-count{background:var(--paper-bg-alt);color:var(--ink-muted);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;padding:1px 10px;border-radius:999px}.user-detail-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:22px;margin-bottom:24px}.user-detail-card .user-header{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.user-detail-card .user-header img{border-radius:50%}.user-detail-card .user-header h2{margin:0;font-family:var(--font-serif);font-weight:400;font-size:1.5rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;font-size:.9375rem}.user-detail-grid .detail-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.user-detail-grid .detail-value{word-break:break-all;color:var(--color)}@media (max-width:767px){.user-detail-grid{grid-template-columns:1fr}.user-detail-grid .detail-label{margin-top:8px;border-top:1px solid var(--border-color);padding-top:8px}.user-detail-grid .detail-label:first-child{border-top:none;margin-top:0;padding-top:0}}.paper-empty{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:40px 24px}.paper-empty-inner{max-width:560px;text-align:left}.paper-empty-title{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.02;letter-spacing:-.025em;margin:18px 0 20px;color:var(--color)}.paper-empty-title em{color:var(--accent);font-style:italic}.paper-empty-lede{font-size:18px;line-height:1.55;color:var(--ink-soft);text-wrap:pretty}.paper-empty-cta{display:flex;gap:10px;margin-top:28px;flex-wrap:wrap}.paper-page{max-width:1100px;margin:0 auto;padding:32px 32px 80px}@media (max-width:991px){.paper-page,.paper-page.container,.paper-page.container-fluid{padding:20px 18px 60px!important}.paper-page .row{margin-left:0;margin-right:0}.paper-page .row>.w-100,.paper-page .row>[class*=col]{padding-left:0;padding-right:0}.navbar.navbar-expand-lg{padding:10px 18px!important}.navbar .navbar-collapse{margin:10px -18px 0;padding:12px 18px 16px;border-top:1px solid var(--border-color);background:var(--header-bg-color)}.navbar .navbar-nav{align-items:stretch!important;gap:2px}.navbar .navbar-nav .nav-item,.navbar .navbar-nav .nav-link{width:100%}.navbar .nav-link{display:flex!important;align-items:center;justify-content:flex-start;margin:0!important;padding:12px 4px!important;border-bottom:1px solid var(--border-color)!important;border-radius:0;font-size:14px;line-height:1.2;gap:0;min-height:44px;box-sizing:border-box}.navbar .nav-link:not(.btn-signin):not(.user-chip){color:var(--color)!important}.navbar .nav-link .fa,.navbar .nav-link .fab,.navbar .nav-link .fas,.navbar .nav-link i{display:inline-flex!important;align-items:center;justify-content:center;width:28px;flex-shrink:0;font-size:16px;line-height:1;margin:0 10px 0 0!important}.navbar .navbar-nav .nav-item:last-child .nav-link,.navbar .navbar-nav>.nav-link:last-child{border-bottom-color:transparent!important}.navbar .nav-link.active{color:var(--color)!important;border-bottom-color:var(--border-color)!important}.navbar .nav-item>.nav-link:not(.btn-signin):not(.user-chip)::before{content:'';display:inline-block;width:28px;margin-right:10px;flex-shrink:0}.navbar .nav-link.nav-icon::before,.navbar .nav-link:has(>i)::before{display:none!important}.navbar .nav-link.nav-icon{width:100%!important;height:auto!important;justify-content:flex-start!important;padding:12px 4px!important}.navbar .nav-link.nav-icon::after{content:attr(title);font-family:var(--font-sans);font-size:14px;color:var(--color)}.navbar .btn-signin{display:inline-flex!important;width:auto!important;align-self:flex-start;justify-content:center;height:40px;padding:0 18px!important;margin:14px 0 0!important;border-radius:8px;border-bottom:none!important}.navbar .btn-signin i{margin:0 8px 0 0!important;width:auto!important}.navbar .user-chip-wrap{width:100%}.navbar .user-chip{display:flex!important;width:100%;margin:0!important;padding:10px 4px!important;background:0 0!important;border:none!important;border-bottom:1px solid var(--border-color)!important;border-radius:0!important;justify-content:flex-start;gap:0;min-height:44px}.navbar .user-chip::before{display:none!important}.navbar .user-chip img{width:28px!important;height:28px!important;margin-right:10px!important;flex-shrink:0}.navbar .user-chip .user-chip-name{font-size:14px;font-weight:500;color:var(--color)!important}.navbar .user-chip.dropdown-toggle::after{margin-left:auto;color:var(--ink-muted)}.navbar .user-chip-wrap .dropdown-menu{position:static!important;float:none;width:100%;margin:0!important;padding:0!important;background:0 0!important;border:none!important;box-shadow:none!important;transform:none!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item{padding:10px 4px 10px 42px!important;font-size:14px;color:var(--ink-muted)!important;background:0 0!important;border-bottom:1px solid var(--border-color);text-align:left!important}.navbar .user-chip-wrap .dropdown-menu .dropdown-item:last-child{border-bottom:none}.navbar .user-chip-wrap .dropdown-divider{display:none}.navbar-brand{border-right:none!important;padding-right:0!important;margin-right:0!important}.dark-mode .navbar .navbar-collapse{background:var(--header-bg-color);border-top-color:var(--border-color)}.dark-mode .navbar .nav-link{border-bottom-color:var(--border-color)!important}.dark-mode .navbar-toggler .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' d='M4 8h22M4 15h22M4 22h22'/%3E%3C/svg%3E")!important}}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--paper-bg-alt);border:1px solid var(--border-color);color:var(--ink-soft);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}.paper-progress{position:relative;height:auto;background:0 0;margin:18px 0 8px}.paper-progress::before{content:"";display:block;height:8px;background:var(--paper-bg-alt);border-radius:999px}.paper-progress .paper-progress-bar{position:absolute;top:0;left:0;height:8px;background:var(--color);border-radius:999px;transition:width .4s ease;min-width:4px}.paper-progress .paper-progress-label{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.paper-progress .paper-progress-pct{color:var(--color)}.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--color)}.paper-error-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid #c53030;border-radius:10px;color:var(--color)}.dark-mode .paper-error-card{border-left-color:#ff8b7b}.paper-ratelimit-card{margin-top:18px;padding:20px 22px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-left:3px solid #d69e2e;border-radius:10px;color:var(--color)}.dark-mode .paper-ratelimit-card{border-left-color:#f6e05e}.paper-ratelimit-head{display:flex;align-items:flex-start;gap:14px}.paper-ratelimit-head>i{font-size:18px;color:#d69e2e;margin-top:4px;flex-shrink:0}.dark-mode .paper-ratelimit-head>i{color:#f6e05e}.paper-ratelimit-card strong{color:var(--color)}.status-pill-ratelimit{border-color:#d69e2e;color:#d69e2e}.dark-mode .status-pill-ratelimit{border-color:#f6e05e;color:#f6e05e}.status-ratelimit{background:#d69e2e}.dark-mode .status-ratelimit{background:#f6e05e}.paper-error-head{display:flex;align-items:flex-start;gap:14px}.paper-error-head>i{font-size:18px;color:#c53030;margin-top:4px;flex-shrink:0}.dark-mode .paper-error-head>i{color:#ff8b7b}.paper-error-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.paper-error-title{font-family:var(--font-serif);font-size:1.375rem;line-height:1.2;margin-top:2px;color:var(--color)}.paper-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft);font-family:var(--font-mono);word-break:break-word;white-space:pre-wrap}.paper-error-hints{margin:14px 0 0;padding-left:18px;color:var(--ink-soft);font-size:14px;line-height:1.6}.paper-error-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.paper-detail-grid{display:grid;grid-template-columns:160px 1fr;gap:10px 20px;margin-top:18px;font-size:.9375rem}.paper-detail-grid .detail-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);white-space:nowrap;padding-top:2px}.paper-detail-grid .detail-value{word-break:break-all;color:var(--color)}.paper-detail-grid .detail-value a{color:var(--color);border-bottom:1px solid var(--border-color)}.paper-detail-grid .detail-value a:hover{border-bottom-color:var(--color)}@media (max-width:700px){.paper-detail-grid{grid-template-columns:1fr;gap:4px 0}.paper-detail-grid .detail-label{padding-top:8px}}.paper-support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0 28px}.paper-support-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;color:var(--color);text-decoration:none;transition:border-color .15s ease,transform .15s ease}.paper-support-card:hover{border-color:var(--color);text-decoration:none;color:var(--color)}.paper-support-card .paper-support-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);display:flex;align-items:center;gap:8px}.paper-support-card p{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.paper-support-card .paper-support-cta{margin-top:auto;font-size:13px;font-weight:500;color:var(--color);display:inline-flex;align-items:center;gap:6px}.paper-support-card:hover .paper-support-cta i{transform:translateX(2px)}.paper-support-card .paper-support-cta i{transition:transform .15s ease}.pr-page{min-height:100%;background:var(--canvas-bg-color)}.pr-page-inner{padding-top:24px;padding-bottom:60px}.pr-header{margin:6px 0 18px}.pr-title{margin:4px 0 10px;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.15;word-break:break-word}.pr-header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.pr-header-meta .pr-meta-item{display:inline-flex;align-items:center;gap:6px}.pr-header-meta .pr-meta-item i{color:var(--ink-muted)}.pr-body-card{margin:18px 0 24px;padding:20px 22px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-body-card .paper-section-eyebrow{margin-bottom:12px}.paper-tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--border-color);margin:18px 0 0}.paper-tabs .paper-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:0 0;border:0;border-bottom:2px solid transparent;font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--ink-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.paper-tabs .paper-tab:hover{color:var(--color)}.paper-tabs .paper-tab.active{color:var(--color);border-bottom-color:var(--color)}.paper-tabs .paper-tab i{color:inherit;opacity:.85}.paper-tabs .paper-tab:active,.paper-tabs .paper-tab:focus,.paper-tabs .paper-tab:focus-visible{outline:0;box-shadow:none}.paper-tabs .paper-tab:focus-visible{color:var(--color);background:var(--hover-bg-color);border-radius:6px 6px 0 0}.pr-diff{margin:16px 0 28px;display:flex;flex-direction:column;gap:16px}.diff-file-block{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.diff-file-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--paper-bg-alt);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:13px;color:var(--color)}.diff-file-icon{color:var(--ink-muted);flex-shrink:0}.diff-file-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.diff-file-status{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border-color);color:var(--ink-muted);background:var(--paper-card)}.diff-file-status-added{color:#2f6b3e;border-color:rgba(47,107,62,.35);background:rgba(47,107,62,.08)}.diff-file-status-deleted{color:#a13a2e;border-color:rgba(161,58,46,.35);background:rgba(161,58,46,.08)}.diff-file-status-renamed{color:#8a6b1e;border-color:rgba(138,107,30,.35);background:rgba(138,107,30,.08)}.dark-mode .diff-file-status-added{color:#a7e2a7;border-color:rgba(167,226,167,.35);background:rgba(167,226,167,.08)}.dark-mode .diff-file-status-deleted{color:#ff8b7b;border-color:rgba(255,139,123,.35);background:rgba(255,139,123,.08)}.dark-mode .diff-file-status-renamed{color:#ffd37a;border-color:rgba(255,211,122,.35);background:rgba(255,211,122,.08)}.diff-file-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:13px;line-height:1.55;table-layout:fixed}.diff-file-table tr.diff-row{vertical-align:top}.diff-file-table .diff-gutter{width:48px;padding:0 10px;text-align:right;color:var(--ink-muted);background:var(--paper-bg-alt);border-right:1px solid var(--border-color);user-select:none;font-variant-numeric:tabular-nums;vertical-align:top;white-space:nowrap}.diff-file-table .diff-gutter-new{border-right:1px solid var(--border-color)}.diff-file-table .diff-sign{width:18px;padding:0 6px;text-align:center;color:var(--ink-muted);background:var(--paper-bg-alt);user-select:none;vertical-align:top}.diff-file-table .diff-code{padding:1px 12px;white-space:pre-wrap;word-break:break-word;color:var(--color)}.diff-row-hunk td{background:var(--paper-bg-alt)!important;color:var(--ink-muted);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-size:12px;letter-spacing:.02em;padding-top:6px;padding-bottom:6px}.diff-row-hunk .diff-code{color:var(--ink-muted)}.diff-row-add .diff-code{background:rgba(47,107,62,.1);color:#1f4a2a}.diff-row-add .diff-gutter,.diff-row-add .diff-sign{background:rgba(47,107,62,.06);color:#2f6b3e}.diff-row-remove .diff-code{background:rgba(161,58,46,.1);color:#6e1f1a}.diff-row-remove .diff-gutter,.diff-row-remove .diff-sign{background:rgba(161,58,46,.06);color:#a13a2e}.dark-mode .diff-row-add .diff-code{background:rgba(167,226,167,.1);color:#c9f0c9}.dark-mode .diff-row-add .diff-gutter,.dark-mode .diff-row-add .diff-sign{background:rgba(167,226,167,.06);color:#a7e2a7}.dark-mode .diff-row-remove .diff-code{background:rgba(255,139,123,.1);color:#ffc9c0}.dark-mode .diff-row-remove .diff-gutter,.dark-mode .diff-row-remove .diff-sign{background:rgba(255,139,123,.06);color:#ff8b7b}@media (max-width:700px){.diff-file-table{font-size:12px}.diff-file-table .diff-gutter{width:36px;padding:0 6px}.diff-file-table .diff-sign{width:14px;padding:0 4px}.diff-file-table .diff-code{padding:1px 8px}}.pr-comments{list-style:none;margin:16px 0 28px;padding:0;display:flex;flex-direction:column;gap:12px}.pr-comment{padding:16px 18px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px}.pr-comment-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border-color)}.pr-comment-author{font-weight:600;color:var(--color);font-size:14px;display:inline-flex;align-items:center;gap:6px}.pr-comment-author i{color:var(--ink-muted);font-size:12px}.pr-comment-date{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.pr-comment-body{color:var(--color);font-size:14px;line-height:1.6}.pr-comment-body :last-child{margin-bottom:0}@media (max-width:700px){.pr-page-inner{padding-top:14px;padding-bottom:40px}.pr-body-card{padding:14px 14px;border-radius:8px}.pr-comment{padding:12px 14px}.paper-tabs .paper-tab{padding:10px 12px;font-size:13px}.pr-diff pre{font-size:12px;padding:12px}}.toast{background-color:var(--paper-card)!important;color:var(--color)!important;border:1px solid var(--border-color)!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(0,0,0,.08);backdrop-filter:none;min-width:280px;max-width:calc(100vw - 24px)}.toast .toast-header{background:0 0!important;color:var(--color)!important;border-bottom:1px solid var(--border-color)!important;font-family:var(--font-sans);padding:10px 12px}.toast .toast-header strong{font-weight:600;color:var(--color);letter-spacing:.01em}.toast .toast-header .close{color:var(--ink-muted)!important;text-shadow:none;opacity:.9;font-size:1.25rem}.toast .toast-header .close:hover{color:var(--color)!important;opacity:1}.toast .toast-body{color:var(--color)!important;padding:12px;font-size:14px;line-height:1.45}.dark-mode .toast{box-shadow:0 8px 24px rgba(0,0,0,.5)}.paper-crumbs{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);letter-spacing:0}.paper-crumbs .here,.paper-crumbs a{color:var(--color);text-decoration:none}.paper-page-title{font-family:var(--font-sans);font-weight:600;font-size:32px;line-height:1.2;letter-spacing:-.035em;margin:8px 0 6px;color:var(--color)}.paper-page-title em{color:inherit;font-style:normal}.paper-page-lede{color:var(--ink-soft);font-size:16px;max-width:640px;line-height:1.55}.paper-meta-rule{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:22px 0 18px;padding:12px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);letter-spacing:.02em}.paper-meta-rule b{color:var(--color);font-weight:500}.paper-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:10px;padding:20px 22px}.dark-mode .paper-card{background:var(--admin-stat-bg)}.paper-section-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);font-weight:500;margin-bottom:10px;display:block}.paper-section-title{font-family:var(--font-serif);font-weight:400;font-size:22px;letter-spacing:-.01em;margin:0 0 8px}.paper-kbd{display:inline-block;font-family:var(--font-mono);font-size:11px;padding:1px 6px;border:1px solid var(--border-color);border-bottom-width:2px;border-radius:3px;background:var(--paper-card,#fff);color:var(--color)}.paper-pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;padding:2px 8px;border:1px solid var(--border-color);border-radius:999px;color:var(--ink-soft);background:var(--paper-card,#fff);letter-spacing:.04em}.paper-pill.accent{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.paper-pill.good{border-color:#2f6b3e;color:#2f6b3e}.paper-pill.warn{border-color:#8a6b1e;color:#8a6b1e}.paper-pill.bad{border-color:#a13a2e;color:#a13a2e}.paper-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:start;padding:18px 0;border-bottom:1px solid var(--border-color)}.paper-row:first-child{border-top:1px solid var(--border-color)}.paper-row .row-title{font-family:var(--font-serif);font-size:20px;letter-spacing:-.01em;line-height:1.2}.paper-row .row-title a{color:var(--color)}.paper-row .row-meta{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.03em;margin-top:6px;display:flex;flex-wrap:wrap;gap:14px}.paper-row .row-actions{display:flex;gap:6px;flex-shrink:0}.paper-form-step{display:grid;grid-template-columns:48px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--border-color)}.paper-form-step:first-child{border-top:1px solid var(--border-color)}.paper-form-step .step-num{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);padding-top:4px;letter-spacing:.02em}.paper-form-step .step-title{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;line-height:1.2;margin-bottom:4px}.paper-form-step .step-sub{color:var(--ink-soft);font-size:14px;margin-bottom:14px;text-wrap:pretty}.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}.paper-switch-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:16px}.paper-switch-row+.paper-switch-row{border-top:1px dashed var(--border-soft)}.paper-switch-row .sw-label{font-weight:500}.paper-switch-row .sw-sub{display:block;font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-page .custom-select,.paper-page .form-control{border-radius:6px;border-color:var(--border-color);font-size:14px;padding:8px 12px;height:auto;background:var(--input-bg);color:var(--input-color)}.paper-page .custom-select:focus,.paper-page .form-control:focus{color:var(--input-color);background:var(--input-bg);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.custom-select:focus,.form-control:focus,input:focus,select:focus,textarea:focus{color:var(--input-color)!important;background-color:var(--input-bg)!important}.form-control::selection,input::selection,textarea::selection{background:var(--accent-soft);color:var(--input-color)}.dark-mode .form-control::selection,.dark-mode input::selection,.dark-mode textarea::selection{background:rgba(167,178,255,.3);color:var(--input-color)}.btn.btn-ink{background:var(--color);color:var(--canvas-bg-color);border:1px solid var(--color);font-weight:500;border-radius:6px;padding:8px 14px}.btn.btn-ink:hover{background:var(--primary-hover-bg);color:var(--canvas-bg-color);border-color:var(--primary-hover-bg)}.btn.btn-accent{background:var(--accent);color:#fff;border:1px solid var(--accent);font-weight:500;border-radius:6px}.btn.btn-accent:hover{background:#2e3bb8;border-color:#2e3bb8;color:#fff}.paper-page .dashboard-filter-row{display:flex;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);margin:18px 0 0;flex-wrap:wrap}.paper-page .dashboard-filter-row .form-control{height:38px;background:var(--paper-card)}.paper-page .dashboard-filter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.paper-page .dashboard-filter-row .btn-group .btn,.paper-page .dashboard-filter-row .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);height:38px;padding:0 14px;font-size:14px;font-weight:500;border-radius:var(--radius-control,6px);display:inline-flex;align-items:center;gap:6px;line-height:1}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label{color:var(--ink-muted);font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-label::after{content:"·";margin-left:6px;color:var(--ink-faint)}.paper-page .dashboard-filter-row .dropdown-toggle .filter-btn-value{font-weight:500}.paper-page .dashboard-filter-row .dropdown-toggle .fas{font-size:11px;color:var(--ink-muted)}.paper-page .dashboard-filter-row .btn-group .btn:hover,.paper-page .dashboard-filter-row .dropdown-toggle:hover{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.paper-page .dashboard-filter-row .btn-group{gap:0}.paper-page .dashboard-filter-row .btn-group .btn{border-radius:0;border-right-width:0}.paper-page .dashboard-filter-row .btn-group .btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}.paper-page .dashboard-filter-row .btn-group .btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px;border-right-width:1px}.paper-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--color);color:var(--canvas-bg-color);border-color:var(--color)}.paper-page .dashboard-filter-row .search-wrap{flex:1 1 280px;min-width:220px}.paper-page .quota-row{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:24px 0 0;padding:0;background:0 0;border:none;border-radius:0}.paper-page .quota-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);opacity:1}.paper-page .quota-value{font-family:var(--font-mono);font-size:13px;font-variant-numeric:tabular-nums;color:var(--color)}.paper-page .quota-value .quota-unlimited-tag{font-family:var(--font-sans);font-size:12px;color:var(--ink-muted);margin-left:4px}.paper-page .quota-track{height:6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;width:100%;min-width:0}.paper-page .quota-track .quota-fill{height:100%;min-width:2px;border-radius:999px;background:var(--color);transition:width .3s ease}.paper-page .quota-track.quota-warn .quota-fill{background:var(--status-progress)}.paper-page .quota-track.quota-danger .quota-fill{background:var(--status-error)}.paper-page .quota-track.quota-unlimited{background:repeating-linear-gradient(-45deg,var(--paper-bg-alt) 0 4px,var(--border-soft,var(--border-color)) 4px 6px)}.paper-page .repo-list{margin-top:8px}.paper-page .repo-list-item{padding:20px 0;gap:16px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-page .repo-list-item:first-child{border-top:none}.paper-page .repo-list-item-header{gap:10px;margin-bottom:6px}.paper-page .repo-name{font-family:var(--font-mono);font-size:15px;color:var(--color)}.paper-page .repo-source{font-size:13px;color:var(--ink-soft);opacity:1;gap:10px}.paper-page .repo-source a{color:var(--ink-soft);border-bottom:1px dotted var(--border-color)}.paper-page .repo-source a:hover{color:var(--color)}.paper-page .repo-meta{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted);opacity:1;gap:16px;margin-top:10px}.paper-page .type-badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;letter-spacing:.1em}.paper-page .repo-list-item-actions .dropdown-toggle{background:var(--paper-card);border:1px solid var(--border-color);color:var(--color);border-radius:6px;font-size:13px;padding:6px 12px;height:auto}.paper-settings{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.paper-settings .paper-page-title{max-width:14em}.paper-settings-body{display:grid;grid-template-columns:220px 1fr;gap:60px;margin-top:32px;border-top:1px solid var(--border-color);padding-top:28px}.paper-settings-toc{position:sticky;top:32px;align-self:start}.paper-settings-toc-head{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:12px}.paper-settings-toc nav{display:flex;flex-direction:column;gap:2px}.paper-settings-toc nav a{padding:8px 0 8px 14px;border-left:2px solid transparent;color:var(--ink-soft);font-size:14px;text-decoration:none}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{color:var(--color);border-left-color:var(--color)}.paper-settings-main{min-width:0;max-width:720px}.paper-settings-section{padding:28px 0;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section:first-child{padding-top:0}.paper-settings-section:last-of-type{border-bottom:none}.paper-settings-section .form-group{margin-bottom:18px}.paper-settings-section .form-check{padding:10px 0 10px 28px;border-bottom:1px solid var(--border-soft,var(--border-color))}.paper-settings-section .form-check:last-child{border-bottom:none}.paper-settings-section .form-check-label{font-family:var(--font-sans);font-size:14px;font-weight:500;color:var(--color);cursor:pointer}.paper-settings-section .form-check-input{cursor:pointer;width:16px;height:16px;margin-top:3px;margin-left:-28px;accent-color:var(--color)}.paper-settings-section .form-text{color:var(--ink-soft);font-size:13px;margin-top:4px;max-width:48em}.paper-settings-section .paper-section-copy{margin:-4px 0 14px}.paper-settings-footer{padding-top:24px;display:flex;flex-direction:column;gap:14px}.paper-settings-footer .btn-ink{align-self:flex-start}.paper-settings-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.paper-settings-hint{font-size:13px;color:var(--ink-muted)}.paper-inline-alert{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius-control,6px);border:1px solid var(--border-color);background:var(--paper-bg-alt);font-size:13px;color:var(--color)}.paper-inline-alert i{margin-top:2px;color:var(--ink-muted)}.paper-inline-alert-error{border-color:var(--status-error);background:var(--status-error-soft)}.paper-inline-alert-error i{color:var(--status-error)}.paper-account-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);background:var(--paper-card);margin-bottom:20px}.paper-account-card img{flex-shrink:0}.paper-account-identity{flex:1 1 auto;min-width:0}.paper-account-name{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--color)}.paper-account-meta{font-size:13px;color:var(--ink-muted);margin-top:2px}.paper-danger-zone{padding:16px;border:1px solid var(--status-error);border-radius:var(--radius-surface,10px);background:var(--status-error-soft)}.paper-danger-head{font-weight:600;font-size:14px;color:var(--status-error);margin-bottom:6px}.paper-danger-copy{font-size:13px;color:var(--ink-soft);max-width:52em;margin-bottom:12px}.paper-danger-zone .paper-inline-alert{margin-bottom:12px}.btn.btn-outline-danger{background:0 0;color:var(--status-error);border:1px solid var(--status-error);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-danger:hover{background:var(--status-error);color:#fff;border-color:var(--status-error)}.navbar .user-menu{min-width:260px}.navbar .user-menu .dropdown-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px!important}.navbar .user-menu .dropdown-item i{width:16px;margin-top:3px;font-size:13px;color:var(--ink-muted);text-align:center}.navbar .user-menu .dropdown-item span{display:flex;flex-direction:column;line-height:1.3}.navbar .user-menu .dropdown-item small{font-size:12px;color:var(--ink-muted)}.navbar .user-menu .dropdown-header{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px}.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:24px}.paper-settings-toc{position:static}.paper-settings-toc nav{flex-direction:row;flex-wrap:wrap;gap:8px}.paper-settings-toc nav a{border-left:none;border-bottom:2px solid transparent;padding:4px 0}.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--color);border-left:none}}.paper-table{display:block;margin-top:20px;background:0 0;border:none;border-top:1px solid var(--border-color);border-radius:0;overflow:visible}.paper-table .paper-table-head,.paper-table .paper-table-row{display:grid;grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 140px 90px 140px 52px;align-items:center;gap:18px;padding:12px 4px}.paper-table.paper-table-conferences .paper-table-head,.paper-table.paper-table-conferences .paper-table-row{grid-template-columns:minmax(280px,2.4fr) 140px 90px 220px 52px}.paper-table.paper-table-repos .paper-table-head,.paper-table.paper-table-repos .paper-table-row{grid-template-columns:minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px}.paper-table.paper-table-repos.has-bulk .paper-table-head,.paper-table.paper-table-repos.has-bulk .paper-table-row{grid-template-columns:28px minmax(280px,2.4fr) minmax(140px,1fr) 90px 140px 52px;gap:12px}.paper-table .admin-users-row{grid-template-columns:28px minmax(280px,2.4fr) 90px 120px 100px 52px!important;gap:12px!important}.paper-table.paper-table-dashboard .paper-table-head,.paper-table.paper-table-dashboard .paper-table-row{grid-template-columns:minmax(320px,3fr) 190px 90px 170px 52px;gap:20px;padding:8px 4px}.paper-table.paper-table-dashboard .cell-anon .anon-text{gap:2px}.paper-table.paper-table-dashboard .cell-anon .repo-name{padding:0}.paper-table .paper-table-head{background:0 0;border-bottom:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);padding-top:8px;padding-bottom:8px}.paper-table .paper-table-head .sortable{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;padding:2px 0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border-radius:4px}.paper-table .paper-table-head .sortable:hover{color:var(--color)}.paper-table .paper-table-head .sortable.active{color:var(--color)}.paper-table .paper-table-head .sortable i{font-size:10px}.paper-table .paper-table-head .num,.paper-table .paper-table-row .num{text-align:right}.paper-table .paper-table-head .num .sortable{flex-direction:row-reverse}.paper-table .paper-table-row{border-top:1px solid var(--border-soft,var(--border-color));font-size:14px;transition:background-color .12s ease}.paper-table .paper-table-row:hover{background:var(--hover-bg-color)}.paper-table .paper-table-row.row-clickable{cursor:pointer}.paper-table .paper-table-row.repo-inactive>:not(.cell-actions){opacity:.55}.paper-table .paper-table-row.repo-error{background:var(--status-error-soft);border-left:2px solid var(--status-error);padding-left:6px}.paper-table .paper-table-row.repo-error:hover{background:var(--status-error-soft-hover)}.cell-status .status-sub.status-sub-error,.paper-table .cell-status .status-sub-error{color:var(--status-error)}.paper-table .cell-status .status-sub-warn{color:var(--status-progress)}.paper-table .cell-anon{display:flex;align-items:center;gap:12px;min-width:0}.paper-table .cell-anon .type-badge{flex-shrink:0;min-width:52px;justify-content:center}.paper-table .cell-anon .anon-text{min-width:0;display:flex;flex-direction:column;gap:3px}.paper-table .cell-anon .anon-title{display:flex;align-items:center;gap:8px;min-width:0}.paper-table .cell-anon .anon-title .type-badge{margin-left:0}.paper-table .cell-anon .repo-name{font-family:var(--font-mono);font-size:14px;color:var(--color);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%;padding:2px 0}.paper-table .cell-anon .repo-name-static{color:var(--ink-muted);font-style:italic}.paper-table .cell-anon .anon-sub{font-family:var(--font-sans);font-size:13px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:10px;min-width:0}.paper-table .cell-anon .anon-sub .anon-source{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-anon .anon-sub .conf-tag{flex:0 1 auto;min-width:72px;max-width:50%}.paper-table .cell-anon .anon-sub a{color:var(--ink-muted);border-bottom:1px dotted var(--border-color);padding:4px 0;margin:-4px 0}.paper-table .cell-anon .anon-sub a:hover{color:var(--color)}.paper-table .cell-anon .anon-sub .commit-hash{font-family:var(--font-mono);font-size:12px}.paper-table .cell-conf{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-conf span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-status{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:14px;color:var(--color);min-width:0}.paper-table .cell-status .status-line{display:inline-flex;align-items:center;gap:8px}.paper-table .cell-status .status-sub{flex-basis:100%;font-family:var(--font-sans);font-size:13px;line-height:1.3;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.paper-table .cell-expires{font-family:var(--font-sans);font-size:13px;color:var(--ink-soft)}.paper-table .cell-expires .expires-never{color:var(--ink-muted)}.paper-table .cell-expires .expires-past{color:var(--ink-muted)}.paper-table .empty-dash{color:var(--ink-faint)}.paper-table .cell-actions{display:flex;justify-content:flex-end}.status-dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0;background:var(--status-inactive)}.status-dot.status-ready{background:var(--status-ready)}.status-dot.status-error{background:var(--status-error)}.status-dot.status-preparing,.status-dot.status-progress{background:var(--status-progress)}.status-dot.status-expired,.status-dot.status-removed{background:var(--status-inactive)}.dashboard-page{padding-bottom:96px}.dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;font-size:13px;color:var(--ink-muted)}.dashboard-meta .dashboard-count{font-variant-numeric:tabular-nums}.btn-link-inline{background:0 0;border:none;padding:2px 4px;margin:-2px 0;font:inherit;color:var(--link-color);cursor:pointer;border-radius:4px}.btn-link-inline:hover{color:var(--link-hover-color);text-decoration:underline}.btn.btn-outline-ink{background:0 0;color:var(--color);border:1px solid var(--border-color);font-weight:500;border-radius:var(--radius-control,6px);padding:8px 14px}.btn.btn-outline-ink:hover{background:var(--hover-bg-color);color:var(--color);border-color:var(--ink-faint)}.paper-page .dropdown-menu .dropdown-item-danger,.paper-page .dropdown-menu .dropdown-item-danger i{color:var(--status-error)}.paper-page .dropdown-menu .dropdown-item-danger:focus,.paper-page .dropdown-menu .dropdown-item-danger:hover{background:var(--status-error-soft-hover);color:var(--status-error)}.paper-page .dropdown-menu button.dropdown-item{width:100%;text-align:left;background:0 0;border:none}.paper-page .dropdown-menu .dropdown-divider{border-top-color:var(--border-soft,var(--border-color));margin:4px 0}.paper-table .paper-table-skeleton{pointer-events:none}.skeleton{display:block;background:var(--paper-bg-alt);border-radius:4px;position:relative;overflow:hidden}.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,var(--hover-bg-color),transparent);animation:skeleton-shimmer 1.4s infinite}.skeleton-line{height:12px}.skeleton-line+.skeleton-line{margin-top:8px}.skeleton-line-sm{height:10px}.skeleton-badge{width:52px;height:22px;border-radius:999px;flex-shrink:0}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.skeleton::after{animation:none}}.paper-table .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 20px;color:var(--ink-muted);text-align:center;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table .paper-table-empty>i{font-size:1.5rem;color:var(--ink-faint)}.paper-table .paper-table-empty-actions{display:flex;gap:8px;margin-top:8px}.bulk-bar{display:flex;align-items:center;gap:8px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px;margin:8px 0}.paper-page.admin-page .paper-page-title{font-size:1.5rem;margin:4px 0}.paper-page.admin-page .paper-page-lede{display:none}.paper-page.admin-page .paper-crumbs{margin-bottom:4px}.paper-page.admin-page .admin-nav{margin:6px 0 12px}.admin-filter-toolbar{display:flex;flex-direction:column;gap:6px;margin:8px 0 12px;position:sticky;top:0;z-index:4;background:var(--canvas-bg-color);padding:6px 0;border-bottom:1px solid var(--border-soft,var(--border-color));box-shadow:0 1px 0 var(--canvas-bg-color)}@media (max-width:900px){.admin-filter-toolbar{position:static;box-shadow:none}}.admin-filter-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-filter-row .search-wrap{flex:1;min-width:220px}.admin-filter-row .search-wrap .form-control{height:34px}.admin-filter-inline{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.admin-filter-inline>label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0;white-space:nowrap}.admin-filter-inline .form-control-sm{height:28px;padding:2px 8px;font-size:12px}.admin-filter-inline input[type=search].form-control-sm,.admin-filter-inline input[type=text].form-control-sm{width:130px}.admin-filter-inline input[type=date].form-control-sm{width:130px}.admin-filter-inline select.form-control-sm{width:auto;min-width:88px}.admin-filter-inline .arrow{color:var(--ink-muted);font-size:11px}.admin-filter-spacer{flex:1}.admin-active-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--ink-muted)}.admin-active-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--hover-bg-color);font-size:12px;color:var(--color)}.admin-active-chip .key{color:var(--ink-muted);font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.admin-active-chip button{background:0 0;border:none;cursor:pointer;padding:0 4px;color:var(--ink-muted);font-size:12px;border-radius:50%}.admin-active-chip button:hover{color:#b42318}.admin-search-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);pointer-events:none;border:1px solid var(--border-color);border-radius:4px;padding:1px 5px;background:var(--paper-card)}.admin-filter-row .search-wrap{position:relative}.admin-filter-row .search-wrap .form-control{padding-right:40px}.paper-table-row.row-selected{background:rgba(47,122,68,.06)}.queue-state-pills{display:inline-flex;gap:6px;margin-left:8px;flex-wrap:wrap}.queue-state-pills .pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted)}.queue-state-pills .pill-active{color:#c48a2e;border-color:rgba(196,138,46,.4)}.queue-state-pills .pill-failed{color:#b42318;border-color:rgba(180,35,24,.4)}.queue-state-pills .pill-completed{color:#2f7a44;border-color:rgba(47,122,68,.3)}.queue-state-pills .pill-waiting{color:var(--ink-soft)}.queue-state-pills .pill-delayed{color:var(--ink-muted)}.admin-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 12px;font-size:13px}.admin-summary .summary-total{font-family:var(--font-serif);font-size:1rem;color:var(--color);margin-right:8px}.admin-summary .summary-meta{color:var(--ink-muted);font-size:12px;margin-right:8px}.admin-summary .summary-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);cursor:pointer;font-size:12px;user-select:none;transition:background-color .1s,border-color .1s}.admin-summary .summary-pill:hover{background:var(--hover-bg-color)}.admin-summary .summary-pill .count{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color)}.admin-summary .summary-pill.active{background:var(--primary-bg);color:var(--primary-color);border-color:var(--primary-bg)}.admin-summary .summary-pill.active .count{color:inherit}.admin-summary .summary-pill.error .count{color:#b42318}.admin-summary .summary-pill.warn .count{color:#c48a2e}.admin-summary .summary-pill.ok .count{color:#2f7a44}.dark-mode .admin-summary .summary-pill.error .count{color:#f08a82}.dark-mode .admin-summary .summary-pill.warn .count{color:#e8b970}.dark-mode .admin-summary .summary-pill.ok .count{color:#7dc894}.dark-mode .queue-state-pills .pill-active{color:#e8b970;border-color:rgba(232,185,112,.4)}.dark-mode .queue-state-pills .pill-failed{color:#f08a82;border-color:rgba(240,138,130,.4)}.dark-mode .queue-state-pills .pill-completed{color:#7dc894;border-color:rgba(125,200,148,.3)}.job-progress{flex:1;height:6px;background:var(--border-soft,var(--border-color));border-radius:999px;overflow:hidden;margin-left:12px;max-width:200px}.job-progress-bar{height:100%;background:#2f7a44;transition:width .3s}.paper-table-empty{padding:48px 4px;text-align:center;color:var(--ink-muted);display:flex;flex-direction:column;align-items:center;gap:8px;border-top:1px solid var(--border-soft,var(--border-color))}.paper-table-empty>i{font-size:1.5rem}.q-header{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:4px}.q-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.q-range-btns{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.q-range-btns .btn{border:none;border-radius:0;padding:5px 14px;font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);background:var(--paper-card)}.q-range-btns .btn+.btn{border-left:1px solid var(--border-color)}.q-range-btns .btn.active{background:var(--color);color:var(--paper-card)}.q-cards{display:flex;gap:10px;margin:16px 0;flex-wrap:wrap}.q-card{flex:1;min-width:140px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:14px 16px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.q-card:hover{border-color:var(--ink-muted)}.q-card.selected{border-color:var(--color);box-shadow:0 0 0 1px var(--color)}.q-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.q-dot{width:8px;height:8px;border-radius:50%;background:#2f7a44;flex-shrink:0}.q-dot-red{background:#b42318}.dark-mode .q-dot{background:#7dc894}.dark-mode .q-dot-red{background:#f08a82}.q-card-name{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--ink-muted);letter-spacing:.04em}.q-card-count{font-family:var(--font-serif);font-size:2rem;font-weight:400;line-height:1.1;color:var(--color);margin-bottom:6px}.q-card-sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.04em}.q-card-bar{height:4px;background:var(--border-color);border-radius:2px;overflow:hidden;margin-top:6px}.q-card-bar-fill{height:100%;background:#3b4ad6;border-radius:2px;transition:width .3s}.dark-mode .q-card-bar-fill{background:#a7b2ff}.q-detail{display:grid;grid-template-columns:1fr 320px;gap:16px;margin-bottom:20px}.q-throughput{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-chart-wrap{position:relative}.q-throughput canvas{width:100%;display:block}.q-chart-tooltip{position:absolute;pointer-events:none;background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;font-family:var(--font-mono);font-size:11px;line-height:1.6;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.q-chart-tooltip .q-tip-time{color:var(--ink-muted);margin-bottom:2px}.q-chart-tooltip .q-tip-completed{color:#3b4ad6}.q-chart-tooltip .q-tip-failed{color:#b42318}.dark-mode .q-chart-tooltip .q-tip-completed{color:#a7b2ff}.dark-mode .q-chart-tooltip .q-tip-failed{color:#f08a82}.q-chart-crosshair{position:absolute;top:0;width:1px;height:100%;background:var(--ink-muted);opacity:.3;pointer-events:none;z-index:9}.q-stats-panel{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px;display:flex;flex-direction:column}.q-section-label{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--ink-muted);text-transform:lowercase;letter-spacing:.04em;margin-bottom:14px}.q-section-right{float:right;text-transform:uppercase;font-size:10px;letter-spacing:.08em}.q-legend-completed{color:#3b4ad6}.q-legend-failed{color:#b42318;margin-left:8px}.q-legend-exec{color:#b8860b;margin-left:8px;letter-spacing:2px}.dark-mode .q-legend-completed{color:#a7b2ff}.dark-mode .q-legend-failed{color:#f08a82}.dark-mode .q-legend-exec{color:#f5c842}.q-chart-tooltip .q-tip-exec{color:#b8860b}.dark-mode .q-chart-tooltip .q-tip-exec{color:#f5c842}.q-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;flex:1}.q-stat-label{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.q-stat-value{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;color:var(--color);line-height:1.2}.q-stats-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-color)}.q-stats-actions .btn{font-family:var(--font-mono);font-size:11px;padding:6px 14px;border-radius:8px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}.q-jobs{background:var(--paper-card);border:1px solid var(--border-color);border-radius:10px;padding:16px 20px}.q-jobs-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:12px}.q-state-filters{display:inline-flex;gap:6px;flex-wrap:wrap}.q-state-toggle{cursor:pointer;display:inline-flex;align-items:center}.q-state-toggle input{display:none}.q-state-chip{font-family:var(--font-mono);font-size:11px;padding:3px 10px;border-radius:10px;border:1px solid var(--border-color);background:var(--paper-card);color:var(--ink-muted);transition:opacity .15s,background .15s;text-transform:capitalize}.q-state-toggle input:checked+.q-state-chip{opacity:1}.q-state-toggle input:not(:checked)+.q-state-chip{opacity:.4;text-decoration:line-through}.q-state-badge,.q-state-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.q-state-badge{display:inline-block;padding:2px 8px;border-radius:8px}.q-state-active{background:#dbeafe;color:#1d4ed8}.q-state-waiting{background:#fef3c7;color:#92400e}.q-state-delayed{background:#e0e7ff;color:#4338ca}.q-state-failed{background:#fee2e2;color:#b91c1c}.q-state-completed{background:#dcfce7;color:#166534}.dark-mode .q-state-active{background:rgba(59,130,246,.2);color:#93bbfd}.dark-mode .q-state-waiting{background:rgba(251,191,36,.15);color:#fbbf24}.dark-mode .q-state-delayed{background:rgba(99,102,241,.2);color:#a5b4fc}.dark-mode .q-state-failed{background:rgba(239,68,68,.2);color:#fca5a5}.dark-mode .q-state-completed{background:rgba(34,197,94,.15);color:#86efac}.q-cell-state{width:120px}.q-delay-hint{display:block;font-size:10px;color:var(--ink-muted);margin-top:2px;font-family:var(--font-mono)}.q-search-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.q-search-row .form-control{max-width:320px;height:34px}.q-auto-refresh{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.q-table{width:100%;border-collapse:collapse}.q-table thead th{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;border-bottom:1px solid var(--border-color);text-align:left;white-space:nowrap}.q-table tbody tr{border-bottom:1px solid var(--border-color);transition:background .1s}.q-table tbody tr:hover{background:var(--paper-bg-alt)}.q-table tbody tr:last-child{border-bottom:none}.q-table tbody td{padding:10px 10px;font-size:.875rem;vertical-align:middle}.q-cell-id{font-family:var(--font-mono);font-size:12px;white-space:nowrap}.q-cell-id{display:flex;align-items:center;gap:8px}.q-chevron{font-size:10px;color:var(--ink-muted);transition:transform .15s;flex-shrink:0}.q-chevron-open{transform:rotate(90deg)}.q-cell-id a{color:var(--color)}.q-cell-payload{font-family:var(--font-mono);font-size:12px;color:var(--color)}.q-payload-detail{color:var(--ink-muted)}.q-cell-num{font-family:var(--font-mono);font-size:12px;text-align:center;white-space:nowrap}.q-cell-progress{min-width:120px}.q-progress-wrap{display:flex;align-items:center;gap:8px}.q-progress-bar{flex:1;height:6px;border-radius:3px;overflow:hidden;background-image:linear-gradient(to right,#3b4ad6 var(--pct,0),var(--border-color) var(--pct,0))}.dark-mode .q-progress-bar{background-image:linear-gradient(to right,#a7b2ff var(--pct,0),var(--border-color) var(--pct,0))}.q-progress-label{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);white-space:nowrap;min-width:32px;text-align:right}.q-cell-actions{text-align:right;white-space:nowrap}.q-cell-actions .btn{padding:3px 8px;font-size:11px;background:0 0;border:1px solid var(--border-color);color:var(--ink-muted)}.q-cell-actions .btn:hover{color:var(--color)}.q-row-failed{background:rgba(180,35,24,.04)}.dark-mode .q-row-failed{background:rgba(240,138,130,.06)}.q-error-detail{padding:4px 10px 12px;font-size:12px}.q-error-reason{color:#b42318;font-size:.8125rem;margin-bottom:4px}.dark-mode .q-error-reason{color:#f08a82}.q-toast-error{background:#fbe7e7;color:#b42318;border:1px solid #f3c7c7;border-radius:8px;padding:10px 16px;margin-bottom:12px;font-family:var(--font-mono);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px}.dark-mode .q-toast-error{background:rgba(240,138,130,.1);color:#f08a82;border-color:rgba(240,138,130,.25)}.q-error-stack{font-size:.75rem;max-height:120px;overflow:auto;margin:4px 0 0;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:6px;padding:8px 10px}.q-row-expanded>td{border-bottom-color:transparent}.q-detail-row>td{padding:0 10px 14px!important;border-bottom:1px solid var(--border-color)}.q-job-detail{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:8px;padding:14px 16px}.q-job-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 20px;margin-bottom:10px}.q-job-detail-item{display:flex;flex-direction:column;gap:2px}.q-job-detail-label{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.q-job-detail-value{font-family:var(--font-mono);font-size:12px;color:var(--color);word-break:break-all}.q-job-detail-value a{color:var(--color)}.q-job-detail-error{margin:8px 0}.q-job-detail-actions{display:flex;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color)}.q-job-detail-actions .btn{font-family:var(--font-mono);font-size:11px;padding:5px 12px;border-radius:6px;background:var(--paper-card);border:1px solid var(--border-color);color:var(--color)}@media (max-width:900px){.q-detail{grid-template-columns:1fr}.q-cards{flex-direction:column}.q-card{min-width:100%}.q-jobs-header{flex-direction:column;align-items:flex-start}.q-tabs{flex-wrap:wrap}.q-search-row{flex-wrap:wrap}.q-search-row .form-control{max-width:100%;flex:1}.q-table{font-size:12px}.q-header{flex-direction:column}.q-job-detail-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.paper-table .paper-table-head{display:none}.paper-table .admin-users-row,.paper-table .paper-table-row,.paper-table.paper-table-conferences .paper-table-row,.paper-table.paper-table-repos .paper-table-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:14px 0;grid-template-columns:none!important}.paper-table .cell-anon{flex:1 1 calc(100% - 52px);min-width:0;order:1}.paper-table .cell-actions{flex:0 0 auto;order:2;align-self:center}.paper-table .cell-conf,.paper-table .cell-expires,.paper-table .cell-status,.paper-table .cell-views{order:3;font-size:13px;color:var(--ink-muted);display:inline-flex;align-items:center;gap:6px;text-align:left}.paper-table .cell-status{flex-wrap:nowrap;gap:6px;min-width:0}.paper-table .cell-status .status-sub{flex-basis:auto;font-size:13px;line-height:inherit}.paper-table .cell-status .status-sub::before{content:"·";margin-right:6px;color:var(--ink-faint)}.paper-table .cell-conf{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-table .cell-views.num{text-align:left}.paper-table .paper-table-skeleton .cell-expires,.paper-table .paper-table-skeleton .cell-status,.paper-table .paper-table-skeleton .cell-views{flex:1 1 30%}.paper-table .cell-views::before{content:'\f06e';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table .cell-expires::before{content:'\f017';font-family:'Font Awesome 5 Free';font-weight:400;font-size:10px;color:var(--ink-muted)}.paper-table .cell-conf::before{content:'\f51c';font-family:'Font Awesome 5 Free';font-weight:900;font-size:10px;color:var(--ink-muted)}.paper-table-dashboard .cell-conf::before{content:none}.paper-table .cell-conf:has(.empty-dash),.paper-table .cell-expires:has(.empty-dash){display:none}.paper-table .cell-expires::before,.paper-table .cell-views::before{color:var(--ink-faint)}}.paper-page .dropdown-menu{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface,10px);box-shadow:0 12px 28px rgba(26,24,21,.08);padding:6px;min-width:220px;font-family:var(--font-sans);font-size:14px;color:var(--color);margin-top:6px}.paper-page .dropdown-menu .dropdown-header{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);padding:8px 10px 6px;font-weight:500}.paper-page .dropdown-menu .dropdown-item{border-radius:6px;padding:8px 10px;color:var(--color);font-size:14px;display:flex;align-items:center;gap:8px}.paper-page .dropdown-menu .dropdown-item:focus,.paper-page .dropdown-menu .dropdown-item:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .dropdown-menu .dropdown-item i{width:16px;font-size:13px;color:var(--ink-muted)}.paper-page .dropdown-menu .form-check.dropdown-item{padding:8px 10px 8px 36px!important;position:relative}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-input{position:absolute;left:12px;top:50%;transform:translateY(-50%);margin:0;width:16px;height:16px;accent-color:var(--color);cursor:pointer}.paper-page .dropdown-menu .form-check.dropdown-item .form-check-label{font-family:var(--font-sans);font-size:14px;color:var(--color);font-weight:400;margin:0;cursor:pointer}.btn.btn-icon-dots{width:32px;height:32px;padding:0;border:1px solid transparent;background:0 0;color:var(--ink-muted);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;line-height:1}.btn.btn-icon-dots:focus,.btn.btn-icon-dots:hover,.btn.btn-icon-dots[aria-expanded=true]{background:var(--hover-bg-color);border-color:var(--border-color);color:var(--color)}.btn.btn-icon-dots::after{display:none}.btn.btn-icon-dots i{font-size:15px}.paper-page .repo-list-empty{border-top:none;padding:56px 20px;color:var(--ink-muted)}.paper-page .filter-chip{background:var(--paper-bg-alt);color:var(--color);border:1px solid var(--border-color);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}@media (max-width:768px){.paper-page .paper-page-title{font-size:clamp(1.4rem,6vw,1.9rem);margin:4px 0 2px}.paper-page .paper-page-lede{font-size:13px;line-height:1.4;margin-bottom:0}.paper-page .btn-ink{padding:6px 12px;font-size:13px}.paper-page .quota-row{grid-template-columns:1fr;gap:12px;padding:0;margin:16px 0 0}.paper-page .dashboard-filter-row{padding:10px 0;margin-top:12px;gap:8px}.paper-page .quota-header{flex-direction:row;align-items:baseline;gap:8px}.paper-page .quota-value{white-space:nowrap}.paper-page .dashboard-filter-controls{width:100%}.paper-page .dashboard-filter-controls .btn-group{flex:1 1 100%;display:flex}.paper-page .dashboard-filter-controls .btn-group .btn{flex:1;justify-content:center}.paper-page .dashboard-filter-controls .dropdown{flex:1 1 0;min-width:0}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{width:100%;justify-content:space-between}.paper-page .dashboard-filter-controls .dropdown .filter-btn-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:480px){.paper-page .paper-page-lede{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}.empty-state{text-align:center;padding:40px 20px;opacity:.6}.empty-state i{font-size:2rem;margin-bottom:10px;display:block}.paper-page .progress{height:10px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:999px;overflow:hidden;margin-bottom:20px}.paper-page .progress .progress-bar{background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:10px;line-height:10px}.paper-page .progress .progress-bar.bg-success{background:var(--status-ready)!important}.paper-page .progress .progress-bar.bg-warning{background:var(--status-progress)!important;color:#fff}.paper-page .progress .progress-bar.bg-danger{background:var(--status-error)!important}.paper-page .progress .progress-bar.bg-dark{background:var(--ink-faint)!important}.paper-page .form>h5,.paper-page form>h5,.paper-page>h5{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);margin:24px 0 8px}.paper-page .accordion .card{background:var(--paper-card,var(--sidebar-bg-color));border:1px solid var(--border-color);border-radius:8px!important;margin-bottom:8px;overflow:hidden}.paper-page .accordion .card+.card{border-top:1px solid var(--border-color)}.paper-page .accordion .card-header{background:0 0;border:none;padding:0}.paper-page .accordion .card-header .btn{color:var(--color)!important;font-family:var(--font-sans);font-weight:500;font-size:14px;padding:14px 18px!important;background:0 0!important;border:none!important;position:relative}.paper-page .accordion .card-header .btn::after{content:"+";position:absolute;right:18px;font-family:var(--font-serif);font-size:20px;color:var(--ink-muted)}.paper-page .accordion .card-header .btn:not(.collapsed)::after{content:"–"}.paper-page .accordion .card-body{padding:6px 18px 18px!important;border-top:1px solid var(--border-soft)}.paper-page .accordion .form-check-label{color:var(--color);font-weight:500;font-size:14px}.paper-page .accordion .form-text{color:var(--ink-muted);font-size:12px;margin-top:2px}.faq-section .panel-body code{font-family:var(--font-mono);font-size:13px;padding:1px 6px;background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:3px;color:var(--color)}.faq-section .panel-body a{color:var(--accent)}@media (max-width:820px){.paper-faq-body{grid-template-columns:1fr;gap:24px}.paper-faq-toc{position:static}}.paper-footer{margin-top:80px;padding:56px max(20px,calc((100vw - 1200px)/ 2)) 28px;border-top:1px solid var(--border-color);background:var(--canvas-bg-color);font-family:var(--font-sans)}.paper-footer-inner{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}.paper-footer-brand .paper-footer-mark{font-family:var(--font-serif);font-size:22px;letter-spacing:-.01em;color:var(--color)}.paper-footer-brand .paper-footer-mark em{font-style:italic;font-weight:400}.paper-footer-tag{margin-top:10px;color:var(--ink-soft);font-size:14px;line-height:1.55;max-width:340px}.paper-footer-head{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px}.paper-footer-col a{display:block;color:var(--color);font-size:14px;padding:4px 0;text-decoration:none}.paper-footer-col a:hover{color:var(--accent)}.paper-footer-rule{height:1px;background:var(--border-color);margin:40px 0 16px}.paper-footer-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink-muted);font-family:var(--font-mono);letter-spacing:.02em}.paper-footer-foot .paper-footer-meta{font-family:var(--font-serif);font-style:italic;font-size:14px;letter-spacing:0;color:var(--ink-soft)}@media (max-width:768px){.paper-footer-inner{grid-template-columns:1fr 1fr}}.file.folder.truncated .truncated-warning{color:#d39e00;margin-left:4px;font-size:.85em;flex-shrink:0}.file.folder.truncated>a{color:#d39e00}body{--bucket-error-bg:#FCEDED;--bucket-error-fg:#8A1F1F;--bucket-error-bd:#F0C4C4;--bucket-error-dot:#B53737;--bucket-warn-bg:#FFF3DF;--bucket-warn-fg:#7A4D00;--bucket-warn-bd:#F0D8A0;--bucket-warn-dot:#B07A2F;--bucket-info-bg:#EAF2EC;--bucket-info-fg:#2C5D3A;--bucket-info-bd:#C5DCCD;--bucket-info-dot:#5B8D6B;--card-shadow:0 1px 2px rgba(26, 24, 21, 0.04),0 4px 14px rgba(26, 24, 21, 0.05);--card-shadow-hover:0 1px 2px rgba(26, 24, 21, 0.06),0 8px 24px rgba(26, 24, 21, 0.08)}.dark-mode{--bucket-error-bg:rgba(255, 139, 123, 0.10);--bucket-error-fg:#FF8B7B;--bucket-error-bd:rgba(255, 139, 123, 0.28);--bucket-error-dot:#FF8B7B;--bucket-warn-bg:rgba(255, 211, 122, 0.10);--bucket-warn-fg:#FFD37A;--bucket-warn-bd:rgba(255, 211, 122, 0.28);--bucket-warn-dot:#FFD37A;--bucket-info-bg:rgba(152, 200, 168, 0.10);--bucket-info-fg:#98C8A8;--bucket-info-bd:rgba(152, 200, 168, 0.28);--bucket-info-dot:#98C8A8;--card-shadow:0 1px 2px rgba(0, 0, 0, 0.35),0 6px 18px rgba(0, 0, 0, 0.30);--card-shadow-hover:0 2px 4px rgba(0, 0, 0, 0.45),0 12px 28px rgba(0, 0, 0, 0.40)}.errors-page .errors-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 8px}.errors-page .errors-actions{display:flex;gap:6px}.errors-page .kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:14px 0 18px}.errors-page .kpi-card{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease,transform 160ms ease}.errors-page .kpi-card:hover{box-shadow:var(--card-shadow-hover)}.errors-page .kpi-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.errors-page .kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.errors-page .kpi-card.kpi-error .kpi-value{color:var(--bucket-error-fg)}.errors-page .kpi-card.kpi-warn .kpi-value{color:var(--bucket-warn-fg)}.errors-page .kpi-card.kpi-info .kpi-value{color:var(--bucket-info-fg)}.errors-page .kpi-sub{font-size:.75rem;color:var(--ink-muted);font-style:italic}.errors-page .kpi-sub.up{color:var(--bucket-error-fg);font-style:normal}.errors-page .kpi-sub.down{color:var(--bucket-info-fg);font-style:normal}.errors-page .dropped-warn{color:var(--bucket-error-fg);font-weight:600;font-style:normal}.errors-page .volume-chart{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;margin-bottom:18px;box-shadow:var(--card-shadow)}.errors-page .volume-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.errors-page .volume-legend{display:flex;gap:14px;align-items:center;text-transform:none;letter-spacing:0;font-family:var(--font-sans)}.errors-page .volume-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}.errors-page .dot.dot-error{background:var(--bucket-error-dot)}.errors-page .dot.dot-warn{background:var(--bucket-warn-dot)}.errors-page .dot.dot-info{background:var(--bucket-info-dot)}.errors-page .volume-bars{display:flex;align-items:flex-end;gap:4px;height:80px}.errors-page .volume-bar{display:flex;flex-direction:column-reverse;flex:1 1 0;min-width:6px;height:100%}.errors-page .volume-bar .seg{display:block;width:100%}.errors-page .seg.seg-error{background:var(--bucket-error-dot)}.errors-page .seg.seg-warn{background:var(--bucket-warn-dot)}.errors-page .seg.seg-info{background:var(--bucket-info-dot);opacity:.7}.errors-page .errors-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.errors-page .seg-tabs{display:inline-flex;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background:var(--paper-card)}.errors-page .seg-tabs button{background:0 0;border:none;padding:6px 14px;font-size:.875rem;cursor:pointer;color:var(--color);font-family:var(--font-sans)}.errors-page .seg-tabs button+button{border-left:1px solid var(--border-color)}.errors-page .seg-tabs button.active{background:var(--primary-bg);color:var(--primary-color)}.errors-page .errors-toolbar .search-wrap{position:relative;flex:1 1 320px;min-width:220px}.errors-page .errors-toolbar .search-wrap input{width:100%;padding:6px 10px 6px 32px;border:1px solid var(--border-color);border-radius:8px;font-family:var(--font-mono);font-size:.8125rem;background:var(--input-bg);color:var(--input-color)}.errors-page .errors-toolbar .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-muted);font-size:.875rem}.errors-page .errors-toolbar .filter-count{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--ink-muted)}.errors-page .errors-toolbar .select-wrap{display:inline-flex;align-items:center;gap:6px}.errors-page .errors-toolbar .select-wrap label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin:0}.errors-page .errors-toolbar .select-wrap select{background:var(--input-bg);color:var(--input-color);border:1px solid var(--border-color);border-radius:8px}.errors-page .errors-toolbar .autoref{display:inline-flex;gap:6px;align-items:center;font-size:.8125rem;color:var(--color);cursor:pointer;margin:0}.errors-page .btn-icon{width:32px;padding:4px 0}.errors-page .errors-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden;box-shadow:var(--card-shadow)}.errors-page .errors-list-head,.errors-page .errors-row-main{display:grid;grid-template-columns:110px 100px 100px 1fr 60px 70px;gap:16px;padding:18px 20px;align-items:start}.errors-page .errors-list-head{padding:12px 20px;align-items:center}.errors-page .errors-list-head{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);border-bottom:1px solid var(--border-color);background:var(--paper-bg-alt)}.errors-page .errors-row{border-bottom:1px solid var(--border-soft)}.errors-page .errors-row:last-child{border-bottom:none}.errors-page .errors-row.open{background:var(--paper-bg-alt)}.errors-page .errors-row-main{cursor:pointer}.errors-page .errors-row-main:hover{background:var(--hover-bg-color)}.errors-page .col-when .when-rel{font-size:.9375rem;color:var(--color);font-variant-numeric:tabular-nums}.errors-page .col-when .when-abs{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-muted);font-variant-numeric:tabular-nums;margin-top:2px}.errors-page .col-sev{display:flex;align-items:center;gap:8px}.errors-page .sev-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.errors-page .sev-dot.sev-error{background:var(--bucket-error-dot)}.errors-page .sev-dot.sev-warn{background:var(--bucket-warn-dot)}.errors-page .sev-dot.sev-info{background:var(--bucket-info-dot)}.errors-page .sev-label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;color:var(--color)}.errors-page .pill-module{display:inline-block;font-family:var(--font-mono);font-size:.75rem;background:var(--paper-bg-alt);color:var(--ink-soft);border:1px solid var(--border-color);padding:3px 10px;border-radius:6px}.errors-page .col-msg .msg-code{font-family:var(--font-mono);font-size:1rem;color:var(--color);font-weight:600}.errors-page .col-msg .msg-context{color:var(--ink-muted);font-style:italic;font-size:.875rem;margin-left:10px}.errors-page .col-msg .msg-detail{color:var(--ink-soft);font-family:var(--font-mono);font-size:.8125rem;margin-left:10px}.errors-page .col-msg .msg-url{color:var(--ink-muted);font-family:var(--font-mono);font-size:.8125rem;margin-top:6px;word-break:break-all}.errors-page .count-pill{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--primary-bg);color:var(--primary-color);font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums}.errors-page .count-pill.count-pill-muted{background:0 0;color:var(--ink-muted);border:1px solid var(--border-color)}.errors-page .status-pill{display:inline-block;padding:2px 10px;border-radius:4px;font-family:var(--font-mono);font-size:.8125rem;font-variant-numeric:tabular-nums;border:1px solid transparent}.errors-page .status-pill.status-error{background:var(--bucket-error-bg);color:var(--bucket-error-fg);border-color:var(--bucket-error-bd)}.errors-page .status-pill.status-warn{background:var(--bucket-warn-bg);color:var(--bucket-warn-fg);border-color:var(--bucket-warn-bd)}.errors-page .status-pill.status-info{background:var(--bucket-info-bg);color:var(--bucket-info-fg);border-color:var(--bucket-info-bd)}.errors-page .errors-row-detail{padding:0 16px 16px}.errors-page .detail-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-color);margin-bottom:12px}.errors-page .detail-tabs button{background:0 0;border:0;border-bottom:2px solid transparent;padding:8px 12px;font-size:.875rem;cursor:pointer;color:var(--ink-muted);font-family:var(--font-sans)}.errors-page .detail-tabs button.active{color:var(--color);border-bottom-color:var(--color)}.errors-page .detail-body{display:grid;grid-template-columns:1fr 260px;gap:20px}.errors-page .detail-main pre{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;font-family:var(--font-mono);font-size:.875rem;line-height:1.7;color:var(--color);max-height:26em;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;box-shadow:var(--card-shadow)}.errors-page .related-list{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;max-height:22em;overflow:auto;box-shadow:var(--card-shadow)}.errors-page .stack-pre{line-height:1.45;white-space:pre;overflow-x:auto}.errors-page .related-row{display:flex;gap:10px;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border-soft);font-size:.8125rem}.errors-page .related-row:last-child{border-bottom:none}.errors-page .detail-actions{display:flex;gap:6px;align-items:center;margin-top:10px}.errors-page .copy-hint{font-size:.75rem;color:var(--bucket-info-fg)}.errors-page .detail-aside{background:var(--paper-card);border:1px solid var(--border-color);border-radius:12px;padding:18px;box-shadow:var(--card-shadow)}.errors-page .aside-block+.aside-block{margin-top:16px}.errors-page .aside-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:4px}.errors-page .aside-value{font-family:var(--font-serif);font-size:1rem;color:var(--color);word-break:break-word;line-height:1.3}.errors-page .aside-value.mono{font-family:var(--font-mono);font-size:.8125rem}.errors-page .aside-sub{color:var(--ink-muted);font-style:italic;font-size:.8125rem;font-family:var(--font-sans)}.errors-page .errors-pager{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:var(--ink-muted);font-size:.875rem}@media (max-width:720px){.errors-page .errors-list-head,.errors-page .errors-row-main{grid-template-columns:80px 80px 1fr 60px}.errors-page .errors-list-head .col-mod,.errors-page .errors-list-head .col-sev,.errors-page .errors-row-main .col-mod,.errors-page .errors-row-main .col-sev{display:none}.errors-page .detail-body{grid-template-columns:1fr}}.overview-page .ov-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:2px}.overview-page .ov-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;vertical-align:middle}.overview-page .ov-dot-ok{background:#2f7a44}.overview-page .ov-dot-warn{background:#c48a2e}.overview-page .ov-dot-idle{background:var(--ink-muted)}.dark-mode .overview-page .ov-dot-ok{background:#7dc894}.dark-mode .overview-page .ov-dot-warn{background:#e8b970}.overview-page .ov-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin:16px 0 22px}.overview-page .ov-kpi-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--card-shadow);transition:box-shadow 160ms ease}.overview-page .ov-kpi-card:hover{box-shadow:var(--card-shadow-hover)}.overview-page .ov-kpi-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-kpi-value{font-family:var(--font-serif);font-size:2.6rem;font-weight:400;line-height:1;margin-top:2px;color:var(--color)}.overview-page .ov-kpi-value.ov-val-warn{color:#b42318}.dark-mode .overview-page .ov-kpi-value.ov-val-warn{color:#f08a82}.overview-page .ov-kpi-sub{font-size:.75rem;color:var(--ink-muted);margin-top:2px}.overview-page .ov-daily-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:-4px 0 22px}.overview-page .ov-daily-card{background:var(--primary-bg);border:1px solid var(--border-color);border-radius:12px;padding:16px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-daily-label{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.overview-page .ov-daily-value{font-family:var(--font-serif);font-size:2.5rem;font-weight:400;line-height:1;color:var(--accent,#3b4ad6);margin-top:6px}.overview-page .ov-daily-sub{font-size:.75rem;color:var(--ink-muted);margin-top:5px}.dark-mode .overview-page .ov-daily-card{background:var(--paper-card)}.dark-mode .overview-page .ov-daily-value{color:#a7b2ff}.overview-page .ov-chart-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.overview-page .ov-chart-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px 14px;box-shadow:var(--card-shadow)}.overview-page .ov-chart-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.overview-page .ov-chart-title{font-family:var(--font-serif);font-size:1rem}.overview-page .ov-chart-legend{font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);display:flex;align-items:center;gap:5px}.overview-page .ov-dot-legend{display:inline-block;width:8px;height:8px;border-radius:50%}.overview-page .ov-dot-accent{background:var(--accent,#3b4ad6)}.overview-page .ov-dot-ok-fill{background:#2f7a44}.overview-page .ov-dot-user-fill{background:#8b5e2e}.overview-page .ov-dot-new-user-fill{background:#c48a2e}.dark-mode .overview-page .ov-dot-ok-fill{background:#7dc894}.dark-mode .overview-page .ov-dot-user-fill{background:#d0a15f}.dark-mode .overview-page .ov-dot-new-user-fill{background:#e8b970}.overview-page .ov-spark-bars{display:flex;align-items:flex-end;gap:3px;height:140px}.overview-page .ov-spark-col{flex:1;display:flex;align-items:flex-end;height:100%;position:relative}.overview-page .ov-spark-fill{width:100%;background:var(--accent,#3b4ad6);border-radius:2px 2px 0 0;transition:height .3s ease;opacity:.55}.overview-page .ov-spark-fill-alt{background:#2f7a44}.overview-page .ov-spark-fill-user{background:#8b5e2e}.overview-page .ov-spark-fill-new-user{background:#c48a2e}.dark-mode .overview-page .ov-spark-fill-alt{background:#7dc894}.dark-mode .overview-page .ov-spark-fill-user{background:#d0a15f}.dark-mode .overview-page .ov-spark-fill-new-user{background:#e8b970}.overview-page .ov-spark-col:hover .ov-spark-fill{opacity:1}.overview-page .ov-spark-col.has-tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);z-index:10;padding:6px 8px;border-radius:6px;background:var(--color);color:var(--canvas-bg-color);font-family:var(--font-mono);font-size:.6875rem;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip::before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%) translateY(4px);z-index:10;border:5px solid transparent;border-top-color:var(--color);opacity:0;pointer-events:none;transition:opacity 120ms ease,transform 120ms ease}.overview-page .ov-spark-col.has-tip:hover::after,.overview-page .ov-spark-col.has-tip:hover::before{opacity:1;transform:translateX(-50%) translateY(0)}.overview-page .ov-spark-x{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-muted);margin-top:6px}.overview-page .ov-triple-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:18px}.overview-page .ov-panel-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 20px;box-shadow:var(--card-shadow)}.overview-page .ov-panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.overview-page .ov-panel-title{font-family:var(--font-serif);font-size:1rem}.overview-page .ov-panel-meta{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.overview-page .ov-panel-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-color);font-size:.8125rem}.overview-page .ov-panel-foot a{color:var(--link-color);text-decoration:none}.overview-page .ov-panel-foot a:hover{text-decoration:underline}.overview-page .ov-performance{min-width:0;margin:22px 0}.overview-page .ov-performance-head{align-items:center;flex-wrap:wrap;gap:12px 20px}.overview-page .ov-performance-head h2{margin:0 0 4px}.overview-page .ov-performance-note{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--ink-muted)}.overview-page .ov-performance-head .ov-performance-note{margin:0}.overview-page .ov-performance-window{display:flex;align-items:center;gap:8px;flex-shrink:0}.overview-page .ov-performance-window label{margin:0;font-size:12px;color:var(--ink-muted)}.overview-page .ov-performance-window select{width:auto}.overview-page .ov-performance-tabs{margin:0 0 16px;gap:4px}.overview-page .ov-performance-tabs .paper-tab{white-space:nowrap}.overview-page .ov-metrics-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-control,8px)}.overview-page .ov-metrics-table{width:100%;border-collapse:collapse;color:var(--color);font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}.overview-page .ov-metrics-table td,.overview-page .ov-metrics-table th{padding:10px 12px;border-bottom:1px solid var(--border-color);vertical-align:middle;white-space:nowrap}.overview-page .ov-metrics-table thead th{background:var(--paper-bg-alt);color:var(--ink-muted);font-size:12px;font-weight:500}.overview-page .ov-metrics-table .num{text-align:right}.overview-page .ov-metrics-table tr:last-child>*{border-bottom:0}.overview-page .ov-metrics-table thead tr:last-child>*{border-bottom:1px solid var(--border-color)}.overview-page .ov-metrics-table tbody tr:hover{background:var(--hover-bg-color)}.overview-page .ov-metrics-table .ov-metric-name{min-width:190px;max-width:280px;text-align:left;white-space:normal;overflow-wrap:anywhere;font-weight:500}.overview-page .ov-metrics-table small{display:block;margin-top:3px;font-size:11px;font-weight:400;color:var(--ink-muted)}.overview-page .ov-metrics-table small .ui-icon{width:12px;height:12px}.overview-page .ov-metric-warning-row{background:rgba(196,138,46,.07)}.overview-page .ov-metric-warn,.overview-page .ov-metrics-table small.ov-metric-warn{color:#946519}.dark-mode .overview-page .ov-metric-warn,.dark-mode .overview-page .ov-metrics-table small.ov-metric-warn{color:#e8b970}.overview-page .ov-performance-message{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;margin:0 0 16px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);font-size:13px;line-height:1.5}.overview-page .ov-performance-message span{flex:1;min-width:160px}.overview-page .ov-performance-warning{background:rgba(196,138,46,.07)}.overview-page .ov-performance-empty{margin:0;padding:24px 12px;text-align:center;font-size:13px;color:var(--ink-muted)}.overview-page .ov-performance-help{margin-top:16px;font-size:12px;line-height:1.6;color:var(--ink-muted)}.overview-page .ov-performance-help summary{width:fit-content;cursor:pointer}.overview-page .ov-performance-help p{margin:8px 0 0;max-width:80ch}@media (max-width:575px){.overview-page .ov-performance{padding:16px 12px}.overview-page .ov-performance-window{width:100%}.overview-page .ov-performance-window select{flex:1;min-width:0}.overview-page .ov-performance-tabs .paper-tab{flex:1;padding:10px 8px}}.overview-page .ov-stacked-bar{display:flex;height:18px;border-radius:6px;overflow:hidden;margin-bottom:14px}.overview-page .ov-bar-seg{min-width:2px;transition:width .4s ease}.overview-page .ov-bar-ready{background:#2f7a44}.overview-page .ov-bar-preparing{background:#c48a2e}.overview-page .ov-bar-error{background:#b42318}.overview-page .ov-bar-expired{background:#8a857c}.overview-page .ov-bar-removed{background:#b5afa2}.dark-mode .overview-page .ov-bar-ready{background:#7dc894}.dark-mode .overview-page .ov-bar-preparing{background:#e8b970}.dark-mode .overview-page .ov-bar-error{background:#f08a82}.dark-mode .overview-page .ov-bar-expired{background:#6b665e}.dark-mode .overview-page .ov-bar-removed{background:#4a453e}.overview-page .ov-bar-legend{display:flex;flex-direction:column;gap:6px}.overview-page .ov-legend-item{display:flex;align-items:center;gap:8px;font-size:.8125rem;text-decoration:none;color:inherit}.overview-page .ov-legend-item:hover{text-decoration:none;color:inherit}.overview-page .ov-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;flex-shrink:0}.overview-page .ov-legend-n{margin-left:auto;font-family:var(--font-mono);font-size:.8125rem;font-weight:600}.overview-page .ov-error-bars{display:flex;flex-direction:column;gap:12px}.overview-page .ov-ebar-row{display:flex;align-items:center;gap:10px}.overview-page .ov-ebar-label{width:30px;flex-shrink:0;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;color:var(--ink-muted)}.overview-page .ov-ebar-track{flex:1;height:10px;background:var(--hover-bg-color);border-radius:5px;overflow:hidden}.overview-page .ov-ebar-fill{height:100%;border-radius:5px;transition:width .4s ease}.overview-page .ov-ebar-error{background:#b42318}.overview-page .ov-ebar-warn{background:#c48a2e}.overview-page .ov-ebar-info{background:var(--accent,#3b4ad6)}.dark-mode .overview-page .ov-ebar-error{background:#f08a82}.dark-mode .overview-page .ov-ebar-warn{background:#e8b970}.overview-page .ov-ebar-n{width:36px;text-align:right;font-family:var(--font-mono);font-size:.8125rem;font-weight:600;flex-shrink:0}.overview-page .ov-routes-table{display:flex;flex-direction:column}.overview-page .ov-route-row{display:grid;grid-template-columns:1fr 60px 60px 60px;padding:8px 0;border-bottom:1px solid var(--border-soft,var(--border-color));text-decoration:none;color:inherit;font-size:.875rem;align-items:center}.overview-page .ov-route-row:last-child{border-bottom:none}.overview-page .ov-route-row:hover{background:var(--hover-bg-color);text-decoration:none;color:inherit}.overview-page .ov-route-head{font-family:var(--font-mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);border-bottom:1px solid var(--border-color)}.overview-page .ov-route-head:hover{background:0 0}.overview-page .ov-route-name{font-family:var(--font-mono);font-size:.8125rem}.overview-page .ov-route-n{text-align:right;font-family:var(--font-mono);font-size:.8125rem}.overview-page .ov-route-lat{color:var(--ink-muted)}.overview-page .ov-n-bad{color:#b42318;font-weight:600}.dark-mode .overview-page .ov-n-bad{color:#f08a82}.overview-page .ov-services-card{background:var(--paper-card,#fff);border:1px solid var(--border-color);border-radius:12px;padding:18px 22px;box-shadow:var(--card-shadow);margin-bottom:18px}.overview-page .ov-services-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.overview-page .ov-services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.overview-page .ov-svc{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border-soft,var(--border-color));border-radius:10px}.overview-page .ov-svc-dot{width:10px;height:10px;border-radius:50%;margin-top:3px;flex-shrink:0}.overview-page .ov-svc-info{display:flex;flex-direction:column;gap:1px;flex:1}.overview-page .ov-svc-name{font-family:var(--font-mono);font-size:.875rem;font-weight:600}.overview-page .ov-svc-meta{font-size:.75rem;color:var(--ink-muted)}.overview-page .ov-svc-detail{font-size:.75rem;color:var(--ink-muted);white-space:nowrap}@media (max-width:900px){.overview-page .ov-kpi-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-daily-row{grid-template-columns:repeat(3,1fr)}.overview-page .ov-triple-row{grid-template-columns:1fr}}@media (max-width:720px){.overview-page .ov-kpi-row{grid-template-columns:repeat(2,1fr)}.overview-page .ov-daily-row{grid-template-columns:1fr}.overview-page .ov-chart-row{grid-template-columns:1fr}.overview-page .ov-header{flex-direction:column;gap:8px}}@media (max-width:480px){.overview-page .ov-kpi-row{grid-template-columns:1fr 1fr}.overview-page .ov-services-grid{grid-template-columns:1fr 1fr}}.dashboard-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;padding-bottom:12px}.dashboard-heading-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.dashboard-connections-link{display:inline-flex;align-items:center;gap:7px;min-height:32px;color:var(--ink-muted);font-size:12px;line-height:1.5}.dashboard-connections-link:hover{color:var(--accent);text-decoration:none}.dashboard-connections-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}@media (max-width:767px){.dashboard-heading-actions{align-items:flex-start;padding-bottom:0;gap:4px}.dashboard-connections-link{min-height:44px}}.paper-settings-connection-link{display:flex;align-items:center;gap:12px;padding:18px 0;color:var(--color);font-size:14px}.paper-settings-connection-link>i{color:var(--ink-muted);font-size:18px}.paper-settings-connection-link>span:first-of-type{flex:1}.paper-settings-connection-link small{display:block;margin-top:4px;color:var(--ink-muted);font-size:12px}.paper-settings-connection-link:hover{color:var(--accent);text-decoration:none}.paper-settings-connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.connections-heading{margin-bottom:36px}.connections-heading .paper-page-title{font-size:clamp(38px,4.5vw,56px);margin-bottom:12px}.connections-heading .paper-page-lede{font-size:15px}.connections-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start;border-top:1px solid var(--border-color);padding-top:28px}.connections-grid>section{min-width:0}.connection-title,.connection-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.connection-top{margin-bottom:24px;min-height:28px}.connection-top>i{color:var(--ink-muted);font-size:24px}.connection-top>.fa-key{font-size:18px}.connection-title{margin-bottom:10px}.connections-page h2{font-family:inherit;font-size:22px;font-weight:600;letter-spacing:-.5px;margin:0}.connections-page p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.connection-badge{background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:600;border-radius:5px;padding:4px 8px;white-space:nowrap}.connection-badge-muted{background:var(--paper-bg-alt);color:var(--ink-muted)}.connection-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-muted)}.connection-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.connection-status.is-connected{color:var(--status-ready)}.connection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:22px 0 16px}.connections-page .btn{font-size:13px;padding:9px 13px;white-space:normal}.connection-revoke p,.connections-page .connection-help{font-size:12px}.connection-link{display:inline-flex;align-items:center;gap:8px;border:0;padding:0;background:0 0;color:var(--accent);font-size:13px;line-height:1.6;font-weight:500;text-align:left;cursor:pointer}.connection-link:hover{color:var(--link-hover-color);text-decoration:underline}.connection-link:disabled{color:var(--ink-muted);opacity:.65;cursor:not-allowed;text-decoration:none}.connection-link:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.connection-installations{list-style:none;padding:0;margin:18px 0;border-top:1px solid var(--border-soft)}.connection-installations li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 0;font-size:12px;border-bottom:1px solid var(--border-soft)}.connection-revoke{border-top:1px solid var(--border-soft);padding-top:18px;margin-top:24px}.connection-danger{color:var(--status-error)}.connection-resources{margin-top:36px;padding-top:28px;border-top:1px solid var(--border-color)}.connection-count{color:var(--ink-muted);font-size:12px}.connection-empty{display:flex;align-items:center;gap:18px;padding:20px 0;margin:22px 0}.connection-empty>i{font-size:22px;color:var(--ink-muted)}.connection-empty h3{font-size:14px;font-weight:600;margin:0 0 5px}.connection-empty p{font-size:12px;margin:0}.connection-empty>a{margin-left:auto;flex-shrink:0}.connection-resource{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--border-color)}.connection-resource-name{flex:1;min-width:180px;overflow-wrap:anywhere;font-size:14px}.connection-resource-name small{display:block;color:var(--ink-muted);font-size:11px;margin-top:5px}.connection-resource-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.connection-resource-actions .connection-help{flex-basis:100%}.connections-page .connection-footnote{display:flex;align-items:baseline;gap:10px;margin-top:22px;font-size:12px}@media (max-width:767px){.connections-grid{grid-template-columns:1fr;gap:28px}.connections-grid>section+section{border-top:1px solid var(--border-color);padding-top:28px}.connection-empty{flex-wrap:wrap}.connection-empty>div{flex:1;min-width:180px}.connection-empty>a{margin-left:40px}.connection-resource-actions{flex-basis:100%}}.paper-table-empty-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.paper-table-empty-actions .btn>i{font-size:1em;line-height:1;color:inherit;margin-right:0!important}.auth-back{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-muted);margin-bottom:48px}.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.auth-intro,.auth-options{padding-top:28px}.auth-title-mobile{display:none}.auth-intro .paper-page-title{font-size:clamp(48px,5vw,76px);line-height:1.06;margin:18px 0 24px}.auth-intro .paper-page-lede{max-width:330px}.auth-options{display:grid;gap:28px}.auth-options h2{font-family:inherit;font-size:22px;font-weight:600;margin:0 0 10px}.auth-options p{font-size:14px;line-height:1.65;color:var(--ink-muted)}.auth-options .auth-existing{font-size:12px;border-left:2px solid var(--accent);padding-left:14px;margin:0}.auth-permissions{padding:6px 0 12px;list-style:none;font-size:13px;line-height:1.6}.auth-permissions li{display:flex;gap:10px;margin:12px 0}.auth-permissions i{color:var(--status-ready);margin-top:4px}.auth-continue{display:flex!important;align-items:center;justify-content:space-between;min-height:48px;padding:12px 16px!important}.auth-options small{display:block;font-size:12px;text-align:center;color:var(--ink-muted);margin-top:12px}.auth-legacy{border-top:1px solid var(--border-color);padding-top:24px}.auth-legacy h2{font-size:16px;margin:0}.auth-legacy p{font-size:13px}.source-url-label-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px}.source-url-label-row>.paper-field-label{font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--color);margin-bottom:6px;display:block}.repo-access{margin:0}.repo-access-details{margin:12px 0 24px}.source-url-label-row .repo-access-switch{padding:2px}.source-url-label-row .repo-access-switch button{padding:6px 10px;font-size:12px;line-height:20px}.repo-access-main{display:flex;align-items:center;gap:10px;padding:0 0 8px;flex-wrap:wrap}.repo-access-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.repo-access-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--border-color);border-radius:7px;flex-wrap:wrap}.repo-access-switch button{border:0;border-radius:4px;background:0 0;color:var(--ink-muted);padding:7px 10px;font:inherit;font-size:12px;cursor:pointer}.repo-access-switch button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);opacity:1;cursor:default;font-weight:600}.repo-access-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.repo-access-details .btn{font-size:12px;padding:8px 12px}.repo-access-note{display:flex;gap:6px 16px;flex-wrap:wrap;padding:0;color:var(--ink-muted);font-size:11px;line-height:1.6}@media (max-width:767px){.auth-page{max-width:480px}.auth-back,.auth-intro .paper-eyebrow,.auth-title-desktop{display:none}.auth-title-mobile{display:inline}.auth-layout{grid-template-columns:1fr;gap:24px}.auth-intro,.auth-options{padding-top:0}.auth-intro .paper-page-title{font-size:40px;line-height:1.15;margin:6px 0 12px}.auth-intro .paper-page-lede{max-width:none;font-size:14px;margin:0}.auth-options{gap:24px}.auth-options .connection-top{margin-bottom:16px}.auth-options h2{font-size:18px}.auth-options p{font-size:13px;margin-bottom:12px}.auth-permissions{padding:0;margin:14px 0 20px;font-size:12px}.auth-permissions li{margin:8px 0}.auth-continue{font-size:14px}.auth-legacy{padding-top:20px}.auth-legacy h2{font-size:15px}.auth-legacy .connection-link{min-height:44px}.repo-access-controls{width:100%;gap:12px}}.text-muted{color:var(--ink-muted)!important}.anonymize-review-note,.draft-status{font-size:13px;color:var(--ink-muted)}.anonymize-review-note{padding:12px 0;margin:0}.anonymize-preview-status{padding:20px 32px;color:var(--ink-muted)}.anonymize-preview-status p{margin:0 0 12px}@media (max-width:575px){.dashboard-page .paper-page-lede{margin-bottom:8px}.dashboard-page .dashboard-heading-actions{gap:4px}.dashboard-page .dashboard-connections-link{min-height:32px}.dashboard-page .dashboard-filter-row{margin-top:12px}.anonymize-preview-status{padding:16px}}.paper-page .paper-page-title{font-size:32px}.paper-page.admin-page .paper-page-title{font-size:28px}.paper-page .paper-page-lede{font-size:14px;line-height:1.5}.paper-settings{padding-top:32px}.paper-settings-body{grid-template-columns:180px minmax(0,1fr);gap:40px;margin-top:24px;padding-top:24px;border-top:0}.paper-settings-main .paper-settings-section{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);padding:20px;margin-bottom:16px}.anonymize-page .paper-section-eyebrow,.paper-settings .paper-section-eyebrow{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:-.01em;margin-bottom:12px}.paper-settings .paper-settings-toc-head{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.paper-settings-section .paper-section-copy{margin-top:0}.paper-settings .quota-row{gap:24px}.paper-settings .quota-header{flex-direction:column;align-items:flex-start;gap:4px}.paper-settings .quota-value{white-space:nowrap}.paper-settings .paper-settings-footer{padding:0 0 20px}.paper-settings .form-control{font-size:14px;border-color:var(--border-color);border-radius:var(--radius-control)}.paper-settings .form-check{padding-top:8px;padding-bottom:8px}.anonymize-page .btn-ink,.explorer-page .btn-ink,.paper-page .btn-ink{background:var(--accent);color:#fff;border-color:var(--accent)}.dark-mode .anonymize-page .btn-ink,.dark-mode .explorer-page .btn-ink,.dark-mode .paper-page .btn-ink{color:#1a1815}.anonymize-page .btn-ink:hover,.explorer-page .btn-ink:hover,.paper-page .btn-ink:hover{background:var(--accent);border-color:var(--accent);color:#fff;filter:brightness(.94)}.dark-mode .anonymize-page .btn-ink:hover,.dark-mode .explorer-page .btn-ink:hover,.dark-mode .paper-page .btn-ink:hover{color:#1a1815}.anonymize-page .btn-ink:active,.explorer-page .btn-ink:active,.paper-page .btn-ink:active{filter:brightness(.9)}input[type=date],select{color-scheme:light}.dark-mode input[type=date],.dark-mode select{color-scheme:dark}.draft-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 0}.draft-discard{padding:0;border:0;color:var(--accent);font:inherit;font-size:13px;text-decoration:underline;background:0 0;cursor:pointer}.conference-feedback{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;margin-top:16px;background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);width:100%}.paper-table{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);margin-top:12px}.dashboard-page .paper-table-dashboard{width:100%}.paper-account-email{margin:20px 0}.paper-account-email .form-control{max-width:420px}.paper-settings .paper-account-email .btn[type=submit]{min-height:36px;padding:7px 18px;white-space:nowrap}.paper-table .paper-table-head{font-family:var(--font-sans);text-transform:none;letter-spacing:0;font-size:12px;background:var(--paper-bg-alt);border-radius:var(--radius-surface) var(--radius-surface) 0 0}.paper-table .paper-table-head,.paper-table .paper-table-row{padding-left:16px;padding-right:16px}.dashboard-page{--dashboard-space-xs:4px;--dashboard-space-sm:8px;--dashboard-space-md:12px;--dashboard-space-lg:16px;--dashboard-space-xl:24px;padding-top:var(--dashboard-space-xl)}.project-icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.project-type-svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.project-empty-icon{width:28px;height:28px;color:var(--ink-faint)}.project-type-icon{display:inline-flex;color:var(--ink-muted);flex-shrink:0}.dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--dashboard-space-lg)}.dashboard-heading .paper-page-title{font-size:28px;margin-bottom:var(--dashboard-space-xs)}.dashboard-heading .paper-page-lede{display:none}.dashboard-heading .btn{min-height:40px;display:inline-flex;gap:var(--dashboard-space-sm);align-items:center}.dashboard-new-mobile{display:none}.dashboard-quota{position:relative;margin:0;padding:0;border:0;background:0 0}.dashboard-quota>summary{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--paper-card);color:var(--color);font-family:var(--font-sans);font-size:12px;cursor:pointer;list-style:none;white-space:nowrap}.dashboard-quota>summary::-webkit-details-marker{display:none}.dashboard-quota>summary:hover,.dashboard-quota[open]>summary{background:var(--paper-bg-alt);border-color:var(--ink-faint)}.quota-summary-label{font-weight:600}.quota-summary-value{color:var(--ink-muted);font-variant-numeric:tabular-nums}.quota-summary-ring{width:18px;height:18px;flex-shrink:0;fill:none;stroke-width:2.5}.quota-ring-track{stroke:var(--border-color)}.quota-ring-fill{stroke:var(--accent);transform:rotate(-90deg);transform-origin:50% 50%}.quota-summary-ring.quota-warn .quota-ring-fill{stroke:var(--status-progress)}.quota-summary-ring.quota-danger .quota-ring-fill{stroke:var(--status-error)}.quota-ring-unlimited{stroke:var(--accent);stroke-width:1.7}.quota-summary-chevron{width:14px;height:14px;margin-left:2px;color:var(--ink-muted);transition:transform .15s ease}.dashboard-quota[open] .quota-summary-chevron{transform:rotate(180deg)}.dashboard-quota .quota-panel{position:absolute;z-index:25;top:calc(100% + 8px);left:0;width:344px;max-width:calc(100vw - 36px);padding:16px;border:1px solid var(--border-color);border-radius:12px;background:var(--paper-card);box-shadow:0 12px 36px rgba(26,24,21,.16)}.quota-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.quota-panel-heading h2{font:600 15px var(--font-sans);margin:0}.quota-panel-heading .project-close{margin:-8px -8px -8px 0}.paper-page .quota-usage{display:grid;grid-template-columns:1fr;gap:16px;margin:0;padding:0}.quota-usage .quota-item+.quota-item{padding-top:16px;border-top:1px solid var(--border-soft,var(--border-color))}.quota-usage .quota-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.quota-usage .quota-label{display:inline-flex;align-items:center;gap:8px;font:500 12px var(--font-sans);letter-spacing:0;text-transform:none;color:var(--ink-muted)}.quota-usage .quota-label .project-type-svg{width:16px;height:16px}.quota-usage .quota-value{display:flex;align-items:baseline;gap:4px;font:12px var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink-muted);margin-bottom:8px}.quota-usage .quota-value strong{font-size:20px;line-height:1.2;font-weight:600;color:var(--color)}.quota-percent,.quota-usage .quota-unlimited-tag{margin-left:auto;padding:2px 6px;border-radius:4px;background:var(--paper-bg-alt);font:11px var(--font-sans);color:var(--ink-muted);white-space:nowrap}.quota-warn>.quota-header .quota-percent{color:var(--status-progress)}.quota-danger>.quota-header .quota-percent{color:var(--status-error)}.quota-usage .quota-track{height:5px;border:0;background:var(--paper-bg-alt)}.quota-usage .quota-track .quota-fill{min-width:0;background:var(--accent)}.quota-remaining{margin:6px 0 0;color:var(--ink-muted);font-size:11px}.quota-remaining.quota-limit{color:var(--status-error)}.quota-loading{font-size:12px;color:var(--ink-muted);margin:12px 0 0}.dashboard-page .dashboard-filter-row{display:flex;align-items:center;gap:var(--dashboard-space-md);padding:0;margin:var(--dashboard-space-lg) 0 0;border:0;background:0 0}.dashboard-page .dashboard-filter-row .search-wrap{flex:1 1 240px;min-width:0}.dashboard-page .dashboard-filter-row .form-control{height:40px;padding:8px 12px;font-size:13px;background:var(--paper-card)}.dashboard-page .dashboard-filter-controls{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--dashboard-space-sm)}.dashboard-extra-filters{display:flex;gap:var(--dashboard-space-sm)}.dashboard-filters-toggle{display:none}.dashboard-page .dashboard-filter-row .btn-group .btn{border:0;background:0 0;border-radius:6px;height:36px;padding:6px 10px}.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary{background:var(--accent-soft);color:var(--accent)}.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary:active,.dashboard-page .dashboard-filter-row .btn-group .btn.btn-primary:hover{background:var(--accent-soft)!important;color:var(--accent)}.dashboard-page .dashboard-filter-row .dropdown-toggle{height:36px;padding:6px 10px}.dashboard-type-filter .project-type-svg{display:none}.sort-direction{width:14px;height:14px}.sort-direction.ascending{transform:rotate(180deg)}.dashboard-page .dashboard-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dashboard-space-sm) var(--dashboard-space-md);margin:var(--dashboard-space-md) 0 0;padding:0}.dashboard-view-tabs{display:flex;align-items:center;gap:var(--dashboard-space-lg)}.dashboard-view-short{display:none}.dashboard-view-tabs button{min-height:36px;border:0;border-bottom:2px solid transparent;border-radius:0;background:0 0;font:inherit;font-size:13px;color:var(--ink-muted);padding:4px 0}.dashboard-view-tabs button[aria-pressed=true]{color:var(--color);border-bottom-color:var(--color);font-weight:600}.attention-count{padding:1px 5px;margin-left:4px;border-radius:4px;background:var(--paper-bg-alt);font-size:11px;font-variant-numeric:tabular-nums}.attention-count.has-attention{color:var(--status-error)}.dashboard-count{margin-left:auto;font-size:12px;color:var(--ink-muted)}.dashboard-active-filters{display:flex;align-items:center;flex-wrap:wrap;gap:var(--dashboard-space-sm);width:100%}.dashboard-page .filter-chip{display:inline-flex;font-family:var(--font-sans);font-size:11px;text-transform:none;letter-spacing:0;border-radius:6px}.dashboard-page .filter-chip .project-type-svg{width:12px;height:12px;margin-left:4px}.dashboard-page .filter-chip-close{min-width:24px;min-height:24px;display:inline-flex;align-items:center;justify-content:center;margin:-2px -4px -2px 2px}.dashboard-page .btn-link-inline{color:var(--ink-muted);font-size:12px}.dashboard-page .paper-table-dashboard{margin-top:var(--dashboard-space-md);border-left:0;border-right:0;border-radius:0}.dashboard-page .paper-table-dashboard .paper-table-head,.dashboard-page .paper-table-dashboard .paper-table-row{grid-template-columns:minmax(280px,3fr) 180px 72px 148px 64px;gap:var(--dashboard-space-lg);padding:8px 12px}.dashboard-page .paper-table-dashboard .paper-table-head{border-radius:0}.dashboard-page .paper-table .cell-anon{gap:var(--dashboard-space-sm)}.dashboard-page .paper-table .anon-text{flex:1}.dashboard-page .paper-table .repo-name{font-family:var(--font-sans);font-size:14px;font-weight:600}.dashboard-page .paper-table .anon-sub{display:flex;align-items:center;gap:var(--dashboard-space-sm);min-width:0}.anonymous-id{font-size:12px;font-family:var(--font-mono);color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-page .paper-table .type-badge{font-family:var(--font-sans);letter-spacing:0;font-size:11px;text-transform:none;border-radius:6px}.dashboard-page .paper-table .status-sub{font-size:12px}.dashboard-page .paper-table .cell-conf{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.dashboard-page .conf-tag .project-type-svg{width:14px;height:14px}.dashboard-row-meta{display:contents}.dashboard-page .cell-actions{gap:0;align-items:center}.copy-link-inline,.dashboard-page .btn-icon-dots,.project-close{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:0 0;color:var(--ink-muted);padding:0;width:32px;height:32px;min-width:32px;cursor:pointer}.copy-link-inline:focus-visible,.copy-link-inline:hover,.dashboard-page .btn-icon-dots:hover,.project-close:hover{background:var(--accent-soft);color:var(--accent)}.copy-link-inline:disabled{opacity:.5;cursor:wait}.mobile-meta-icon{display:none}.project-attention-action{display:inline-block;color:var(--accent);border:0;background:0 0;padding:0;font:inherit;font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.project-attention-action{text-align:left}.dashboard-page .cell-status .project-attention-action{flex-basis:100%}.project-details-row{width:100%;border-bottom:1px solid var(--border-color)}.project-details{padding:var(--dashboard-space-xl);background:var(--paper-bg-alt)}.project-details-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--dashboard-space-sm)}.project-details-heading h2{font:600 16px var(--font-sans);margin:0}.project-details-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--dashboard-space-md) var(--dashboard-space-xl);margin:12px 0}.project-details-list dt{font-size:12px;color:var(--ink-muted);font-weight:500;margin-bottom:4px}.project-details-list dd{margin:0;font-size:13px;overflow-wrap:anywhere}.project-details-list code{color:var(--color);font-size:12px}.project-name-form{margin-top:var(--dashboard-space-lg);padding-top:var(--dashboard-space-lg);border-top:1px solid var(--border-color)}.project-name-form label{display:block;font-size:13px;font-weight:500;margin-bottom:4px}.project-name-form p,.project-progress-help{font-size:12px;color:var(--ink-muted);margin-bottom:8px}.project-name-controls{display:flex;gap:var(--dashboard-space-sm);max-width:560px}.project-name-controls .form-control{min-width:0;font-size:14px}.project-name-controls .btn{flex-shrink:0;min-height:40px}.project-name-form .project-name-error{color:var(--status-error)}.project-details-button{min-height:44px;padding:0 8px;border:0;border-radius:6px;background:0 0;font:inherit;font-size:12px;color:var(--ink-muted);cursor:pointer}.anonymize-page .anonymize-topbar-title{font-family:var(--font-sans);font-size:28px;font-weight:600}.anonymize-topbar{padding:16px 24px}.anonymize-form-col{background:var(--paper-bg-alt)}.anonymize-form-col .paper-settings-main{padding:20px 24px}.anonymize-form-col .paper-settings-section{padding:18px}.anonymize-form-col .paper-settings-section:first-child{padding-top:18px}.anonymize-form-col .anonymize-submit-bar{background:var(--paper-bg-alt);padding:12px 0}.anonymize-preview-head .paper-eyebrow{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:0}.anonymize-preview-col{background:var(--canvas-bg-color);padding:24px}.anonymize-preview-head{flex-wrap:wrap;gap:6px 12px;margin-bottom:16px}.anonymize-preview-body{padding:24px}.anonymize-mobile-tabs,.anonymize-preview-empty,.mobile-preview-jump{display:none}.anonymize-page .repo-access-note{font-size:12px}@media (max-width:900px){.paper-settings-body{grid-template-columns:1fr;gap:18px}.paper-settings-toc{padding:0}.paper-settings-toc-head{display:none}.paper-table .paper-table-row{padding-left:14px;padding-right:14px}}@media (max-width:767px){.anonymize-page .paper-page-title,.paper-page .paper-page-title{font-size:24px}.paper-settings{padding:20px 16px 40px}.paper-settings-main .paper-settings-section{padding:16px}.anonymize-topbar{padding:12px 16px}.anonymize-topbar .paper-crumbs{display:none}.anonymize-mobile-tabs{display:flex;gap:4px;padding:8px 16px;border-bottom:1px solid var(--border-color);background:var(--paper-card)}.anonymize-mobile-tabs button{flex:1;font:inherit;font-size:13px;padding:10px;border:0;border-radius:6px;background:0 0;color:var(--ink-muted)}.anonymize-mobile-tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.anonymize-page:not(.mobile-preview-active) .anonymize-preview-col{display:none}.mobile-preview-active .anonymize-form-col{display:none}.mobile-preview-active .anonymize-preview-empty{display:block;padding:24px 16px;color:var(--ink-muted)}.anonymize-form-col .paper-settings-main{padding:16px}.anonymize-form-col .anonymize-submit-bar{background:var(--paper-bg-alt)}.mobile-preview-jump{display:block;width:100%;min-height:44px}.anonymize-preview-col{padding:16px}.anonymize-preview-body{padding:16px}}@media (max-width:575px){.paper-settings .quota-header{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 8px}}@media (max-width:1100px) and (min-width:901px){.dashboard-page .dashboard-filter-row{flex-wrap:wrap}.dashboard-page .dashboard-filter-row .search-wrap{flex-basis:100%}.dashboard-page .dashboard-filter-controls{width:100%;justify-content:space-between}}@media (max-width:900px){.dashboard-page .paper-table.paper-table-dashboard .paper-table-row{gap:4px 8px;padding:8px 12px}.dashboard-page .paper-table .cell-anon{flex:1 1 calc(100% - 96px);min-width:0}.dashboard-page .paper-table .cell-actions{flex:0 0 88px}.dashboard-row-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;order:3;width:100%}.dashboard-page .dashboard-row-meta .cell-status{flex:1 1 80px;flex-wrap:wrap;gap:2px 8px}.dashboard-page .dashboard-row-meta .cell-expires,.dashboard-page .dashboard-row-meta .cell-views{flex-shrink:0;font-size:12px}.dashboard-page .cell-expires::before,.dashboard-page .cell-views::before{content:none}.dashboard-page .mobile-meta-icon{display:inline-block;width:14px;height:14px}.dashboard-page .dashboard-row-meta .status-sub-date{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-page .dashboard-row-meta .status-sub-error,.dashboard-page .dashboard-row-meta .status-sub-warn{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}.dashboard-page .dashboard-row-meta .status-sub::before{content:none}.dashboard-page .project-attention-action{min-height:44px;display:inline-flex;align-items:center}.dashboard-page .paper-table .anon-sub .commit-hash,.dashboard-page .paper-table .anon-sub .conf-tag{display:none}}@media (max-width:767px){.container.dashboard-page{padding-top:12px}.dashboard-heading .paper-page-title{font-size:24px}.dashboard-heading-actions .btn-ink{min-height:44px}.dashboard-new-label{display:none}.dashboard-new-mobile{display:inline}.dashboard-quota>summary{min-height:44px;gap:6px;padding:10px;font-size:12px;line-height:20px}.dashboard-quota .quota-panel{max-height:calc(100dvh - 184px);overflow-y:auto;overscroll-behavior:contain}.dashboard-page .dashboard-filter-row{flex-wrap:wrap;gap:8px;margin-top:12px}.dashboard-page .dashboard-filter-row .search-wrap{flex:1 1 0}.dashboard-page .dashboard-filter-row .form-control{height:44px}.dashboard-page .dashboard-filters-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:8px;min-height:44px;background:0 0;border:0}.dashboard-page .dashboard-filter-controls{display:none;width:100%}.dashboard-page .dashboard-filter-controls.expanded{display:flex;flex-wrap:wrap;gap:8px}.dashboard-page .dashboard-filter-controls .btn-group{width:100%;display:flex}.dashboard-page .dashboard-filter-controls .btn-group .btn{flex:1;min-height:44px}.dashboard-extra-filters{display:flex;width:100%}.dashboard-page .dashboard-extra-filters .dropdown{flex:1;min-width:0}.dashboard-page .dashboard-extra-filters .dropdown-toggle{width:100%;height:44px}.dashboard-type-filter .type-filter-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dashboard-type-filter .project-type-svg{display:inline-block}.dashboard-page .dashboard-meta{margin-top:8px;gap:4px 8px}.dashboard-view-tabs{gap:16px}.dashboard-view-tabs button{min-width:44px;min-height:44px;font-size:12px}.dashboard-count{font-size:11px}.dashboard-count{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.dashboard-view-long{display:none}.dashboard-view-short{display:inline}.dashboard-active-filters{display:contents}.dashboard-page .filter-chip{font-size:11px;padding:0 8px;min-height:44px;gap:4px}.dashboard-page .filter-chip-close{min-width:44px;min-height:44px;margin:0}.dashboard-page .btn-link-inline{min-height:44px;font-size:12px}.dashboard-page .paper-table-dashboard{width:calc(100% + 36px);margin:8px -18px 0;border-left:0;border-right:0;border-radius:0}.dashboard-page .paper-table .repo-name{font-size:13px}.project-details{padding:16px 12px}.project-details-list{grid-template-columns:1fr;gap:12px}.project-name-controls{flex-wrap:wrap}.project-name-controls .form-control{flex-basis:100%}.project-name-controls .btn{min-height:44px}}@media (max-width:360px){.dashboard-attention-prefix{display:none}.dashboard-attention-prefix+span{text-transform:capitalize}}.ui-icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.ui-icon{display:inline-block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:-3px}.ui-icon.sort-direction{width:14px;height:14px}.pr-title-row{display:flex;align-items:flex-start;gap:16px}.pr-title-row .pr-title{flex:1;min-width:0}.pr-title-row>.btn{flex-shrink:0}.ui-icon.record-type-icon{color:var(--ink-muted)}.btn .ui-icon,.dropdown-item .ui-icon{width:16px;height:16px}.btn-icon-dots .ui-icon{width:18px;height:18px}.anonymize-page .paper-page-title,.paper-page .paper-page-title{font-size:28px}.paper-faq,.paper-page{padding-top:24px}.paper-page .paper-page-lede{margin-bottom:16px;overflow-wrap:anywhere}.paper-page-title{overflow-wrap:anywhere}.anonymize-page .form-control,.paper-page .form-control{min-height:40px;font-family:var(--font-sans);font-size:14px;border-radius:var(--radius-control)}.anonymize-page textarea.form-control,.paper-page textarea.form-control{height:auto}.anonymize-page .btn,.paper-page .btn,.status-bar-actions .btn{min-height:var(--button-height);padding:7px var(--button-padding-x);font:500 var(--button-font-size)/var(--button-line-height) var(--font-sans);border-radius:var(--radius-button);gap:6px}.anonymize-page .btn.btn-sm,.paper-page .btn.btn-sm,.status-bar-actions .btn{min-height:var(--button-compact-height);padding:5px 10px;font-size:13px;border-radius:6px}.anonymize-page .btn-ink,.paper-page .btn-ink{min-height:40px;padding:9px 15px}.btn-hero>i,.btn>.project-type-svg,.btn>.ui-icon,.btn>i{width:16px;height:16px;margin:0!important;flex-shrink:0}.btn.dropdown-toggle::after{margin-left:0}.btn.disabled,.btn:disabled{cursor:not-allowed}.btn.disabled:hover,.btn:disabled:hover{filter:none}.paper-page .btn.btn-link{background:0 0;border-color:transparent}.auth-continue.btn{min-height:44px;padding:11px 16px!important}.anonymize-page .btn.btn-icon,.paper-page .btn.btn-icon{width:32px;height:32px;min-width:32px;min-height:32px;padding:0}.paper-page .btn.btn-icon-dots{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:0;background:0 0;color:var(--ink-muted)}.paper-page .btn-icon-dots:hover{background:var(--accent-soft);color:var(--accent)}.paper-page .btn-group .btn-primary:active,.paper-page .btn-group .btn-primary:hover{background:var(--accent-soft)!important;color:var(--accent)}.paper-page .paper-section-eyebrow{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--color);text-transform:none;letter-spacing:0;margin-bottom:12px}.paper-page .paper-field-label{font-family:var(--font-sans);font-size:13px;letter-spacing:0}.paper-tabs .paper-tab{min-height:44px}.paper-pill,.status-pill{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;border-radius:6px}.paper-meta-rule{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;gap:12px 24px}.paper-meta-rule b:not(.commit-hash){font-family:var(--font-sans);font-weight:500}.connections-grid{gap:16px}.connections-grid>section{background:var(--paper-card);border:1px solid var(--border-color);border-radius:var(--radius-surface);padding:20px}.connections-heading{margin-bottom:24px}.claim-page .claim-form,.status-page>.paper-settings-section{padding:20px;margin-top:24px;border:1px solid var(--border-color);border-radius:var(--radius-surface);background:var(--paper-card)}.claim-page .claim-form{max-width:640px}.status-page .anonymize-submit-bar{background:0 0;gap:8px;flex-wrap:wrap}.anonymize-landing{padding-top:32px}.paper-settings .quota-usage{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.paper-settings .quota-usage .quota-item+.quota-item{padding-top:0;border-top:0;padding-left:16px;border-left:1px solid var(--border-color)}.paper-settings .quota-usage .quota-header{flex-direction:row;align-items:center;flex-wrap:wrap}.paper-settings .quota-usage .quota-value{white-space:normal;flex-wrap:wrap}.paper-faq-hero{padding-bottom:24px;margin-bottom:24px}.paper-faq-eyebrow,.paper-faq-toc-head{font-family:var(--font-sans);font-size:12px;text-transform:none;letter-spacing:0;margin-bottom:8px}.paper-faq-title{font:600 28px/1.2 var(--font-sans);letter-spacing:-.025em;max-width:720px;margin-bottom:12px}.paper-faq-title em{font-style:normal}.paper-faq-lede{font-size:14px}.paper-faq-body{grid-template-columns:180px minmax(0,1fr);gap:40px}.faq-section h4.faq-cat{font:600 18px/1.4 var(--font-sans);padding-bottom:12px}.faq-section h4.faq-cat .ui-icon{display:none}.faq-section .panel-group{margin-bottom:32px}.faq-section .panel-default .panel-title a{font:500 15px/1.5 var(--font-sans);padding:16px 0 16px 28px;min-height:44px}.faq-section .panel-default .panel-title a:after{top:16px}.paper-empty-title{font:600 32px/1.2 var(--font-sans);letter-spacing:-.025em}.paper-empty-title em{font-style:normal}.btn-hero{justify-content:center;gap:8px;min-height:48px;padding:13px 20px;font-size:15px;line-height:20px;background:var(--accent);border-color:var(--accent);color:#fff;border-radius:var(--radius-button)}.dark-mode .btn-hero{color:#1a1815}.btn-hero:hover{background:var(--accent);color:#fff;filter:brightness(.94)}.dark-mode .btn-hero:hover{color:#1a1815}.paper-table:not(.paper-table-dashboard){border-left:0;border-right:0;border-radius:0}.paper-table:not(.paper-table-dashboard) .paper-table-head{border-radius:0}.paper-table .cell-anon{gap:8px}.paper-table .cell-anon .anon-text{flex:1}.paper-table-conferences .cell-anon .repo-name{font-family:var(--font-sans);font-weight:600}.paper-table .anon-sub>a,.paper-table .anon-sub>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.paper-table .anon-sub .ui-icon{width:14px;height:14px}.paper-page .filter-chip{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none;border-radius:6px}.paper-page .filter-chip-close .ui-icon{width:12px;height:12px}.admin-nav{gap:4px;border:0;border-bottom:1px solid var(--border-color);border-radius:0;padding:0 0 8px;background:0 0}.admin-nav a{font-family:var(--font-sans);font-size:13px;letter-spacing:0;text-transform:none;border-radius:6px;min-height:40px;padding:8px 12px}.admin-nav a.active{background:var(--accent-soft);color:var(--accent)}.admin-nav .ui-icon{width:16px;height:16px}.admin-filter-toolbar{background:0 0;border:0;padding:0}.admin-filter-inline>label,.admin-filter-inline>span{font-family:var(--font-sans);text-transform:none;letter-spacing:0}.admin-summary .summary-total{font-family:var(--font-sans);font-size:18px;font-weight:600}.admin-summary .summary-pill{font:500 13px/20px var(--font-sans);min-height:32px;padding:5px 10px;border-radius:6px}.admin-summary .summary-pill.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.admin-summary .summary-pill .count{font-family:var(--font-sans)}.admin-active-chip{font-family:var(--font-sans);font-size:12px}.admin-active-chip button .ui-icon{width:12px;height:12px}.user-detail-card .user-header h2{font:600 20px/1.4 var(--font-sans)}.errors-page .errors-toolbar .select-wrap label,.errors-page .volume-head,.overview-page .ov-panel-meta,.paper-detail-grid .detail-label,.paper-progress .paper-progress-label,.status-page .paper-error-eyebrow,.user-detail-grid .detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.overview-page .ov-chart-title,.overview-page .ov-panel-title,.paper-error-title{font:600 16px/1.4 var(--font-sans)}.paper-error-head>.ui-icon,.paper-ratelimit-head>.ui-icon{margin-top:3px;color:var(--status-error)}.paper-ratelimit-head>.ui-icon{color:var(--status-progress)}.errors-page .seg-tabs{border-radius:var(--radius-control)}.errors-page .seg-tabs button{min-height:36px;padding:7px 12px;font:500 14px/20px var(--font-sans)}.errors-page .seg-tabs button.active{background:var(--accent-soft);color:var(--accent)}.errors-page .errors-list,.errors-page .kpi-card:hover,.errors-page .volume-chart,.overview-page .ov-chart-card,.overview-page .ov-panel-card{box-shadow:none}.errors-page .kpi-value,.overview-page .ov-daily-value,.overview-page .ov-kpi-value,.q-card-count,.user-hero-name{font-family:var(--font-sans);font-size:28px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.errors-page .kpi-label,.overview-page .ov-daily-label,.overview-page .ov-kpi-label,.q-card-name,.q-section-label,.user-hero-details .detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.overview-page .ov-daily-card{background:var(--paper-card);box-shadow:none;border-radius:var(--radius-surface)}.dark-mode .overview-page .ov-daily-value,.overview-page .ov-daily-value{color:var(--accent)}.errors-page .kpi-card,.overview-page .ov-kpi-card{box-shadow:none;border-radius:var(--radius-surface)}.q-card{border-radius:var(--radius-surface)}.q-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.q-range-btns{border-radius:var(--radius-control)}.q-job-detail-actions .btn,.q-range-btns .btn{font-family:var(--font-sans);font-size:13px}.q-range-btns .btn.active{background:var(--accent-soft);color:var(--accent)}@media (max-width:900px){.paper-settings .quota-usage{grid-template-columns:1fr;gap:16px}.paper-settings .quota-usage .quota-item+.quota-item{padding-left:0;border-left:0;border-top:1px solid var(--border-color);padding-top:16px}.paper-table:not(.paper-table-dashboard) .paper-table-row{gap:4px 8px!important;padding:8px 12px}.paper-table:not(.paper-table-dashboard) .cell-anon{flex:1 1 calc(100% - 52px);order:1}.paper-table:not(.paper-table-dashboard) .cell-actions{order:2;flex:0 0 44px}.paper-table .admin-users-row>[role=cell]:first-child,.paper-table.paper-table-repos.has-bulk .paper-table-row>[role=cell]:first-child{flex:0 0 24px;order:0}.paper-table .admin-users-row .cell-anon,.paper-table.paper-table-repos.has-bulk .cell-anon{flex-basis:calc(100% - 84px)}.paper-table:not(.paper-table-dashboard) .cell-anon .anon-sub{font-size:12px;gap:6px}.paper-table:not(.paper-table-dashboard) .cell-status .status-sub{font-size:12px}.paper-table .cell-expires::before,.paper-table .cell-views::before{content:none}.paper-table .cell-expires .mobile-meta-icon,.paper-table .cell-views .mobile-meta-icon{display:inline-block;width:14px;height:14px}.paper-faq-body{grid-template-columns:1fr;gap:24px}}@media (max-width:767px){.paper-faq,.paper-page{padding-top:20px}.paper-settings .paper-account-email .btn[type=submit]{min-height:40px;padding:9px 18px}.anonymize-page .paper-page-title,.paper-faq-title,.paper-page .paper-page-title,.paper-page.admin-page .paper-page-title{font-size:24px}.anonymize-page .form-control,.paper-page .form-control{min-height:44px}.anonymize-page .btn,.connection-link,.draft-discard,.paper-faq-toc a,.paper-page .btn,.paper-settings-toc nav a{min-height:44px}.anonymize-page .btn,.paper-page .btn,.status-bar-actions .btn{min-height:44px;padding:11px 14px;font-size:14px;line-height:20px;white-space:normal}.anonymize-page .btn.btn-sm,.paper-page .btn.btn-sm{min-height:44px;padding:11px 12px;font-size:14px}.anonymize-page .btn.btn-icon,.copy-link-inline,.paper-page .btn.btn-icon,.paper-page .btn.btn-icon-dots,.project-close{width:44px;height:44px;min-width:44px;min-height:44px;padding:0}.dashboard-page .dashboard-filter-row .btn-group .btn,.dashboard-page .dashboard-filter-row .dropdown-toggle{height:auto;min-height:44px;font-size:14px;padding:11px 10px}.dashboard-heading-actions .btn-ink{padding:11px 16px}.dashboard-page .dashboard-filters-toggle{padding:11px 10px}.errors-page .btn-icon,.pr-title-row .btn,.status-bar-actions .btn{min-width:44px;min-height:44px;padding:0}.status-bar-actions .btn{width:44px;height:44px}.errors-page .seg-tabs button,.paper-tab{min-height:44px}.errors-page .seg-tabs button{padding:11px 12px}.status-bar-actions{flex-wrap:wrap;max-width:100%}.leftCol-close,.tree-search-clear{min-width:44px;min-height:44px}.anonymize-landing{padding:20px 18px}.anonymize-landing .repo-access-switch button,.source-url-label-row .repo-access-switch button{min-height:44px;padding:11px 10px;font-size:13px}.paper-settings-body{margin-top:16px;padding-top:0;gap:16px}.paper-settings-toc nav{gap:0 12px}.paper-settings-toc nav a{display:inline-flex;align-items:center}.paper-faq{padding-left:18px;padding-right:18px}.paper-faq-toc nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:0 16px}.paper-faq-toc a{display:inline-flex;align-items:center;padding:8px 0;border-left:0;border-bottom:2px solid transparent;margin-left:0}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover{border-bottom-color:var(--accent);color:var(--accent)}.claim-page .claim-form,.status-page>.paper-settings-section{padding:16px;margin-top:16px}.admin-nav{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:4px;max-width:100%;margin:8px 0 16px}.admin-nav a{flex-shrink:0;min-height:44px}.admin-summary .summary-pill{min-height:44px;padding:11px 12px;font-size:14px}.admin-active-chip button{min-width:44px;min-height:44px}.admin-filter-row{gap:8px}.admin-filter-row .admin-filter-inline{gap:8px;flex-wrap:wrap}.errors-page .kpi-grid{grid-template-columns:1fr 1fr;gap:12px}.q-cards{flex-direction:row}.q-card{min-width:130px}.q-header-actions{flex-wrap:wrap;gap:8px}}.paper-page.container:not(.auth-page){max-width:1180px}.paper-page>.row{margin-left:0;margin-right:0}.paper-page>.row>.w-100,.paper-page>.row>[class*=col]{padding-left:0;padding-right:0}.anonymize-landing{align-items:flex-start}.status-page .paper-support-grid{margin-bottom:0}.explorer-content .ace_editor{font-family:var(--font-mono);line-height:1.6}.dark-mode .explorer-content .ace-nord-dark,.dark-mode .explorer-content .ace-nord-dark .ace_gutter{background:var(--main-bg-color)}.explorer-content .file-content.markdown-body{max-width:960px;padding:32px 40px 96px}.leftCol-project-header .project-name{white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.file-error{font-size:inherit;font-weight:inherit;text-align:left}.file-error-card{width:100%;max-width:520px;margin-top:0}.file-error-msg{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--ink-soft)}.file-error-actions{display:flex;gap:8px;margin-top:16px}.file-error .paper-empty-title{font-size:20px;text-align:center}@media (min-width:992px){.leftCol-foot{padding-bottom:72px}}.explorer-content .ace-chrome,.explorer-content .ace-chrome .ace_gutter{background:var(--main-bg-color)}@media (max-width:991px){.explorer-content .file-content.markdown-body{padding:20px 16px 96px}.anonymize-landing{padding:20px 18px}.anonymize-landing-inner{padding:0}.paper-faq-toc nav,.paper-settings-toc nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.paper-faq-toc nav a,.paper-settings-toc nav a{flex-shrink:0;white-space:nowrap}.paper-faq-body,.paper-settings-body{grid-template-columns:minmax(0,1fr)}.paper-faq-toc,.paper-settings-toc{position:static}.paper-faq-toc nav,.paper-settings-toc nav{display:flex;flex-direction:row;gap:0 16px}.paper-faq-toc nav a,.paper-settings-toc nav a{display:inline-flex;align-items:center;padding:8px 0;margin-left:0;border-left:0;border-bottom:2px solid transparent}.paper-faq-toc nav a.active,.paper-faq-toc nav a:hover,.paper-settings-toc nav a.active,.paper-settings-toc nav a:hover{border-bottom-color:var(--accent)}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle{justify-content:flex-start;gap:6px}.paper-page .dashboard-filter-controls .dropdown .dropdown-toggle::after{margin-left:auto}}@media (max-width:480px){.paper-page .paper-page-lede{display:block;-webkit-line-clamp:unset;overflow:visible}}.navbar .btn-signin,.navbar .btn-signin:hover{background:var(--accent);border-color:var(--accent);color:#fff!important}.dark-mode .navbar .btn-signin,.dark-mode .navbar .btn-signin:hover{color:#1a1815!important}.navbar .btn-signin:hover{filter:brightness(.94)}.paper-progress .paper-progress-bar,.paper-progress.paper-progress-ready .paper-progress-bar{background:var(--accent)}.paper-progress .paper-progress-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.paper-error-eyebrow,.paper-support-card .paper-support-eyebrow{font-family:var(--font-sans);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}.leftCol-foot .last-update{font-family:var(--font-sans);font-size:11px;letter-spacing:0}.paper-proof-venues span{font-family:var(--font-sans);font-size:18px;font-weight:600;letter-spacing:.02em;color:var(--ink-soft)}.markdown-body mark.redaction{background:var(--accent-soft);color:var(--accent);border-radius:3px;padding:0 2px}.ace_marker-layer .ace_redaction{position:absolute;background:var(--accent-soft);border-radius:3px}.leftCol-project-header{flex-wrap:wrap;row-gap:2px}.project-expiry{flex:1 0 100%;display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-muted)}.project-expiry .ui-icon{width:12px;height:12px}.status-bar-actions .btn-icon-only{width:32px;padding:0;justify-content:center}.share-link-row{display:flex;gap:8px;margin-top:4px}.share-link-input{flex:1;min-width:0;font-family:var(--font-mono);font-size:14px;background:var(--paper-bg-alt)}.share-link-row .btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-width:112px;justify-content:center}.share-link-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.share-link-actions .btn{display:inline-flex;align-items:center;gap:6px}.status-page .paper-support-grid{gap:0 32px}.status-page .paper-support-card{padding:16px 0 0;border:0;border-top:1px solid var(--border-color);border-radius:0;background:0 0}.status-page .paper-support-card:hover{border-color:var(--color)}@media (min-width:992px){.paper-table .cell-expires{white-space:nowrap}}.paper-settings .paper-settings-main .paper-settings-section{background:0 0;border:0;border-bottom:1px solid var(--border-color);border-radius:0;padding:0 0 28px;margin-bottom:28px}.paper-settings .paper-settings-main .paper-settings-section:last-of-type{border-bottom:0}@media (max-width:991px){.paper-settings .paper-settings-main .paper-settings-section{padding:0 0 20px;margin-bottom:20px}.share-link-row{flex-direction:column}.share-link-actions{flex-direction:column}.share-link-actions .btn{justify-content:center}.status-page .paper-support-grid{row-gap:20px}}.paper-page .q-range-btns{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card);overflow:visible}.paper-page .q-range-btns .btn,.paper-page .q-range-btns .btn+.btn{min-height:0;height:28px;padding:0 10px;border:0;border-radius:4px;background:0 0;color:var(--ink-muted);font:500 13px/1 var(--font-sans)}.paper-page .q-range-btns .btn:hover{background:var(--hover-bg-color);color:var(--color)}.paper-page .q-range-btns .btn.active{background:var(--accent-soft);color:var(--accent)}.q-header-actions>.btn{height:34px;min-height:34px}.paper-page .btn.btn-danger-soft{background:0 0;border-color:var(--status-error);color:var(--status-error)}.paper-page .btn.btn-danger-soft:hover{background:var(--status-error-soft-hover);border-color:var(--status-error);color:var(--status-error)}.q-auto-refresh,.q-section-label,.q-state-chip{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.q-state-chip{font-size:12px;text-transform:capitalize}.overview-page .ov-ebar-fill{display:block}.paper-table .paper-table-row.repo-error{border-left:0;box-shadow:inset 2px 0 0 var(--status-error);padding-left:16px}.admin-page .q-table th,.admin-page .type-badge,.admin-page .user-detail-section h2,.admin-page section>h2,.admin-page th,.admin-page>h2,.errors-page .col-count,.errors-page .col-mod,.errors-page .col-msg,.errors-page .col-sev,.errors-page .col-status,.errors-page .col-when,.overview-page .ov-chart-legend,.overview-page .ov-ebar-label,.overview-page .ov-route-n,.overview-page .ov-route-name,.q-card-sub,.q-delay-hint,.q-legend-completed,.q-legend-exec,.q-legend-failed,.q-section-right,.q-stat-label,.user-detail-grid .detail-label{font-family:var(--font-sans);letter-spacing:0;text-transform:none}.admin-page th,.errors-page [class^=col-]{font-size:12px;font-weight:500;color:var(--ink-muted)}.q-card-sub,.q-stat-label,.user-detail-grid .detail-label{font-size:12px}.q-stat-value{font-family:var(--font-sans);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.q-state-badge{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:capitalize}.admin-page .type-badge{font-size:12px;text-transform:none}.errors-page .col-sev span,.errors-page .sev-label{text-transform:capitalize}.dark-mode .overview-page .ov-daily-value,.overview-page .ov-daily-value{color:var(--color)}.dark-mode .overview-page .ov-spark-fill-alt,.dark-mode .overview-page .ov-spark-fill-new-user,.dark-mode .overview-page .ov-spark-fill-user,.overview-page .ov-spark-fill-alt,.overview-page .ov-spark-fill-new-user,.overview-page .ov-spark-fill-user{background:var(--accent)}.dark-mode .overview-page .ov-dot-new-user-fill,.dark-mode .overview-page .ov-dot-ok-fill,.dark-mode .overview-page .ov-dot-user-fill,.overview-page .ov-dot-new-user-fill,.overview-page .ov-dot-ok-fill,.overview-page .ov-dot-user-fill{background:var(--accent)}.errors-page .seg-tabs{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border-color);border-radius:var(--radius-control);background:var(--paper-card)}.errors-page .seg-tabs button,.errors-page .seg-tabs button+button{min-height:0;height:30px;padding:0 10px;border:0;border-radius:4px;background:0 0;color:var(--ink-muted);font:500 13px/1 var(--font-sans)}.errors-page .seg-tabs button:hover{background:var(--hover-bg-color);color:var(--color)}.errors-page .seg-tabs button.active{background:var(--accent-soft);color:var(--accent)}.user-detail-card .user-header .status-dot-wrap{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:400;color:var(--ink-soft)}.user-detail-card .user-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-page .paper-table .cell-anon .anon-sub{flex-wrap:wrap;row-gap:2px}.admin-page .paper-table .anon-sub>a,.admin-page .paper-table .anon-sub>span{flex:0 1 auto;max-width:100%;white-space:nowrap}.admin-page .paper-table .cell-views .mobile-meta-icon{margin-right:4px}.q-jobs{overflow-x:auto}.q-job-detail-label{font-family:var(--font-sans);font-size:12px;letter-spacing:0;text-transform:none}.admin-section-header h2{font-family:var(--font-sans);font-size:16px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--color)}.errors-page .sev-label{font-family:var(--font-sans);font-size:13px;letter-spacing:0}.email-prompt{width:min(560px,calc(100vw - 32px));padding:28px;border:1px solid var(--paper-border,#e5e1d9);border-radius:12px;background:var(--paper-bg,#faf9f6);color:inherit;box-shadow:0 16px 64px #0003}.email-prompt::backdrop{background:#0006}.email-prompt h2{margin:0 0 12px;font-size:24px}.email-prompt p{margin-bottom:20px}.email-prompt-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:24px}body.dark-mode .email-prompt{background:#242320;color:#faf9f6}.file-error .viewer-error{width:100%;max-width:65ch;padding:2rem 1rem;overflow-wrap:anywhere;font-size:1rem;font-weight:400;text-align:left}.viewer-error .paper-empty-title{margin-bottom:1rem}.viewer-error p{line-height:1.6}.viewer-error .paper-error-actions{display:flex;flex-wrap:wrap;gap:.75rem}.markdown-body .markdown-alert{margin:1rem 0;padding:.5rem 1rem;border-left:4px solid var(--alert-color,#0969da)}.markdown-body .markdown-alert-note{--alert-color:#0969da}.markdown-body .markdown-alert-tip{--alert-color:#1a7f37}.markdown-body .markdown-alert-important{--alert-color:#8250df}.markdown-body .markdown-alert-warning{--alert-color:#9a6700}.markdown-body .markdown-alert-caution{--alert-color:#cf222e}.markdown-body .markdown-alert-title{color:var(--alert-color);font-weight:600;display:flex;align-items:center;gap:.5rem}.markdown-body .markdown-alert-title svg{fill:currentColor;flex-shrink:0}.markdown-body .markdown-alert>:last-child{margin-bottom:0}body.dark-mode .markdown-alert-note{--alert-color:#79c0ff}body.dark-mode .markdown-alert-tip{--alert-color:#7ee787}body.dark-mode .markdown-alert-important{--alert-color:#d2a8ff}body.dark-mode .markdown-alert-warning{--alert-color:#e3b341}body.dark-mode .markdown-alert-caution{--alert-color:#ff7b72}.markdown-body .emoji{display:inline;vertical-align:text-bottom}.markdown-body .footnotes{margin-top:2rem;border-top:1px solid var(--border-color,#d0d7de);padding-top:1rem;font-size:.875em}.markdown-body .katex-display{overflow-x:auto;overflow-y:hidden;padding:.25rem 0}.markdown-body .markdown-diagram{margin:1rem 0;border:1px solid var(--border-color,#d0d7de);padding:.75rem}.markdown-body .markdown-diagram svg{display:block;width:100%;max-height:360px}.markdown-body .markdown-diagram path{fill:#a7b2ff;fill-opacity:.5;stroke:var(--link-color,#3b4ad6);stroke-width:1;vector-effect:non-scaling-stroke}.markdown-body .diagram-controls{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.markdown-body .diagram-controls button{min-width:44px;min-height:44px;padding:.25rem .75rem;border:1px solid var(--border-color,#d0d7de);background:var(--main-bg-color,#fff);color:inherit;border-radius:4px}.markdown-body .diagram-controls button:hover{background:var(--hover-bg-color,#f6f8fa)}.markdown-body .diagram-controls button:focus-visible{outline:2px solid var(--link-color,#0969da);outline-offset:2px}.markdown-body .hljs-keyword,.markdown-body .hljs-selector-tag{color:#cf222e}.markdown-body .hljs-attr,.markdown-body .hljs-string{color:#0a3069}.markdown-body .hljs-literal,.markdown-body .hljs-number,.markdown-body .hljs-title{color:#8250df}.markdown-body .hljs-comment{color:#57606a}body.dark-mode .markdown-body .hljs-keyword{color:#ff7b72}body.dark-mode .markdown-body .hljs-attr,body.dark-mode .markdown-body .hljs-string{color:#a5d6ff}body.dark-mode .markdown-body .hljs-literal,body.dark-mode .markdown-body .hljs-number,body.dark-mode .markdown-body .hljs-title{color:#d2a8ff}body.dark-mode .markdown-body .hljs-comment{color:#b1bac4}body.dark-mode .markdown-body .gh-light-mode-only,body:not(.dark-mode) .markdown-body .gh-dark-mode-only{display:none}.billing-plan{padding:1.5rem 0;border-bottom:1px solid var(--paper-border,#d8d4cd)}.billing-plan h3{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}.billing-price{font-variant-numeric:tabular-nums;font-weight:400}.billing-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}#settings-billing p{max-width:72ch}.repository-hosting{border-top:1px solid var(--border-color);margin-top:24px}.repository-hosting h2{font-size:1.5rem}.hosting-choices{border:0;padding:0;margin:20px 0;min-width:0}.hosting-choices legend{font-size:1rem;font-weight:600}.hosting-choice{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--border-color);background:var(--paper-card);cursor:pointer}.hosting-choice+.hosting-choice{border-top:0}.hosting-choice input{margin-top:5px;accent-color:var(--accent)}.hosting-choice small,.hosting-choice strong{display:block}.hosting-choice small{margin-top:6px;color:var(--ink-muted)}.hosting-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin:20px 0}.repository-pass{margin:20px 0}.repository-pass summary{cursor:pointer;color:var(--link-color)}.repository-pass p{margin-top:12px}.task-review-active.anonymize-page{height:auto!important;min-height:100%;overflow:visible}.task-review-active .anonymize-workspace{flex:0 0 auto;overflow:visible}.repository-task{width:100%;max-width:1020px;margin:0 auto;padding:32px 24px 42px;color:var(--color);font-size:15px;line-height:1.55}.repository-task .paper-crumbs{margin-bottom:24px}.repository-task h1{font:normal 40px/1.15 'Iowan Old Style',Georgia,serif;margin:8px 0 10px}.repository-task h2{font:normal 27px/1.25 'Iowan Old Style',Georgia,serif;margin:0 0 12px}.repository-task h3{font:600 17px/1.5 var(--font-sans);margin:0 0 10px}.repository-task p{margin:0 0 16px}.task-lede,.task-muted{color:var(--ink-muted)}.task-trail{list-style:none;display:flex;flex-wrap:wrap;gap:24px;margin:30px 0;padding:18px 0;border-bottom:1px solid var(--border-color);color:var(--ink-muted);font-size:13px}.task-trail [aria-current]{color:var(--color);font-weight:600}.task-trail button{color:inherit;padding:0;border:0;background:0 0;font:inherit;cursor:pointer}.task-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(245px,1fr);gap:34px;align-items:start}.task-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.task-text-button{border:0;padding:7px 0;background:0 0;color:var(--link-color);cursor:pointer;font:inherit;text-align:left}.task-text-button:focus-visible,.task-trail button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.task-summary{background:var(--paper-bg-alt);padding:24px;border-radius:5px}.task-summary dt{margin-top:18px;font-size:12px;font-weight:400;color:var(--ink-muted)}.task-summary dd{margin:3px 0;overflow-wrap:anywhere}.task-redactions,.task-summary h3{overflow-wrap:anywhere}.task-summary dl{margin-bottom:0}.task-summary-foot{border-top:1px solid var(--border-color);margin-top:28px;padding-top:24px}.task-summary-foot p{color:var(--ink-muted);margin:0}.task-hosting{border-top:1px solid var(--border-color);margin-top:22px;padding-top:20px}.repository-task .hosting-choices{margin:18px 0}.repository-task .hosting-choice{padding:18px;gap:13px;font-weight:400;margin:0}.repository-task .hosting-choice:first-of-type{border-radius:6px 6px 0 0}.repository-task .hosting-choice:last-of-type{border-radius:0 0 6px 6px}.repository-task .hosting-choice small{margin-top:0;font-size:13px;line-height:1.55}.task-terms{font-size:13px;color:var(--ink-soft)}.task-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:24px 0 16px}.repository-task .btn{padding:10px 16px;border-radius:5px;font-size:15px}.task-status{background:var(--accent-soft);padding:16px 20px;margin:20px 0}.task-status p:last-child{margin:0}@media(max-width:650px){.repository-task{padding:24px 18px}.repository-task h1{font-size:32px}.task-columns{display:block}.task-summary{margin-top:28px}.task-trail{gap:15px;font-size:12px}}.repository-task{scroll-margin-top:70px}.task-columns{align-items:stretch}.repository-task .btn-ink{background:var(--color);border-color:var(--color);color:var(--canvas-bg-color);box-shadow:none}.repository-task .btn-ink:hover{background:var(--ink-soft);border-color:var(--ink-soft)}.task-field{margin-bottom:24px}.task-field>label{display:block;font-weight:600;margin-bottom:8px}.task-field input,.task-field select,.task-field textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:4px;background:var(--paper-card);color:var(--color);font:inherit}.task-field textarea{resize:vertical}.task-field small{display:block;margin-top:8px;font-size:13px;color:var(--ink-muted)}.task-field :is(input,select,textarea):focus-visible{outline:3px solid var(--accent);outline-offset:3px}.task-paybox{background:var(--paper-card);border:1px solid var(--border-color);border-radius:5px;padding:22px;margin-top:20px}.task-ready{border-left:3px solid var(--success,#2f7a44);padding:16px 20px;background:var(--paper-bg-alt);margin-bottom:22px}.repository-task.status-page .paper-progress{margin-top:24px}.task-date-options summary{cursor:pointer;color:var(--link-color);font-size:13px}.task-date-options[open] summary{margin-bottom:12px}.task-result{padding:18px;background:var(--paper-bg-alt);overflow-wrap:anywhere}.task-result .detail-label{font-size:12px;color:var(--ink-muted);margin-bottom:6px}.task-configure-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.task-live-preview{min-width:0;border:1px solid var(--border-color);border-radius:5px;background:var(--paper-card)}.task-preview-head{padding:20px 24px;border-bottom:1px solid var(--border-color)}.task-preview-head h2{font-size:23px;margin-bottom:6px}.task-preview-head p{margin:0;font-size:13px}.task-preview-content,.task-preview-message{padding:24px}.task-preview-content{overflow:auto;max-height:650px;overflow-wrap:anywhere}.repository-task .task-preview-content h1{font:600 28px/1.3 var(--font-sans)}.repository-task .task-preview-content h2{font:600 22px/1.3 var(--font-sans)}@media(max-width:650px){.task-live-preview{margin-top:28px}.task-preview-content{max-height:none}}.anonymize-page .anonymize-topbar{padding:14px 22px;background:var(--canvas-bg-color)}.anonymize-page .anonymize-topbar-inner{max-width:none}.anonymize-page .anonymize-topbar-head{justify-content:space-between}.anonymize-page .anonymize-topbar-title{font:600 19px/1.25 var(--font-sans);margin:0}.anonymize-page .anonymize-split{display:grid;grid-template-columns:minmax(320px,42%) minmax(0,1fr);overflow:hidden}.anonymize-page .anonymize-form-col{width:auto;min-height:0;overflow:hidden!important;background:var(--paper-card)}.anonymize-page .anonymize-form-col .paper-settings-main{display:flex;flex-direction:column;height:100%;min-height:0;max-width:none;padding:0}.anonymize-fields{flex:1;min-height:0;overflow:auto;position:relative;scrollbar-width:thin}.anonymize-page .paper-settings-main .paper-settings-section{border:0;border-top:1px solid var(--border-color);border-radius:0;padding:18px 20px 20px;margin:0;box-shadow:none}.anonymize-page .paper-settings-main .paper-settings-section:first-child{border-top:0;padding-top:18px}.anonymize-page .paper-section-eyebrow{font:600 15px/1.4 var(--font-sans);margin:0 0 16px;letter-spacing:0}.anonymize-page .paper-field-label{font:500 13px/1.5 var(--font-sans);margin-bottom:8px}.anonymize-page .form-group{margin-bottom:16px}.anonymize-page .form-group:last-child{margin-bottom:0}.anonymize-page .form-control{font-size:14px;min-height:40px;padding:9px 10px;border-radius:4px}.anonymize-page textarea.form-control{line-height:1.6}.anonymize-page .form-grid-2{gap:12px}.anonymize-page .form-check{padding-top:10px;padding-bottom:10px;font-size:14px}.anonymize-page .form-check-label{font-size:14px;line-height:1.5}.anonymize-page .form-text{font-size:12px;line-height:1.6}.anonymize-page .repo-access-details{margin:12px 0 16px}.anonymize-page .repo-access-note{font-size:11px}.anonymize-page .anonymize-submit-bar{flex:none;position:static;margin:0;padding:16px 20px;background:var(--paper-card);border-top:1px solid var(--border-color)}.anonymize-page .anonymize-submit-bar .btn{width:100%;font-size:14px;padding:10px 12px;min-height:43px}.checkout-return-note{font-size:11px;line-height:1.5;color:var(--ink-muted);margin:8px 0 0;text-align:center}.anonymize-fields>.alert,.anonymize-fields>.anonymize-review-note,.anonymize-fields>.draft-status{margin:12px 20px}.anonymize-page .anonymize-preview-col{min-height:0;padding:20px;position:relative;background:var(--canvas-bg-color)}.anonymize-page .anonymize-preview-head{border:0;padding:0;min-height:32px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}.anonymize-preview-head button,.anonymize-preview-head strong{font-size:13px}.anonymize-page .anonymize-preview-body{padding:24px;border-radius:6px;min-height:480px;overflow-wrap:anywhere;font:14px/1.7 var(--font-sans)}.anonymize-page .anonymize-preview-body h1{font-size:27px;line-height:1.2;margin:0 0 20px;padding-bottom:14px}.anonymize-page .anonymize-preview-body h2{font-size:18px;margin:28px 0 12px}.anonymize-page .anonymize-preview-body pre{font-size:12px;padding:15px}.anonymize-page.preview-expanded .anonymize-split{grid-template-columns:1fr}.anonymize-page.preview-expanded .anonymize-form-col{display:none}.hosting-usage{font-size:12px;color:var(--ink-muted);margin:0 0 4px}.expiration-choices{border:0;padding:0;margin:0 0 16px;min-width:0}.expiration-choice{display:flex;align-items:flex-start;gap:10px;padding:12px 0;margin:0;cursor:pointer;font-size:14px;font-weight:500;line-height:1.5}.expiration-choice input{width:16px;height:16px;margin:4px 0 0;flex:none;accent-color:var(--accent)}.expiration-choice small{display:block;font-size:12px;font-weight:400;color:var(--ink-muted);margin-top:2px}.dated-options{padding:2px 0 14px 26px}.hosting-date,.hosting-property{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;align-items:center;margin-bottom:10px}.hosting-property{margin-bottom:0}.hosting-date .paper-field-label,.hosting-property label{font-size:12px;font-weight:400;margin:0}.hosting-date .invalid-feedback{grid-column:1/-1}.anonymize-page .conference-field{border-top:1px solid var(--border-color);padding:16px 0;margin:0}.subscription-choice{padding:16px;background:var(--paper-bg-alt);border-radius:6px;margin-top:4px}.subscription-choice h3{font-size:13px;font-weight:600;margin:0 0 10px}.billing-cycle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:0;padding:0;margin:0 0 12px;min-width:0}.cycle-option{display:flex;align-items:center;gap:7px;padding:10px 8px;border:1px solid var(--border-color);border-radius:4px;background:var(--paper-card);font-size:12px;cursor:pointer;margin:0}.cycle-option.selected{border-color:var(--accent);background:var(--accent-soft)}.cycle-option input{accent-color:var(--accent);margin:0;flex:none}.subscription-choice p{font-size:12px;line-height:1.5;margin:0 0 8px}.subscription-choice p:last-child{margin:0}.hosting-terms{font-size:12px;line-height:1.5;color:var(--ink-muted)}.capacity-reason{font-size:13px}.capacity-options,.repository-pass{margin-top:12px;font-size:12px}.capacity-options summary,.repository-pass summary{cursor:pointer}.capacity-options p,.repository-pass p{margin:8px 0}.capacity-options .task-text-button{display:block}@media(max-width:767px){.anonymize-page .anonymize-split{display:block;overflow:visible}.anonymize-page .anonymize-form-col .paper-settings-main{height:auto}.anonymize-fields{overflow:visible}.anonymize-page .paper-settings-main .paper-settings-section{padding:18px 16px 20px}.anonymize-page .anonymize-topbar{padding:14px 16px}.anonymize-page .anonymize-preview-col{padding:16px}.anonymize-page .anonymize-preview-body{padding:20px}.anonymize-page .anonymize-submit-bar{padding:16px}.anonymize-page .preview-expand{display:none}.anonymize-page .anonymize-mobile-tabs{padding:0;gap:0;background:var(--paper-card)}.anonymize-mobile-tabs button{border-radius:0;padding:12px;min-height:44px}.anonymize-mobile-tabs button[aria-selected=true]{background:0 0;box-shadow:inset 0 -2px var(--accent)}.cycle-option{min-height:44px}}.anonymize-page{--font-sans:system-ui,-apple-system,sans-serif;font-family:var(--font-sans)}body:not(.dark-mode) .anonymize-page{--paper-card:#fff;--canvas-bg-color:#faf9f6;--paper-bg-alt:#f5f4f0;--border-color:#dedbd4;--color:#242320;--ink-muted:#68655e}.anonymize-page .repo-access-controls .btn{font-size:12px;padding:8px 12px;min-height:36px}.anonymize-page .form-check-label{font-weight:400}.anonymize-page .form-check{padding-left:26px}.anonymize-page .form-check input{width:16px;height:16px;margin-left:-26px;accent-color:var(--accent)}.anonymize-page .form-check small{margin-top:6px}.anonymize-page .btn.btn-icon.refresh-branches{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:100%;min-height:40px;padding:0}@media (max-width:767px){.anonymize-page #branch,.anonymize-page #commit{min-height:44px}.anonymize-page .btn.btn-icon.refresh-branches{width:44px;min-width:44px;min-height:44px}}.anonymize-page .redaction-syntax{font-size:12px;margin-top:8px}.redaction-syntax summary{cursor:pointer;color:var(--link-color);min-height:28px}.anonymize-page .anonymize-preview-body h2{border:0;padding:0;font-weight:700}.anonymize-page .anonymize-preview-body h1{font-weight:700}.anonymize-page .anonymize-preview-body pre{background:var(--paper-bg-alt);line-height:1.7}.anonymize-page .anonymize-preview-body pre code{font:12px/1.7 ui-monospace,monospace;background:0 0;padding:0}.anonymize-page .anonymize-preview-body{--main-bg-color:var(--paper-card);background:var(--paper-card)}.anonymize-page .anonymize-submit-bar .btn{font-weight:600}.anonymize-page .form-grid-2 .form-group{margin-bottom:0}.anonymize-page .form-check small{margin-left:-26px}.user-settings{max-width:1060px;padding:28px 26px 40px}.user-settings .settings-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:22px}.user-settings .settings-title h1{font:650 26px/1.3 var(--font-sans);letter-spacing:-.025em;margin:0}.settings-title>span{color:var(--ink-muted);font-size:12px}.settings-nav{display:flex;gap:28px;border-bottom:1px solid var(--border-color)}.settings-nav button{border:0;border-radius:0;background:0 0;color:var(--ink-muted);padding:12px 0;min-height:44px;font:13px/1.4 var(--font-sans)}.settings-nav button[aria-current=page]{color:var(--color);font-weight:600;box-shadow:inset 0 -2px var(--accent)}.settings-nav button:hover{color:var(--accent)}.user-settings .settings-scope{color:var(--ink-muted);font-size:12px;margin:20px 0 4px}.user-settings .settings-row{display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;padding:22px 0;border-bottom:1px solid var(--border-color)}.user-settings .settings-label,.user-settings .settings-row>h2{font-size:13px;font-weight:600;line-height:1.5;margin:8px 0 0;display:block}.user-settings .settings-help{font-size:12px;color:var(--ink-muted);margin:7px 0 0;line-height:1.6}.user-settings .form-control{font-size:14px;min-height:40px;padding:9px 10px;border-radius:4px;background:var(--paper-card)}.user-settings textarea.form-control{line-height:1.6}.settings-syntax{font-size:12px;margin-top:8px}.settings-syntax summary{cursor:pointer;color:var(--link-color);min-height:26px}.settings-syntax p{margin:8px 0}.settings-checks{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;padding:4px 0;margin-bottom:12px}.user-settings .settings-check{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:400;margin:0}.user-settings .settings-check .form-check-input{position:static;width:16px;height:16px;margin:0;flex:none;accent-color:var(--accent)}.settings-save{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 0 22px}.settings-save-status{color:var(--ink-muted);font-size:12px}.settings-save #save{margin-left:auto;min-width:125px}.settings-save-error{color:var(--status-error);flex-basis:100%}.user-settings .settings-inline{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.user-settings .btn{font-size:13px;min-height:40px;padding:9px 13px}.settings-inline .btn{flex-shrink:0}.user-settings #settings-quota{margin:22px 0 16px}.user-settings .quota-row{gap:20px}.user-settings .quota-item{padding:0;background:0 0;border:0}.user-settings .quota-label{font-size:12px}.user-settings .quota-value{font-size:13px;margin:6px 0}.user-settings .quota-value strong{font-size:14px}.user-settings .quota-percent,.user-settings .quota-remaining{font-size:11px}.user-settings .settings-plan{background:var(--paper-card);border:1px solid var(--border-color);border-radius:6px;padding:20px;margin:20px 0 0}.user-settings .settings-plan h3{font-size:15px;margin:0 0 10px}.user-settings .settings-plan>p{font-size:13px}.settings-cycles{display:flex;flex-wrap:wrap;gap:10px;border:0;padding:0;margin:16px 0}.settings-cycles label{display:flex;align-items:center;gap:8px;border:1px solid var(--border-color);background:var(--paper-card);border-radius:5px;padding:12px;font-size:13px;margin:0;cursor:pointer;flex:1}.settings-cycles label.selected{border-color:var(--accent);background:var(--accent-soft)}.settings-cycles input{accent-color:var(--accent)}.settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.settings-notice{background:var(--paper-bg-alt);border:1px solid var(--border-color);border-radius:5px;padding:14px 16px;margin:16px 0;font-size:13px}.settings-notice p{margin:6px 0 12px}.settings-text-button{border:0;background:0 0;color:var(--link-color);padding:8px 0;font-size:12px}.settings-pass{margin-top:18px}.settings-pass label{display:block;font-size:13px;margin-bottom:8px}.settings-pass .btn{margin-top:12px}.settings-purchase{padding:12px 0;border-bottom:1px solid var(--border-color);font-size:13px;overflow-wrap:anywhere}.settings-purchase:last-child{border:0}.settings-purchase>span{display:block;color:var(--ink-muted);margin-top:4px}.user-settings .paper-account-card{padding:24px 0;border:0;background:0 0}.user-settings .paper-danger-zone{margin-top:24px}@media (max-width:767px){.user-settings{padding:22px 18px 90px}.user-settings .settings-row{grid-template-columns:1fr;gap:12px;padding:20px 0}.user-settings .settings-label,.user-settings .settings-row>h2{margin-top:0}.settings-nav{gap:18px;justify-content:space-between}.settings-nav button{text-align:left;font-size:12px;max-width:124px}.user-settings .settings-check{font-size:12px;min-height:28px}.settings-save{gap:8px}.settings-save-status{font-size:11px}.settings-save #save{min-width:120px}.user-settings .quota-row{grid-template-columns:1fr}.settings-cycles label{flex-basis:100%}}.user-settings .settings-save .draft-status{margin:0;padding:0}.settings-delete-confirm{max-width:480px;margin-top:18px}.settings-delete-confirm label{display:block;font-size:13px;margin-bottom:8px}.user-settings .quota-usage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.user-settings .quota-usage .quota-item+.quota-item{border:0;padding:0}.user-settings .quota-percent,.user-settings .quota-remaining{display:none}@media (max-width:767px){.user-settings .quota-usage{grid-template-columns:1fr}}.settings-header-actions{display:flex;align-items:center;gap:16px}.settings-header-actions>span{color:var(--ink-muted);font-size:12px}.user-settings .settings-upgrade{color:var(--accent);border-color:var(--accent);background:0 0}.user-settings .settings-comparison{width:100%;table-layout:fixed;margin:16px 0 20px;font-size:12px}.settings-comparison td,.settings-comparison th{padding:10px 8px;border-bottom:1px solid var(--border-color);text-align:left;overflow-wrap:anywhere;vertical-align:top}.settings-comparison th:first-child{width:42%;padding-left:0}.settings-comparison tbody th{font-weight:400}.settings-comparison thead th{font-weight:600}@media(max-width:580px){.settings-header-actions>span{display:none}.settings-header-actions{gap:8px}.user-settings .settings-comparison{font-size:11px}}.navbar .nav-link.nav-upgrade{border:1px solid var(--accent);border-radius:5px;color:var(--accent)!important;padding:7px 12px!important;margin-right:12px;font-size:12px;line-height:1.5}.navbar .nav-link.nav-upgrade:hover{background:var(--accent-soft)}@media(max-width:991px){.navbar .nav-link.nav-upgrade{display:inline-block;min-height:44px;padding:11px 14px!important;margin:8px 0}}@media (max-width:600px){.ov-cache .ov-performance-window{display:grid;grid-template-columns:auto minmax(0,1fr);width:100%}.ov-cache .ov-performance-window select{width:100%;min-width:0}} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css index 76755c8..a7c27ef 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -385,8 +385,6 @@ a:hover { padding: 0; } .navbar .nav-support-label { display: none; } - [class*="floatingchat-container-wrap"], - iframe.floatingchat-container { display: none !important; } } .navbar .user-chip { @@ -2808,12 +2806,6 @@ code { margin-bottom: 2px; } - /* Ko-fi widget hidden on mobile */ - .floatingchat-container-wrap { - display: none !important; - } - - /* ---- Anonymize page mobile ---- */ .anonymize-landing { @@ -8155,13 +8147,6 @@ body:not(.dark-mode) .anonymize-page { --paper-card: #fff; --canvas-bg-color: #f .anonymize-page .anonymize-submit-bar .btn { font-weight: 600; } .anonymize-page .form-grid-2 .form-group { margin-bottom: 0; } .anonymize-page .form-check small { margin-left: -26px; } -/* Reserve the widget's bottom-left space without moving or hiding donations. */ -@media (min-width: 992px) { - body:has([class*="floatingchat-container-wrap"]) .anonymize-page .anonymize-submit-bar { - padding-left: 228px; - } -} - /* User settings: one sheet, with labels aligned beside their controls. */ .user-settings { max-width: 1060px; padding: 28px 26px 40px; } .user-settings .settings-title { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 22px; } diff --git a/public/index.html b/public/index.html index 232fada..df53416 100644 --- a/public/index.html +++ b/public/index.html @@ -73,25 +73,5 @@ }; - diff --git a/public/script/app.js b/public/script/app.js index 908b17a..66c8147 100644 --- a/public/script/app.js +++ b/public/script/app.js @@ -162,11 +162,6 @@ export const mainController = function (state, http, location, timeout) { document.head.append(link); $(`link[href='${darkPrismLink}']`).remove(); } - const kofiBtn = document.querySelector("[class*='floatingchat-container-wrap'] [class*='floating-chat-kofi-text-container-wrap']"); - if (kofiBtn) { - kofiBtn.style.backgroundColor = on ? "#34312C" : "#1A1815"; - kofiBtn.style.color = "#FAF9F6"; - } state.emit("dark-mode", on); }; diff --git a/public/script/vendor.min.js b/public/script/vendor.min.js index 27a90a9..3b25206 100644 --- a/public/script/vendor.min.js +++ b/public/script/vendor.min.js @@ -1,30 +1,30 @@ -"use strict";(()=>{var Sd=Object.defineProperty;var _d=(e,t)=>{for(var o in t)Sd(e,o,{get:t[o],enumerable:!0})};var ce=["abap","abc","actionscript","ada","alda","apache_conf","apex","applescript","aql","asciidoc","asl","assembly_x86","autohotkey","batchfile","c9search","c_cpp","cirru","clojure","cobol","coffee","coldfusion","crystal","csharp","csound_document","csound_orchestra","csound_score","csp","css","curly","d","dart","diff","django","dockerfile","dot","drools","edifact","eiffel","ejs","elixir","elm","erlang","forth","fortran","fsharp","fsl","ftl","gcode","gherkin","gitignore","glsl","gobstones","golang","graphqlschema","groovy","haml","handlebars","haskell","haskell_cabal","haxe","hjson","html","html_elixir","html_ruby","ini","io","jack","jade","java","javascript","json","json5","jsoniq","jsp","jssm","jsx","julia","kotlin","latex","less","liquid","lisp","livescript","logiql","logtalk","lsl","lua","luapage","lucene","makefile","markdown","mask","matlab","maze","mediawiki","mel","mixal","mushcode","mysql","nginx","nim","nix","nsis","nunjucks","objectivec","ocaml","pascal","perl","perl6","pgsql","php","php_laravel_blade","pig","plain_text","powershell","praat","prisma","prolog","properties","protobuf","puppet","python","qml","r","razor","rdoc","red","redshift","rhtml","rst","ruby","rust","sass","scad","scala","scheme","scss","sh","sjs","slim","smarty","snippets","soy_template","space","sparql","sql","sqlserver","stylus","svg","swift","tcl","terraform","tex","text","textile","toml","tsx","turtle","twig","typescript","vala","vbscript","velocity","verilog","vhdl","visualforce","wollok","xml","xquery","yaml","zeek"];var pe={markdown:"/script/markdown.6c8dfb7b1d.min.js",notebook:"/script/notebook.c3144c18ae.min.js",org:"/script/org.f61f262915.min.js",pdf:"/script/pdf.4d9cc6ff49.min.js",editor:"/script/editor.4f142d3adc.min.js"};function Ei(e){let t=e.location.hash.slice(1);if(e.history.replaceState(null,"","/review-link"),t.length>2048)return null;let o=new URLSearchParams(t);if([...o.keys()].length!==3||[...o.keys()].some(a=>!["clientId","intentId","token"].includes(a)))return null;let i=o.get("clientId"),s=o.get("intentId"),r=o.get("token");return!/^[a-f0-9]{32}$/.test(i||"")||!/^[a-f0-9]{32}$/.test(s||"")||!/^[a-f0-9]{64}$/.test(r||"")?null:{contract:"4open.artifacts/1",clientId:i,intentId:s,token:r}}function Ci(e,t){let{http:o,promises:i,window:s}=t,r=t.takeReviewHandoff(),a=r?{clientId:r.clientId,intentId:r.intentId}:null,c,f,g,y,b,h=!0,E,_=i.defer(),m=()=>[...s.crypto.getRandomValues(new Uint8Array(16))].map(U=>U.toString(16).padStart(2,"0")).join("");Object.assign(e,{repositoryId:"",handoffEnabled:!1,busy:!1,preview:null,acceptAccess:!1,acceptRetention:!1,uncertain:!1,saved:!1,expired:!1,error:r?"":"Open a new artifact link from your submission. This link is missing or invalid."});let C=()=>h&&e.user?.username===b;function N(){h=!1,r=c=f=void 0,_.resolve(),s.clearTimeout(E)}e.on("dispose",N),e.on("routeLeave",N),e.watch(()=>e.user?.username,U=>{!b&&U?b=U:b&&U!==b&&(N(),e.preview=null,e.repositoryId="",e.busy=!1,e.saved=!1,e.handoffEnabled=!1,e.error="Your account changed. Open a new artifact link from your submission.")});let A=()=>({timeout:_.promise,headers:{"Content-Type":"application/json","X-Review-CSRF":f}}),M=U=>U?.status===404?"Artifact linking is not available on this server.":U?.status===401?"Sign in, then open a new artifact link from your submission.":U?.status===403?"This account cannot approve this repository or this link.":"The request could not be completed. You can retry from this page.";e.loadPreview=async()=>{if(!h||!r||e.busy||e.uncertain||e.saved||!e.user?.username)return;b=e.user.username;let U=e.repositoryId.trim();if(!/^[A-Za-z0-9_-]{3,128}$/.test(U)){e.error="Enter the anonymous repository ID from its URL.";return}e.busy=!0,e.error="",e.preview=null,c=void 0,e.acceptAccess=e.acceptRetention=!1,e.expired=!1,s.clearTimeout(E),y||(y=m());try{let q=(await o.get("/api/review-consent/csrf",{timeout:_.promise})).data;if(!C())return;if(f=q.csrf,e.handoffEnabled=q.handoffEnabled===!0,!/^[a-f0-9]{64}$/.test(f||""))throw new Error("invalid_csrf");let B=(await o.post("/api/review-consent/preview",{repositoryId:U,intent:{...r,requestId:y}},A())).data;if(!C())return;if(!B||typeof B.ticket!="string"||!B.ticket||B.ticket.length>8192||typeof B.repositoryName!="string"||!["restricted-review","anonymous-link"].includes(B.policy?.access)||!Number.isSafeInteger(B.policy.version)||!Number.isFinite(Date.parse(B.policy.retainUntil))||!Number.isFinite(Date.parse(B.expiresAt))||Date.parse(B.expiresAt)<=Date.now()||Date.parse(B.expiresAt)>Date.now()+6e5)throw new Error("invalid_preview");c=B.ticket,g=m(),e.preview={repositoryName:B.repositoryName,policy:{...B.policy},expiresAt:B.expiresAt},E=s.setTimeout(()=>{h&&(e.expired=!0)},Math.max(0,Date.parse(B.expiresAt)-Date.now()))}catch(q){C()&&(e.error=M(q))}finally{C()&&(e.busy=!1)}},e.confirmConsent=async()=>{if(!(!C()||e.busy||e.saved||!c||!e.acceptAccess||!e.acceptRetention)){if(Date.parse(e.preview.expiresAt)<=Date.now()){e.expired=!0;return}e.busy=!0,e.error="";try{let U=(await o.post("/api/review-consent/confirm",{ticket:c,requestId:g,acceptAccess:!0,acceptRetention:!0},A())).data;if(!C())return;if(U?.requestId!==g||!Number.isFinite(Date.parse(U.confirmedAt)))throw new Error("invalid_receipt");e.saved=!0,e.uncertain=!1,r=void 0,e.handoffEnabled||(c=void 0)}catch{C()&&(e.uncertain=!0,e.error="The confirmation was not verified. Retry with the same approval, or return to your submission to check its status.")}finally{C()&&(e.busy=!1)}}},e.continueReview=async()=>{if(!C()||e.busy||!e.saved||!e.handoffEnabled||!c||!a)return;e.busy=!0,e.error="";let U,q=()=>{U?.remove(),s.removeEventListener("securitypolicyviolation",B)},B=oe=>{oe.violatedDirective?.startsWith("form-action")&&(q(),C()&&(e.busy=!1,e.error="The return address was blocked. Return to your submission to check the artifact status."))};try{let oe=(await o.post("/api/review-consent/handoff",{ticket:c},A())).data;if(!C())return;let ee=oe?.completion,R=new URL(oe?.callbackUrl);if(!ee||Object.keys(ee).sort().join(",")!=="clientId,code,contract,expiresAt,intentId"||ee.contract!=="4open.artifacts/1"||ee.clientId!==a.clientId||ee.intentId!==a.intentId||!/^[a-f0-9]{64}$/.test(ee.code||"")||!Number.isFinite(Date.parse(ee.expiresAt))||Date.parse(ee.expiresAt)<=Date.now()||Date.parse(ee.expiresAt)>Date.now()+3e5||R.protocol!=="https:"||R.href!==oe.callbackUrl||R.username||R.password||oe.callbackUrl.includes("?")||oe.callbackUrl.includes("#"))throw new Error("invalid_handoff");U=s.document.createElement("form"),U.method="POST",U.action=R.href;let j=s.document.createElement("input");j.type="hidden",j.name="completion",j.value=JSON.stringify(ee),U.appendChild(j),s.document.body.appendChild(U),s.addEventListener("securitypolicyviolation",B),e.on("dispose",q),U.submit()}catch{q(),C()&&(e.busy=!1,e.error="The return to review could not be prepared. Retry from this page, or return to your submission to check its status.")}}}var yo=new Map,Dd=pe;function nn(e){if(!yo.has(e)){let t=document.createElement("script");t.src=Dd[e];let o=new Promise((i,s)=>{t.onload=i,t.onerror=()=>{yo.delete(e),t.remove(),s(new Error(`Unable to load ${e}. Please retry.`))}});yo.set(e,o),document.head.appendChild(t)}return yo.get(e)}async function Si(){await nn("editor"),ace.config.set("basePath","/script/external/ace/")}function gn(e){let t=Object.create(null);for(let o of e.split(","))t[o]=1;return o=>o in t}var Pe={},xt=[],rt=()=>{},ps=()=>!1,yn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),bn=e=>e.startsWith("onUpdate:"),je=Object.assign,qn=(e,t)=>{let o=e.indexOf(t);o>-1&&e.splice(o,1)},Td=Object.prototype.hasOwnProperty,Ne=(e,t)=>Td.call(e,t),he=Array.isArray,zt=e=>Mn(e)==="[object Map]",Ct=e=>Mn(e)==="[object Set]",_i=e=>Mn(e)==="[object Date]";var ye=e=>typeof e=="function",Le=e=>typeof e=="string",ft=e=>typeof e=="symbol",De=e=>e!==null&&typeof e=="object",fs=e=>(De(e)||ye(e))&&ye(e.then)&&ye(e.catch),Ti=Object.prototype.toString,Mn=e=>Ti.call(e),hs=e=>Mn(e).slice(8,-1),bo=e=>Mn(e)==="[object Object]",wo=e=>Le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,wn=gn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var ko=e=>{let t=Object.create(null);return(o=>t[o]||(t[o]=e(o)))},Ad=/-\w/g,Je=ko(e=>e.replace(Ad,t=>t.slice(1).toUpperCase())),Od=/\B([A-Z])/g,Ot=ko(e=>e.replace(Od,"-$1").toLowerCase()),on=ko(e=>e.charAt(0).toUpperCase()+e.slice(1)),Un=ko(e=>e?`on${on(e)}`:""),gt=(e,t)=>!Object.is(e,t),kn=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:o})},En=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var Ni,$n=()=>Ni||(Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function qe(e){if(he(e)){let t={};for(let o=0;oo.startsWith("/*")?"":o).split(Pd).forEach(o=>{if(o){let i=o.split(Id);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function P(e){let t="";if(Le(e))t=e;else if(he(e))for(let o=0;oSt(o,t))}var Pi=e=>!!(e&&e.__v_isRef===!0),u=e=>Le(e)?e:e==null?"":he(e)||De(e)&&(e.toString===Ti||!ye(e.toString))?Pi(e)?u(e.value):JSON.stringify(e,Ii,2):String(e),Ii=(e,t)=>Pi(t)?Ii(e,t.value):zt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[i,s],r)=>(o[cs(i,r)+" =>"]=s,o),{})}:Ct(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>cs(o))}:ft(t)?cs(t):De(t)&&!he(t)&&!bo(t)?String(t):t,cs=(e,t="")=>{var o;return ft(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};function Ld(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Qe,Hn=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Qe&&(Qe.active?(this.parent=Qe,this.index=(Qe.scopes||(Qe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){let i=this.scopes.slice();for(t=0,o=i.length;t0&&--this._on===0){if(Qe===this)Qe=this.prevScope;else{let t=Qe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,i;for(o=0,i=this.effects.length;o0)return;if(Bn){let t=Bn;for(Bn=void 0;t;){let o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Fn;){let t=Fn;for(Fn=void 0;t;){let o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=o}}if(e)throw e}function Fi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Bi(e){let t,o=e.depsTail,i=o;for(;i;){let s=i.prevDep;i.version===-1?(i===o&&(o=s),Ds(i),Fd(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=s}e.deps=t,e.depsTail=o}function ys(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Hi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Hi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===zn)||(e.globalVersion=zn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ys(e))))return;e.flags|=2;let t=e.dep,o=$e,i=_t;$e=e,_t=!0;try{Fi(e);let s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{$e=o,_t=i,Bi(e),e.flags&=-3}}function Ds(e,t=!1){let{dep:o,prevSub:i,nextSub:s}=e;if(i&&(i.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=i,e.nextSub=void 0),o.subs===e&&(o.subs=i,!i&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)Ds(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Fd(e){let{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}var _t=!0,zi=[];function Nt(){zi.push(_t),_t=!1}function Rt(){let e=zi.pop();_t=e===void 0?!0:e}function Vi(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let o=$e;$e=void 0;try{t()}finally{$e=o}}}var zn=0,bs=class{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},jn=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!$e||!_t||$e===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==$e)o=this.activeLink=new bs($e,this),$e.deps?(o.prevDep=$e.depsTail,$e.depsTail.nextDep=o,$e.depsTail=o):$e.deps=$e.depsTail=o,ji(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){let i=o.nextDep;i.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=i),o.prevDep=$e.depsTail,o.nextDep=void 0,$e.depsTail.nextDep=o,$e.depsTail=o,$e.deps===o&&($e.deps=i)}return o}trigger(t){this.version++,zn++,this.notify(t)}notify(t){Ns();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Rs()}}};function ji(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)ji(i)}let o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}var ws=new WeakMap,rn=Symbol(""),ks=Symbol(""),Gn=Symbol("");function xe(e,t,o){if(_t&&$e){let i=ws.get(e);i||ws.set(e,i=new Map);let s=i.get(o);s||(i.set(o,s=new jn),s.map=i,s.key=o),s.track()}}function It(e,t,o,i,s,r){let a=ws.get(e);if(!a){zn++;return}let c=f=>{f&&f.trigger()};if(Ns(),t==="clear")a.forEach(c);else{let f=he(e),g=f&&wo(o);if(f&&o==="length"){let y=Number(i);a.forEach((b,h)=>{(h==="length"||h===Gn||!ft(h)&&h>=y)&&c(b)})}else switch((o!==void 0||a.has(void 0))&&c(a.get(o)),g&&c(a.get(Gn)),t){case"add":f?g&&c(a.get("length")):(c(a.get(rn)),zt(e)&&c(a.get(ks)));break;case"delete":f||(c(a.get(rn)),zt(e)&&c(a.get(ks)));break;case"set":zt(e)&&c(a.get(rn));break}}Rs()}function Cn(e){let t=Re(e);return t===e||(xe(t,"iterate",Gn),at(e))?t:yt(e)?qt(e)?t.map(o=>Gt(ht(o))):t.map(Gt):t.map(ht)}function Kn(e){return xe(e=Re(e),"iterate",Gn),e}function Pt(e,t){return yt(e)?Gt(qt(e)?ht(t):t):ht(t)}var Bd={__proto__:null,[Symbol.iterator](){return vs(this,Symbol.iterator,e=>Pt(this,e))},concat(...e){return Cn(this).concat(...e.map(t=>he(t)?Cn(t):t))},entries(){return vs(this,"entries",e=>(e[1]=Pt(this,e[1]),e))},every(e,t){return jt(this,"every",e,t,void 0,arguments)},filter(e,t){return jt(this,"filter",e,t,o=>o.map(i=>Pt(this,i)),arguments)},find(e,t){return jt(this,"find",e,t,o=>Pt(this,o),arguments)},findIndex(e,t){return jt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return jt(this,"findLast",e,t,o=>Pt(this,o),arguments)},findLastIndex(e,t){return jt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return jt(this,"forEach",e,t,void 0,arguments)},includes(...e){return gs(this,"includes",e)},indexOf(...e){return gs(this,"indexOf",e)},join(e){return Cn(this).join(e)},lastIndexOf(...e){return gs(this,"lastIndexOf",e)},map(e,t){return jt(this,"map",e,t,void 0,arguments)},pop(){return Ln(this,"pop")},push(...e){return Ln(this,"push",e)},reduce(e,...t){return Mi(this,"reduce",e,t)},reduceRight(e,...t){return Mi(this,"reduceRight",e,t)},shift(){return Ln(this,"shift")},some(e,t){return jt(this,"some",e,t,void 0,arguments)},splice(...e){return Ln(this,"splice",e)},toReversed(){return Cn(this).toReversed()},toSorted(e){return Cn(this).toSorted(e)},toSpliced(...e){return Cn(this).toSpliced(...e)},unshift(...e){return Ln(this,"unshift",e)},values(){return vs(this,"values",e=>Pt(this,e))}};function vs(e,t,o){let i=Kn(e),s=i[t],r=s.call(i);if(i!==e&&!at(e)){if(r[Symbol.toStringTag]==="Array Iterator"){let a=Object.create(Object.getPrototypeOf(r));return a.next=()=>qi(r.next(),o),s!==Gi[t]&&Object.defineProperties(a,{return:{get(){let c=r.return;return typeof c=="function"?c.bind(r):c}},throw:{get(){let c=r.throw;return typeof c=="function"?c.bind(r):c}}}),a}r._next=r.next,r.next=()=>qi(r._next(),o)}return r}function qi(e,t){return e.done||(e.value=t(e.value)),e}var Gi=Array.prototype;function jt(e,t,o,i,s,r){let a=Kn(e),c=a!==e&&!at(e),f=a[t];if(f!==Gi[t]){let b=f.apply(e,r);return c?ht(b):b}let g=o;a!==e&&(c?g=function(b,h){return o.call(this,Pt(e,b),h,e)}:o.length>2&&(g=function(b,h){return o.call(this,b,h,e)}));let y=f.call(a,g,i);return c&&s?s(y):y}function Mi(e,t,o,i){let s=Kn(e),r=s!==e&&!at(e),a=o,c=!1;s!==e&&(r?(c=i.length===0,a=function(g,y,b){return c&&(c=!1,g=Pt(e,g)),o.call(this,g,Pt(e,y),b,e)}):o.length>3&&(a=function(g,y,b){return o.call(this,g,y,b,e)}));let f=s[t](a,...i);return c?Pt(e,f):f}function gs(e,t,o){let i=Re(e);xe(i,"iterate",Gn);let s=i[t](...o);return(s===-1||s===!1)&&Jn(o[0])?(o[0]=Re(o[0]),i[t](...o)):s}function Ln(e,t,o=[]){Nt(),Ns();let i=Re(e)[t].apply(e,o);return Rs(),Rt(),i}var Hd=gn("__proto__,__v_isRef,__isVue"),Wi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ft));function zd(e){ft(e)||(e=String(e));let t=Re(this);return xe(t,"has",e),t.hasOwnProperty(e)}var Do=class{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,i){if(o==="__v_skip")return t.__v_skip;let s=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!s;if(o==="__v_isReadonly")return s;if(o==="__v_isShallow")return r;if(o==="__v_raw")return i===(s?r?Zd:Ji:r?Yi:Ki).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;let a=he(t);if(!s){let f;if(a&&(f=Bd[o]))return f;if(o==="hasOwnProperty")return zd}let c=Reflect.get(t,o,Ze(t)?t:i);if((ft(o)?Wi.has(o):Hd(o))||(s||xe(t,"get",o),r))return c;if(Ze(c)){let f=a&&wo(o)?c:c.value;return s&&De(f)?Ao(f):f}return De(c)?s?Ao(c):Fe(c):c}},To=class extends Do{constructor(t=!1){super(!1,t)}set(t,o,i,s){let r=t[o],a=he(t)&&wo(o);if(!this._isShallow){let g=yt(r);if(!at(i)&&!yt(i)&&(r=Re(r),i=Re(i)),!a&&Ze(r)&&!Ze(i))return g||(r.value=i),!0}let c=a?Number(o)e,_o=e=>Reflect.getPrototypeOf(e);function Kd(e,t,o){return function(...i){let s=this.__v_raw,r=Re(s),a=zt(r),c=e==="entries"||e===Symbol.iterator&&a,f=e==="keys"&&a,g=s[e](...i),y=o?Cs:t?Gt:ht;return!t&&xe(r,"iterate",f?ks:rn),je(Object.create(g),{next(){let{value:b,done:h}=g.next();return h?{value:b,done:h}:{value:c?[y(b[0]),y(b[1])]:y(b),done:h}}})}}function No(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Yd(e,t){let o={get(s){let r=this.__v_raw,a=Re(r),c=Re(s);e||(gt(s,c)&&xe(a,"get",s),xe(a,"get",c));let{has:f}=_o(a),g=t?Cs:e?Gt:ht;if(f.call(a,s))return g(r.get(s));if(f.call(a,c))return g(r.get(c));r!==a&&r.get(s)},get size(){let s=this.__v_raw;return!e&&xe(Re(s),"iterate",rn),s.size},has(s){let r=this.__v_raw,a=Re(r),c=Re(s);return e||(gt(s,c)&&xe(a,"has",s),xe(a,"has",c)),s===c?r.has(s):r.has(s)||r.has(c)},forEach(s,r){let a=this,c=a.__v_raw,f=Re(c),g=t?Cs:e?Gt:ht;return!e&&xe(f,"iterate",rn),c.forEach((y,b)=>s.call(r,g(y),g(b),a))}};return je(o,e?{add:No("add"),set:No("set"),delete:No("delete"),clear:No("clear")}:{add(s){let r=Re(this),a=_o(r),c=Re(s),f=!t&&!at(s)&&!yt(s)?c:s;return a.has.call(r,f)||gt(s,f)&&a.has.call(r,s)||gt(c,f)&&a.has.call(r,c)||(r.add(f),It(r,"add",f,f)),this},set(s,r){!t&&!at(r)&&!yt(r)&&(r=Re(r));let a=Re(this),{has:c,get:f}=_o(a),g=c.call(a,s);g||(s=Re(s),g=c.call(a,s));let y=f.call(a,s);return a.set(s,r),g?gt(r,y)&&It(a,"set",s,r,y):It(a,"add",s,r),this},delete(s){let r=Re(this),{has:a,get:c}=_o(r),f=a.call(r,s);f||(s=Re(s),f=a.call(r,s));let g=c?c.call(r,s):void 0,y=r.delete(s);return f&&It(r,"delete",s,void 0,g),y},clear(){let s=Re(this),r=s.size!==0,a=void 0,c=s.clear();return r&&It(s,"clear",void 0,void 0,a),c}}),["keys","values","entries",Symbol.iterator].forEach(s=>{o[s]=Kd(s,e,t)}),o}function Ts(e,t){let o=Yd(e,t);return(i,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_isShallow"?t:s==="__v_raw"?i:Reflect.get(Ne(o,s)&&s in i?o:i,s,r)}var Jd={get:Ts(!1,!1)},Qd={get:Ts(!1,!0)},Xd={get:Ts(!0,!1)};var Ki=new WeakMap,Yi=new WeakMap,Ji=new WeakMap,Zd=new WeakMap;function xd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fe(e){return yt(e)?e:As(e,!1,jd,Jd,Ki)}function Yn(e){return As(e,!1,Wd,Qd,Yi)}function Ao(e){return As(e,!0,Gd,Xd,Ji)}function As(e,t,o,i,s){if(!De(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let r=s.get(e);if(r)return r;let a=xd(hs(e));if(a===0)return e;let c=new Proxy(e,a===2?i:o);return s.set(e,c),c}function qt(e){return yt(e)?qt(e.__v_raw):!!(e&&e.__v_isReactive)}function yt(e){return!!(e&&e.__v_isReadonly)}function at(e){return!!(e&&e.__v_isShallow)}function Jn(e){return e?!!e.__v_raw:!1}function Re(e){let t=e&&e.__v_raw;return t?Re(t):e}function Os(e){return!Ne(e,"__v_skip")&&Object.isExtensible(e)&&Eo(e,"__v_skip",!0),e}var ht=e=>De(e)?Fe(e):e,Gt=e=>De(e)?Ao(e):e;function Ze(e){return e?e.__v_isRef===!0:!1}function et(e){return Qi(e,!1)}function Po(e){return Qi(e,!0)}function Qi(e,t){return Ze(e)?e:new Ss(e,t)}var Ss=class{constructor(t,o){this.dep=new jn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Re(t),this._value=o?t:ht(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){let o=this._rawValue,i=this.__v_isShallow||at(t)||yt(t);t=i?t:Re(t),gt(t,o)&&(this._rawValue=t,this._value=i?t:ht(t),this.dep.trigger())}};function Wt(e){return Ze(e)?e.value:e}var eu={get:(e,t,o)=>t==="__v_raw"?e:Wt(Reflect.get(e,t,o)),set:(e,t,o,i)=>{let s=e[t];return Ze(s)&&!Ze(o)?(s.value=o,!0):Reflect.set(e,t,o,i)}};function Io(e){return qt(e)?e:new Proxy(e,eu)}var _s=class{constructor(t,o,i){this.fn=t,this.setter=o,this._value=void 0,this.dep=new jn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=zn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&$e!==this)return Li(this,!0),!0}get value(){let t=this.dep.track();return Hi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Xi(e,t,o=!1){let i,s;return ye(e)?i=e:(i=e.get,s=e.set),new _s(i,s,o)}var Ro={},Oo=new WeakMap,sn;function Zi(e,t=!1,o=sn){if(o){let i=Oo.get(o);i||Oo.set(o,i=[]),i.push(e)}}function xi(e,t,o=Pe){let{immediate:i,deep:s,once:r,scheduler:a,augmentJob:c,call:f}=o,g=q=>{(o.onWarn||Ld)("Invalid watch source: ",q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},y=q=>s?q:at(q)||s===!1||s===0?Vt(q,1):Vt(q),b,h,E,_,m=!1,C=!1;if(Ze(e)?(h=()=>e.value,m=at(e)):qt(e)?(h=()=>y(e),m=!0):he(e)?(C=!0,m=e.some(q=>qt(q)||at(q)),h=()=>e.map(q=>{if(Ze(q))return q.value;if(qt(q))return y(q);if(ye(q))return f?f(q,2):q()})):ye(e)?t?h=f?()=>f(e,2):e:h=()=>{if(E){Nt();try{E()}finally{Rt()}}let q=sn;sn=b;try{return f?f(e,3,[_]):e(_)}finally{sn=q}}:h=rt,t&&s){let q=h,B=s===!0?1/0:s;h=()=>Vt(q(),B)}let N=Ui(),A=()=>{b.stop(),N&&N.active&&qn(N.effects,b)};if(r&&t){let q=t;t=(...B)=>{try{return q(...B)}finally{A()}}}let M=C?new Array(e.length).fill(Ro):Ro,U=q=>{if(!(!(b.flags&1)||!b.dirty&&!q))if(t){let B=b.run();if(q||s||m||(C?B.some((oe,ee)=>gt(oe,M[ee])):gt(B,M))){let oe=sn;Nt();try{E&&E(),sn=b;let ee=[B,M===Ro?void 0:C&&M[0]===Ro?[]:M,_];M=B,f?f(t,3,ee):t(...ee)}finally{sn=oe,Rt()}}}else b.run()};return c&&c(U),b=new Sn(h),b.scheduler=a?()=>a(U,!1):U,_=q=>Zi(q,!1,b),E=b.onStop=()=>{let q=Oo.get(b);if(q){if(f)f(q,4);else for(let B of q)B();Oo.delete(b)}},t?i?U(!0):M=b.run():a?a(U.bind(null,!0),!0):b.run(),A.pause=b.pause.bind(b),A.resume=b.resume.bind(b),A.stop=A,A}function Vt(e,t=1/0,o){if(t<=0||!De(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,Ze(e))Vt(e.value,t,o);else if(he(e))for(let i=0;i{Vt(i,t,o)});else if(bo(e)){for(let i in e)Vt(e[i],t,o);for(let i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&Vt(e[i],t,o)}return e}function ao(e,t,o,i){try{return i?e(...i):e()}catch(s){lo(s,t,o)}}function bt(e,t,o,i){if(ye(e)){let s=ao(e,t,o,i);return s&&fs(s)&&s.catch(r=>{lo(r,t,o)}),s}if(he(e)){let s=[];for(let r=0;r>>1,s=st[i],r=no(s);r=no(o)?st.push(e):st.splice(iu(t),0,e),e.flags|=1,vr()}}function vr(){Mo||(Mo=mr.then(wr))}function gr(e){if(!he(e))en&&e.id===-1?en.splice(_n+1,0,e):e.flags&1||(Ut.push(e),e.flags|=1);else for(let t=0;t=t))continue;st.splice(i,1),i=e?i-1:Dt,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function br(e,t,o=0){if(Ut.length){let i=Ut,s=0;if(t){i=[];for(let a=0;ano(a)-no(c));if(Ut.length=s,en){for(let a=0;ae.id==null?e.flags&2?-1:1/0:e.id;function wr(e){let t=rt;try{for(Dt=0;Dt{i._d&&Fo(-1);let r=Uo(t),a=dn.length,c;try{c=e(...s)}finally{for(let f=dn.length;f>a;f--)Qr();Uo(r),i._d&&Fo(1)}return c};return i._n=!0,i._c=!0,i._d=!0,i}function D(e,t){if(mt===null)return e;let o=Yo(mt),i=e.dirs||(e.dirs=[]);for(let s=0;s1)return o&&ye(t)?t.call(i&&i.proxy):t}}var lu=Symbol.for("v-scx"),du=()=>{{let e=dt(lu);return e}};function Be(e,t,o){return Er(e,t,o)}function Er(e,t,o=Pe){let{immediate:i,deep:s,flush:r,once:a}=o,c=je({},o),f=t&&i||!t&&r!=="post",g;if(Dn){if(r==="sync"){let E=du();g=E.__watcherHandles||(E.__watcherHandles=[])}else if(!f){let E=()=>{};return E.stop=rt,E.resume=rt,E.pause=rt,E}}let y=tt;c.call=(E,_,m)=>bt(E,y,_,m);let b=!1;r==="post"?c.scheduler=E=>{E.i=y,lt(E,y&&y.suspense)}:r!=="sync"&&(b=!0,c.scheduler=(E,_)=>{_?E():zs(E)}),c.augmentJob=E=>{t&&(E.flags|=4),b&&(E.flags|=2,y&&(E.id=y.uid,E.i=y))};let h=xi(e,t,c);return Dn&&(g?g.push(h):f&&h()),h}function uu(e,t,o){let i=this.proxy,s=Le(e)?e.includes(".")?Cr(i,e):()=>i[e]:e.bind(i,i),r;ye(t)?r=t:(r=t.handler,o=t);let a=po(this),c=Er(s,r.bind(i),o);return a(),c}function Cr(e,t){let o=t.split(".");return()=>{let i=e;for(let s=0;se.__isTeleport;var Is=Symbol("_leaveCb");function pu(e){let t=e[0];if(e.length>1){let o=!1;for(let i of e)if(i.type!==Tt){t=i,o=!0;break}}return t}function Sr(e){if(!jo(e))return zo(e.type)&&e.children?pu(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&ye(o.default))return o.default()}}function oo(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let o=e.component.subTree;oo(zo(o.type)&&Sr(o)||o,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===K&&he(e.children)){let o=Mr(e.children,!1);o&&oo(o,t)}}function Us(e){if(e.component)return Us(e.component.subTree);if(e.type===K){let t=he(e.children)&&Mr(e.children,!1);return t?Us(t):void 0}if(e.type!==Tt)return e}function uo(e,t){return ye(e)?je({name:e.name},t,{setup:e}):e}function js(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function er(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}var $o=new WeakMap;function Zn(e,t,o,i,s=!1){if(he(e)){e.forEach((m,C)=>Zn(m,t&&(he(t)?t[C]:t),o,i,s));return}if(xn(i)&&!s){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Zn(e,t,o,i.component.subTree);return}let r=i.shapeFlag&4?Yo(i.component):i.el,a=s?null:r,{i:c,r:f}=e,g=t&&t.r,y=c.refs===Pe?c.refs={}:c.refs,b=c.setupState,h=Re(b),E=b===Pe?ps:m=>er(y,m)?!1:Ne(h,m),_=(m,C)=>!(C&&er(y,C));if(g!=null&&g!==f){if(tr(t),Le(g))y[g]=null,E(g)&&(b[g]=null);else if(Ze(g)){let m=t;_(g,m.k)&&(g.value=null),m.k&&(y[m.k]=null)}}if(ye(f))ao(f,c,12,[a,y]);else{let m=Le(f),C=Ze(f);if(m||C){let N=()=>{if(e.f){let A=m?E(f)?b[f]:y[f]:_(f)||!e.k?f.value:y[e.k];if(s)he(A)&&qn(A,r);else if(he(A))A.includes(r)||A.push(r);else if(m)y[f]=[r],E(f)&&(b[f]=y[f]);else{let M=[r];_(f,e.k)&&(f.value=M),e.k&&(y[e.k]=M)}}else m?(y[f]=a,E(f)&&(b[f]=a)):C&&(_(f,e.k)&&(f.value=a),e.k&&(y[e.k]=a))};if(a){let A=()=>{N(),$o.delete(e)};A.id=-1,$o.set(e,A),lt(A,o)}else tr(e),N()}}}function tr(e){let t=$o.get(e);t&&(t.flags|=8,$o.delete(e))}var nr=e=>e.nodeType===8;var Y$=$n().requestIdleCallback||(e=>setTimeout(e,1)),J$=$n().cancelIdleCallback||(e=>clearTimeout(e));function fu(e,t){if(nr(e)&&e.data==="["){let o=1,i=e.nextSibling;for(;i;){if(i.nodeType===1){if(t(i)===!1)break}else if(nr(i))if(i.data==="]"){if(--o===0)break}else i.data==="["&&o++;i=i.nextSibling}}else t(e)}var xn=e=>!!e.type.__asyncLoader;function _r(e){ye(e)&&(e={loader:e});let{loader:t,loadingComponent:o,errorComponent:i,delay:s=200,hydrate:r,timeout:a,suspensible:c=!0,onError:f}=e,g=null,y,b=0,h=()=>(b++,g=null,E()),E=()=>{let _;return g||(_=g=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),f)return new Promise((C,N)=>{f(m,()=>C(h()),()=>N(m),b+1)});throw m}).then(m=>_!==g&&g?g:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),y=m,m)))};return uo({name:"AsyncComponentWrapper",__asyncLoader:E,__asyncHydrate(_,m,C){let N=_.isConnected,A=!1;(m.bu||(m.bu=[])).push(()=>A=!0);let M=()=>{A||!_.parentNode||N&&!_.isConnected||C()},U=r?()=>{let q=r(M,B=>fu(_,B));q&&(m.bum||(m.bum=[])).push(q)}:M;y?U():E().then(()=>!m.isUnmounted&&U())},get __asyncResolved(){return y},setup(){let _=tt;if(js(_),y)return()=>Vo(y,_);let m=q=>{g=null,lo(q,_,13,!i)};if(c&&_.suspense||Dn)return E().then(q=>()=>Vo(q,_)).catch(q=>(m(q),()=>i?Ce(i,{error:q}):null));let C=et(!1),N=et(),A=et(!!s),M,U;return co(()=>{M!=null&&clearTimeout(M),U!=null&&clearTimeout(U)}),s&&(U=setTimeout(()=>{_.isUnmounted||(A.value=!1)},s)),a!=null&&(M=setTimeout(()=>{if(!_.isUnmounted&&!C.value&&!N.value){let q=new Error(`Async component timed out after ${a}ms.`);m(q),N.value=q}},a)),E().then(()=>{_.isUnmounted||(C.value=!0,_.parent&&jo(_.parent.vnode)&&_.parent.update())}).catch(q=>{if(_.isUnmounted){g=null;return}m(q),N.value=q}),()=>{if(C.value&&y)return Vo(y,_);if(N.value&&i)return Ce(i,{error:N.value});if(o&&!A.value)return Vo(o,_)}}})}function Vo(e,t){let{ref:o,props:i,children:s,ce:r}=t.vnode,a=Ce(e,i,s);return a.ref=o,a.ce=r,delete t.vnode.ce,a}var jo=e=>e.type.__isKeepAlive;function Nr(e,t){Dr(e,"a",t)}function Rr(e,t){Dr(e,"da",t)}function Dr(e,t,o=tt){let i=e.__wdc||(e.__wdc=()=>{let s=o;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Go(t,i,o),o){let s=o.parent;for(;s&&s.parent;)jo(s.parent.vnode)&&hu(i,t,o,s),s=s.parent}}function hu(e,t,o,i){let s=Go(t,e,i,!0);co(()=>{qn(i[t],s)},o)}function Go(e,t,o=tt,i=!1){if(o){let s=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...a)=>{Nt();let c=po(o),f=bt(t,o,e,a);return c(),Rt(),f});return i?s.unshift(r):s.push(r),r}}var Yt=e=>(t,o=tt)=>{(!Dn||e==="sp")&&Go(e,(...i)=>t(...i),o)},mu=Yt("bm"),Lt=Yt("m"),Tr=Yt("bu"),Ar=Yt("u"),cn=Yt("bum"),co=Yt("um"),vu=Yt("sp"),gu=Yt("rtg"),yu=Yt("rtc");function bu(e,t=tt){Go("ec",e,t)}var Or="components",wu="directives";function Ge(e,t){return Pr(Or,e,!0,t)||e}var ku=Symbol.for("v-ndc");function ge(e){return Pr(wu,e)}function Pr(e,t,o=!0,i=!1){let s=mt||tt;if(s){let r=s.type;if(e===Or){let c=sc(r,!1);if(c&&(c===t||c===Je(t)||c===on(Je(t))))return r}let a=or(s[e]||r[e],t)||or(s.appContext[e],t);return!a&&i?r:a}}function or(e,t){return e&&(e[t]||e[Je(t)]||e[on(Je(t))])}function ne(e,t,o,i){let s,r=o&&o[i],a=he(e);if(a||Le(e)){let c=a&&qt(e),f=!1,g=!1;c&&(f=!at(e),g=yt(e),e=Kn(e)),s=new Array(e.length);for(let y=0,b=e.length;yt(c,f,void 0,r&&r[f]));else{let c=Object.keys(e);s=new Array(c.length);for(let f=0,g=c.length;fe?ea(e)?Yo(e):$s(e.parent):null;var eo=je(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>$s(e.parent),$root:e=>$s(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Gs(e),$forceUpdate:e=>e.f||(e.f=()=>{zs(e.update)}),$nextTick:e=>e.n||(e.n=Ke.bind(e.proxy)),$watch:e=>uu.bind(e)});var Vs=(e,t)=>e!==Pe&&!e.__isScriptSetup&&Ne(e,t),Eu={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:o,setupState:i,data:s,props:r,accessCache:a,type:c,appContext:f}=e;if(t[0]!=="$"){let h=a[t];if(h!==void 0)switch(h){case 1:return i[t];case 2:return s[t];case 4:return o[t];case 3:return r[t]}else{if(Vs(i,t))return a[t]=1,i[t];if(s!==Pe&&Ne(s,t))return a[t]=2,s[t];if(Ne(r,t))return a[t]=3,r[t];if(o!==Pe&&Ne(o,t))return a[t]=4,o[t];Ls&&(a[t]=0)}}let g=eo[t],y,b;if(g)return t==="$attrs"&&xe(e.attrs,"get",""),g(e);if((y=c.__cssModules)&&(y=y[t]))return y;if(o!==Pe&&Ne(o,t))return a[t]=4,o[t];if(b=f.config.globalProperties,Ne(b,t))return b[t]},set({_:e},t,o){let{data:i,setupState:s,ctx:r}=e;return Vs(s,t)?(s[t]=o,!0):i!==Pe&&Ne(i,t)?(i[t]=o,!0):Ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:i,appContext:s,props:r,type:a}},c){let f;return!!(o[c]||e!==Pe&&c[0]!=="$"&&Ne(e,c)||Vs(t,c)||Ne(r,c)||Ne(i,c)||Ne(eo,c)||Ne(s.config.globalProperties,c)||(f=a.__cssModules)&&f[c])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ne(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function sr(e){return he(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}var Ls=!0;function Cu(e){let t=Gs(e),o=e.proxy,i=e.ctx;Ls=!1,t.beforeCreate&&ir(t.beforeCreate,e,"bc");let{data:s,computed:r,methods:a,watch:c,provide:f,inject:g,created:y,beforeMount:b,mounted:h,beforeUpdate:E,updated:_,activated:m,deactivated:C,beforeDestroy:N,beforeUnmount:A,destroyed:M,unmounted:U,render:q,renderTracked:B,renderTriggered:oe,errorCaptured:ee,serverPrefetch:R,expose:j,inheritAttrs:ie,components:ve,directives:z,filters:J}=t;if(g&&Su(g,i,null),a)for(let X in a){let re=a[X];ye(re)&&(i[X]=re.bind(o))}if(s){let X=s.call(o,o);De(X)&&(e.data=Fe(X))}if(Ls=!0,r)for(let X in r){let re=r[X],Ee=ye(re)?re.bind(o,o):ye(re.get)?re.get.bind(o,o):rt,Te=!ye(re)&&ye(re.set)?re.set.bind(o):rt,Ae=nt({get:Ee,set:Te});Object.defineProperty(i,X,{enumerable:!0,configurable:!0,get:()=>Ae.value,set:Se=>Ae.value=Se})}if(c)for(let X in c)Ir(c[X],i,o,X);if(f){let X=ye(f)?f.call(o):f;Reflect.ownKeys(X).forEach(re=>{un(re,X[re])})}y&&ir(y,e,"c");function te(X,re){he(re)?re.forEach(Ee=>X(Ee.bind(o))):re&&X(re.bind(o))}if(te(mu,b),te(Lt,h),te(Tr,E),te(Ar,_),te(Nr,m),te(Rr,C),te(bu,ee),te(yu,B),te(gu,oe),te(cn,A),te(co,U),te(vu,R),he(j))if(j.length){let X=e.exposed||(e.exposed={});j.forEach(re=>{Object.defineProperty(X,re,{get:()=>o[re],set:Ee=>o[re]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});q&&e.render===rt&&(e.render=q),ie!=null&&(e.inheritAttrs=ie),ve&&(e.components=ve),z&&(e.directives=z),R&&js(e)}function Su(e,t,o=rt){he(e)&&(e=Fs(e));for(let i in e){let s=e[i],r;De(s)?"default"in s?r=dt(s.from||i,s.default,!0):r=dt(s.from||i):r=dt(s),Ze(r)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):t[i]=r}}function ir(e,t,o){bt(he(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,o)}function Ir(e,t,o,i){let s=i.includes(".")?Cr(o,i):()=>o[i];if(Le(e)){let r=t[e];ye(r)&&Be(s,r)}else if(ye(e))Be(s,e.bind(o));else if(De(e))if(he(e))e.forEach(r=>Ir(r,t,o,i));else{let r=ye(e.handler)?e.handler.bind(o):t[e.handler];ye(r)&&Be(s,r,e)}}function Gs(e){let t=e.type,{mixins:o,extends:i}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,c=r.get(t),f;return c?f=c:!s.length&&!o&&!i?f=t:(f={},s.length&&s.forEach(g=>Lo(f,g,a,!0)),Lo(f,t,a)),De(t)&&r.set(t,f),f}function Lo(e,t,o,i=!1){let{mixins:s,extends:r}=t;r&&Lo(e,r,o,!0),s&&s.forEach(a=>Lo(e,a,o,!0));for(let a in t)if(!(i&&a==="expose")){let c=_u[a]||o&&o[a];e[a]=c?c(e[a],t[a]):t[a]}return e}var _u={data:rr,props:ar,emits:ar,methods:Xn,computed:Xn,beforeCreate:ot,created:ot,beforeMount:ot,mounted:ot,beforeUpdate:ot,updated:ot,beforeDestroy:ot,beforeUnmount:ot,destroyed:ot,unmounted:ot,activated:ot,deactivated:ot,errorCaptured:ot,serverPrefetch:ot,components:Xn,directives:Xn,watch:Ru,provide:rr,inject:Nu};function rr(e,t){return t?e?function(){return je(ye(e)?e.call(this,this):e,ye(t)?t.call(this,this):t)}:t:e}function Nu(e,t){return Xn(Fs(e),Fs(t))}function Fs(e){if(he(e)){let t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${Ot(t)}Modifiers`];function Ou(e,t,...o){if(e.isUnmounted)return;let i=e.vnode.props||Pe,s=o,r=t.startsWith("update:"),a=r&&Au(i,t.slice(7));a&&(a.trim&&(s=o.map(y=>Le(y)?y.trim():y)),a.number&&(s=s.map(En)));let c,f=i[c=Un(t)]||i[c=Un(Je(t))];!f&&r&&(f=i[c=Un(Ot(t))]),f&&bt(f,e,6,s);let g=i[c+"Once"];if(g){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,bt(g,e,6,s)}}var Pu=new WeakMap;function qr(e,t,o=!1){let i=o?Pu:t.emitsCache,s=i.get(e);if(s!==void 0)return s;let r=e.emits,a={},c=!1;if(!ye(e)){let f=g=>{let y=qr(g,t,!0);y&&(c=!0,je(a,y))};!o&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!r&&!c?(De(e)&&i.set(e,null),null):(he(r)?r.forEach(f=>a[f]=null):je(a,r),De(e)&&i.set(e,a),a)}function Wo(e,t){return!e||!yn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ne(e,t[0].toLowerCase()+t.slice(1))||Ne(e,Ot(t))||Ne(e,t))}function qs(e){let{type:t,vnode:o,proxy:i,withProxy:s,propsOptions:[r],slots:a,attrs:c,emit:f,render:g,renderCache:y,props:b,data:h,setupState:E,ctx:_,inheritAttrs:m}=e,C=Uo(e),N,A;try{if(o.shapeFlag&4){let q=s||i,B=q;N=$t(g.call(B,q,y,b,E,h,_)),A=c}else{let q=t;N=$t(q.length>1?q(b,{attrs:c,slots:a,emit:f}):q(b,null)),A=t.props?c:Iu(c)}}catch(q){dn.length=0,lo(q,e,1),N=Ce(Tt)}let M=N,U;if(A&&m!==!1){let q=Object.keys(A),{shapeFlag:B}=M;q.length&&B&7&&(r&&q.some(bn)&&(A=Vu(A,r)),M=Rn(M,A,!1,!0))}if(o.dirs&&(M=Rn(M,null,!1,!0),M.dirs=M.dirs?M.dirs.concat(o.dirs):o.dirs),o.transition){let q=zo(M.type)&&Sr(M)||M;oo(q,o.transition)}return N=M,Uo(C),N}function Mr(e,t=!0){let o;for(let i=0;i{let t;for(let o in e)(o==="class"||o==="style"||yn(o))&&((t||(t={}))[o]=e[o]);return t},Vu=(e,t)=>{let o={};for(let i in e)(!bn(i)||!(i.slice(9)in t))&&(o[i]=e[i]);return o};function qu(e,t,o){let{props:i,children:s,component:r}=e,{props:a,children:c,patchFlag:f}=t,g=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&f>=0){if(f&1024)return!0;if(f&16)return i?lr(i,a,g):!!a;if(f&8){let y=t.dynamicProps;for(let b=0;bObject.create($r),Fr=e=>Object.getPrototypeOf(e)===$r;function Uu(e,t,o,i=!1){let s={},r=Lr();e.propsDefaults=Object.create(null),Br(e,t,s,r);for(let a in e.propsOptions[0])a in s||(s[a]=void 0);o?e.props=i?s:Yn(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function $u(e,t,o,i){let{props:s,attrs:r,vnode:{patchFlag:a}}=e,c=Re(s),[f]=e.propsOptions,g=!1;if((i||a>0)&&!(a&16)){if(a&8){let y=e.vnode.dynamicProps;for(let b=0;b{f=!0;let[h,E]=Hr(b,t,!0);je(a,h),E&&c.push(...E)};!o&&t.mixins.length&&t.mixins.forEach(y),e.extends&&y(e.extends),e.mixins&&e.mixins.forEach(y)}if(!r&&!f)return De(e)&&i.set(e,xt),xt;if(he(r))for(let y=0;ye==="_"||e==="_ctx"||e==="$stable",Ks=e=>he(e)?e.map($t):[$t(e)],Fu=(e,t,o)=>{if(t._n)return t;let i=au((...s)=>Ks(t(...s)),o);return i._c=!1,i},zr=(e,t,o)=>{let i=e._ctx;for(let s in e){if(Ws(s))continue;let r=e[s];if(ye(r))t[s]=Fu(s,r,i);else if(r!=null){let a=Ks(r);t[s]=()=>a}}},jr=(e,t)=>{let o=Ks(t);e.slots.default=()=>o},Gr=(e,t,o)=>{for(let i in t)(o||!Ws(i))&&(e[i]=t[i])},Bu=(e,t,o)=>{let i=e.slots=Lr();if(e.vnode.shapeFlag&32){let s=t._;s?(Gr(i,t,o),o&&Eo(i,"_",s,!0)):zr(t,i)}else t&&jr(e,t)},Hu=(e,t,o)=>{let{vnode:i,slots:s}=e,r=!0,a=Pe;if(i.shapeFlag&32){let c=t._;c?o&&c===1?r=!1:Gr(s,t,o):(r=!t.$stable,zr(t,s)),a=t}else t&&(jr(e,t),a={default:1});if(r)for(let c in s)!Ws(c)&&a[c]==null&&delete s[c]};function zu(){let e=[]}var lt=Ku;function Wr(e){return ju(e)}function ju(e,t){zu();let o=$n();o.__VUE__=!0;let{insert:i,remove:s,patchProp:r,createElement:a,createText:c,createComment:f,setText:g,setElementText:y,parentNode:b,nextSibling:h,setScopeId:E=rt,insertStaticContent:_}=e,m=(k,S,V,G=null,w=null,T=null,O=void 0,I=null,F=!!S.dynamicChildren)=>{if(k===S)return;k&&!Qn(k,S)&&(G=se(k),_e(k,w,T,!0),k=null),S.patchFlag===-2&&(F=!1,S.dynamicChildren=null),S.dynamicChildren&&k&&k.dynamicChildren&&k.dynamicChildren.hasOnce&&(S.dynamicChildren===xt&&(S.dynamicChildren=[]),S.dynamicChildren.hasOnce=!0);let{type:L,ref:ae,shapeFlag:x}=S;switch(L){case Ko:C(k,S,V,G);break;case Tt:N(k,S,V,G);break;case to:k==null&&A(S,V,G,O);break;case K:z(k,S,V,G,w,T,O,I,F);break;default:x&1?B(k,S,V,G,w,T,O,I,F):x&6?J(k,S,V,G,w,T,O,I,F):(x&64||x&128)&&L.process(k,S,V,G,w,T,O,I,F,Z)}ae!=null&&w?Zn(ae,k&&k.ref,T,S||k,!S):ae==null&&k&&k.ref!=null&&Zn(k.ref,null,T,k,!0)},C=(k,S,V,G)=>{if(k==null)i(S.el=c(S.children),V,G);else{let w=S.el=k.el;S.children!==k.children&&g(w,S.children)}},N=(k,S,V,G)=>{k==null?i(S.el=f(S.children||""),V,G):S.el=k.el},A=(k,S,V,G)=>{[k.el,k.anchor]=_(k.children,S,V,G,k.el,k.anchor)},M=(k,S,V,G)=>{if(S.children!==k.children){let w=h(k.anchor);q(k),[S.el,S.anchor]=_(S.children,V,w,G)}else S.el=k.el,S.anchor=k.anchor},U=({el:k,anchor:S},V,G)=>{let w;for(;k&&k!==S;)w=h(k),i(k,V,G),k=w;i(S,V,G)},q=({el:k,anchor:S})=>{let V;for(;k&&k!==S;)V=h(k),s(k),k=V;s(S)},B=(k,S,V,G,w,T,O,I,F)=>{if(S.type==="svg"?O="svg":S.type==="math"&&(O="mathml"),k==null)oe(S,V,G,w,T,O,I,F);else{let L=k.el&&k.el._isVueCE?k.el:null;try{L&&L._beginPatch(),j(k,S,w,T,O,I,F)}finally{L&&L._endPatch()}}},oe=(k,S,V,G,w,T,O,I)=>{let F,L,{props:ae,shapeFlag:x,transition:le,dirs:me}=k;if(F=k.el=a(k.type,T,ae&&ae.is,ae),x&8?y(F,k.children):x&16&&R(k.children,F,null,G,w,Ms(k,T),O,I),me&&an(k,null,G,"created"),ee(F,k,k.scopeId,O,G),ae){for(let Me in ae)Me!=="value"&&!wn(Me)&&r(F,Me,null,ae[Me],T,G);"value"in ae&&r(F,"value",null,ae.value,T),(L=ae.onVnodeBeforeMount)&&Mt(L,G,k)}me&&an(k,null,G,"beforeMount");let ke=Gu(w,le);ke&&le.beforeEnter(F),i(F,S,V),((L=ae&&ae.onVnodeMounted)||ke||me)&<(()=>{let Ve;L&&Mt(L,G,k),ke&&le.enter(F),me&&an(k,null,G,"mounted")},w)},ee=(k,S,V,G,w)=>{if(V&&E(k,V),G)for(let T=0;T{for(let L=F;L{let I=S.el=k.el,{patchFlag:F,dynamicChildren:L,dirs:ae}=S;F|=k.patchFlag&16;let x=k.props||Pe,le=S.props||Pe,me;if(V&&ln(V,!1),(me=le.onVnodeBeforeUpdate)&&Mt(me,V,S,k),ae&&an(S,k,V,"beforeUpdate"),V&&ln(V,!0),L&&(!k.dynamicChildren||k.dynamicChildren.length!==L.length)&&(F=0,O=!1,L=null),(x.innerHTML&&le.innerHTML==null||x.textContent&&le.textContent==null)&&y(I,""),L?ie(k.dynamicChildren,L,I,V,G,Ms(S,w),T):O||Ee(k,S,I,null,V,G,Ms(S,w),T,!1),F>0){if(F&16)ve(I,x,le,V,w);else if(F&2&&x.class!==le.class&&r(I,"class",null,le.class,w),F&4&&r(I,"style",x.style,le.style,w),F&8){let ke=S.dynamicProps;for(let Me=0;Me{me&&Mt(me,V,S,k),ae&&an(S,k,V,"updated")},G)},ie=(k,S,V,G,w,T,O)=>{for(let I=0;I{if(S!==V){if(S!==Pe)for(let T in S)!wn(T)&&!(T in V)&&r(k,T,S[T],null,w,G);for(let T in V){if(wn(T))continue;let O=V[T],I=S[T];O!==I&&T!=="value"&&r(k,T,I,O,w,G)}"value"in V&&r(k,"value",S.value,V.value,w)}},z=(k,S,V,G,w,T,O,I,F)=>{let L=S.el=k?k.el:c(""),ae=S.anchor=k?k.anchor:c(""),{patchFlag:x,dynamicChildren:le,slotScopeIds:me}=S;me&&(I=I?I.concat(me):me),k==null?(i(L,V,G),i(ae,V,G),R(S.children||[],V,ae,w,T,O,I,F)):x>0&&x&64&&le&&k.dynamicChildren&&k.dynamicChildren.length===le.length?(ie(k.dynamicChildren,le,V,w,T,O,I),(S.key!=null||w&&S===w.subTree)&&Kr(k,S,!0)):Ee(k,S,V,ae,w,T,O,I,F)},J=(k,S,V,G,w,T,O,I,F)=>{S.slotScopeIds=I,k==null?S.shapeFlag&512?w.ctx.activate(S,V,G,O,F):Q(S,V,G,w,T,O,F):te(k,S,F)},Q=(k,S,V,G,w,T,O)=>{let I=k.component=xu(k,G,w);if(jo(k)&&(I.ctx.renderer=Z),ec(I,!1,O),I.asyncDep){if(w&&w.registerDep(I,X,O,T),!k.el){let F=I.subTree=Ce(Tt);N(null,F,S,V),k.placeholder=F.el}}else X(I,k,S,V,w,T,O)},te=(k,S,V)=>{let G=S.component=k.component;if(qu(k,S,V))if(G.asyncDep&&!G.asyncResolved){S.el=k.el,S.placeholder=k.placeholder,re(G,S,V);return}else G.next=S,G.update();else S.el=k.el,S.placeholder=k.placeholder,G.vnode=S},X=(k,S,V,G,w,T,O)=>{let I=()=>{if(k.isMounted){let{next:x,bu:le,u:me,parent:ke,vnode:Me}=k;{let ct=Yr(k);if(ct){x&&(x.el=Me.el,re(k,x,O)),ct.asyncDep.then(()=>{lt(()=>{k.isUnmounted||L()},w)});return}}let Ve=x,We;ln(k,!1),x?(x.el=Me.el,re(k,x,O)):x=Me,le&&kn(le),(We=x.props&&x.props.onVnodeBeforeUpdate)&&Mt(We,ke,x,Me),ln(k,!0);let Ye=qs(k),Et=k.subTree;k.subTree=Ye,m(Et,Ye,b(Et.el),se(Et),k,w,T),x.el=Ye.el,Ve===null&&Mu(k,Ye.el),me&<(me,w),(We=x.props&&x.props.onVnodeUpdated)&<(()=>Mt(We,ke,x,Me),w)}else{let x,{el:le,props:me}=S,{bm:ke,m:Me,parent:Ve,root:We,type:Ye}=k,Et=xn(S);if(ln(k,!1),ke&&kn(ke),!Et&&(x=me&&me.onVnodeBeforeMount)&&Mt(x,Ve,S),ln(k,!0),le&&be){let ct=()=>{k.subTree=qs(k),be(le,k.subTree,k,w,null)};Et&&Ye.__asyncHydrate?Ye.__asyncHydrate(le,k,ct):ct()}else{We.ce&&We.ce._hasShadowRoot()&&We.ce._injectChildStyle(Ye,k.parent?k.parent.type:void 0);let ct=k.subTree=qs(k);m(null,ct,V,G,k,w,T),S.el=ct.el}if(Me&<(Me,w),!Et&&(x=me&&me.onVnodeMounted)){let ct=S;lt(()=>Mt(x,Ve,ct),w)}(S.shapeFlag&256||Ve&&xn(Ve.vnode)&&Ve.vnode.shapeFlag&256)&&k.a&<(k.a,w),k.isMounted=!0,S=V=G=null}};k.scope.on();let F=k.effect=new Sn(I);k.scope.off();let L=k.update=F.run.bind(F),ae=k.job=F.runIfDirty.bind(F);ae.i=k,ae.id=k.uid,F.scheduler=()=>zs(ae),ln(k,!0),L()},re=(k,S,V)=>{S.component=k;let G=k.vnode.props;k.vnode=S,k.next=null,$u(k,S.props,G,V),Hu(k,S.children,V),Nt(),yr(k),Rt()},Ee=(k,S,V,G,w,T,O,I,F=!1)=>{let L=k&&k.children,ae=k?k.shapeFlag:0,x=S.children,{patchFlag:le,shapeFlag:me}=S;if(le>0){if(le&128){Ae(L,x,V,G,w,T,O,I,F);return}else if(le&256){Te(L,x,V,G,w,T,O,I,F);return}}me&8?(ae&16&&H(L,w,T),x!==L&&y(V,x)):ae&16?me&16?Ae(L,x,V,G,w,T,O,I,F):H(L,w,T,!0):(ae&8&&y(V,""),me&16&&R(x,V,G,w,T,O,I,F))},Te=(k,S,V,G,w,T,O,I,F)=>{k=k||xt,S=S||xt;let L=k.length,ae=S.length,x=Math.min(L,ae),le;for(le=0;leae?H(k,w,T,!0,!1,x):R(S,V,G,w,T,O,I,F,x)},Ae=(k,S,V,G,w,T,O,I,F)=>{let L=0,ae=S.length,x=k.length-1,le=ae-1;for(;L<=x&&L<=le;){let me=k[L],ke=S[L]=F?Kt(S[L]):$t(S[L]);if(Qn(me,ke))m(me,ke,V,null,w,T,O,I,F);else break;L++}for(;L<=x&&L<=le;){let me=k[x],ke=S[le]=F?Kt(S[le]):$t(S[le]);if(Qn(me,ke))m(me,ke,V,null,w,T,O,I,F);else break;x--,le--}if(L>x){if(L<=le){let me=le+1,ke=mele)for(;L<=x;)_e(k[L],w,T,!0),L++;else{let me=L,ke=L,Me=new Map;for(L=ke;L<=le;L++){let pt=S[L]=F?Kt(S[L]):$t(S[L]);pt.key!=null&&Me.set(pt.key,L)}let Ve,We=0,Ye=le-ke+1,Et=!1,ct=0,Vn=new Array(Ye);for(L=0;L=Ye){_e(pt,w,T,!0);continue}let At;if(pt.key!=null)At=Me.get(pt.key);else for(Ve=ke;Ve<=le;Ve++)if(Vn[Ve-ke]===0&&Qn(pt,S[Ve])){At=Ve;break}At===void 0?_e(pt,w,T,!0):(Vn[At-ke]=L+1,At>=ct?ct=At:Et=!0,m(pt,S[At],V,null,w,T,O,I,F),We++)}let bi=Et?Wu(Vn):xt;for(Ve=bi.length-1,L=Ye-1;L>=0;L--){let pt=ke+L,At=S[pt],wi=S[pt+1],ki=pt+1{let{el:T,type:O,transition:I,children:F,shapeFlag:L}=k;if(L&6){Se(k.component.subTree,S,V,G);return}if(L&128){k.suspense.move(S,V,G);return}if(L&64){O.move(k,S,V,Z);return}if(O===K){i(T,S,V);for(let x=0;xI.enter(T),w));else{let{leave:x,delayLeave:le,afterLeave:me}=I,ke=()=>{k.ctx.isUnmounted?s(T):i(T,S,V)},Me=()=>{let Ve=T._isLeaving||!!T[Is];T._isLeaving&&T[Is](!0),I.persisted&&!Ve?ke():x(T,()=>{ke(),me&&me()})};le?le(T,ke,Me):Me()}else i(T,S,V)},_e=(k,S,V,G=!1,w=!1)=>{let{type:T,props:O,ref:I,children:F,dynamicChildren:L,shapeFlag:ae,patchFlag:x,dirs:le,cacheIndex:me,memo:ke}=k;if((x===-2||L&&L.hasOnce)&&(w=!1),I!=null&&(Nt(),Zn(I,null,V,k,!0),Rt()),me!=null&&(!k.ctx||k.ctx===S)&&(S.renderCache[me]=void 0),ae&256){S.ctx.deactivate(k);return}let Me=ae&1&&le,Ve=!xn(k),We;if(Ve&&(We=O&&O.onVnodeBeforeUnmount)&&Mt(We,S,k),ae&6)Ie(k.component,V,G);else{if(ae&128){k.suspense.unmount(V,G);return}Me&&an(k,null,S,"beforeUnmount"),ae&64?k.type.remove(k,S,V,Z,G):L&&!L.hasOnce&&(T!==K||x>0&&x&64)?H(L,S,V,!1,!0):(T===K&&x&384||!w&&ae&16)&&H(F,S,V),G&&ze(k)}let Ye=ke!=null&&me==null;(Ve&&(We=O&&O.onVnodeUnmounted)||Me||Ye)&<(()=>{We&&Mt(We,S,k),Me&&an(k,null,S,"unmounted"),Ye&&(k.el=null)},V)},ze=k=>{let{type:S,el:V,anchor:G,transition:w}=k,T=S===K;if(T&&!w){Ue(V,G);return}if(S===to){q(k),w&&!w.persisted&&w.afterLeave&&w.afterLeave();return}let O=T?Us(k):k,I=()=>{T?b(V)&&Ue(V,G):s(V),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(O&&O.shapeFlag&1&&w&&!w.persisted){let{leave:F,delayLeave:L}=w,ae=O.el,x=()=>F(ae,I);L?L(ae,I,x):x()}else I()},Ue=(k,S)=>{let V;for(;k!==S;)V=h(k),s(k),k=V;s(S)},Ie=(k,S,V)=>{let{bum:G,scope:w,job:T,subTree:O,um:I,m:F,a:L}=k;ur(F),ur(L),G&&kn(G),w.stop(),T?(T.flags|=8,_e(O,k,S,V)):k.vnode.el&&O&&(O.transition=k.vnode.transition,_e(O,k,S,V)),I&<(I,S),lt(()=>{k.isUnmounted=!0},S)},H=(k,S,V,G=!1,w=!1,T=0)=>{for(let O=T;O{if(k.shapeFlag&6)return se(k.component.subTree);if(k.shapeFlag&128)return k.suspense.next();let S=h(k.anchor||k.el),V=S&&S[cu];return V?h(V):S},Y=(k,S,V)=>{let G=k&&S._vnode?void 0:k&&k.component?k.component.uid:Zu();ru(()=>{k==null?S._vnode&&_e(S._vnode,null,null,!0):m(S._vnode||null,k,S,null,null,null,V),S._vnode=k},G)},Z={p:m,um:_e,m:Se,r:ze,mt:Q,mc:R,pc:Ee,pbc:ie,n:se,o:e},ue,be;return t&&([ue,be]=t(Z)),{render:Y,hydrate:ue,createApp:Tu(Y,ue)}}function Ms({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function ln({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Gu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Kr(e,t,o=!1){let i=e.children,s=t.children;if(he(i)&&he(s))for(let r=0;r>1,e[o[c]]0&&(t[i]=o[r-1]),o[r]=i)}}for(r=o.length,a=o[r-1];r-- >0;)o[r]=a,a=t[a];return o}function Yr(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Yr(t)}function ur(e){if(e)for(let t=0;te.__isSuspense;function Ku(e,t){t&&t.pendingBranch?he(e)?t.effects.push(...e):t.effects.push(e):gr(e)}var K=Symbol.for("v-fgt"),Ko=Symbol.for("v-txt"),Tt=Symbol.for("v-cmt"),to=Symbol.for("v-stc"),dn=[],vt=null;function l(e=!1){dn.push(vt=e?null:[])}function Qr(){dn.pop(),vt=dn[dn.length-1]||null}var so=1;function Fo(e,t=!1){so+=e,e<0&&vt&&t&&(vt.hasOnce=!0)}function Xr(e){return e.dynamicChildren=so>0?vt||xt:null,Qr(),so>0&&vt&&vt.push(e),e}function d(e,t,o,i,s,r){return Xr(n(e,t,o,i,s,r,!0))}function Ft(e,t,o,i,s){return Xr(Ce(e,t,o,i,s,!0))}function io(e){return e?e.__v_isVNode===!0:!1}function Qn(e,t){return e.type===t.type&&e.key===t.key}var Zr=({key:e})=>e??null,qo=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Le(e)||Ze(e)||ye(e)?{i:mt,r:e,k:t,f:!!o}:e:null);function n(e,t=null,o=null,i=0,s=null,r=e===K?0:1,a=!1,c=!1){let f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Zr(t),ref:t&&qo(t),scopeId:kr,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:mt};return c?(Bo(f,o),r&128&&e.normalize(f)):o&&(f.shapeFlag|=Le(o)?8:16),so>0&&!a&&vt&&(f.patchFlag>0||r&6)&&f.patchFlag!==32&&vt.push(f),f}var Ce=Yu;function Yu(e,t=null,o=null,i=0,s=null,r=!1){if((!e||e===ku)&&(e=Tt),io(e)){let c=Rn(e,t,!0);return o&&Bo(c,o),so>0&&!r&&vt&&(c.shapeFlag&6?vt[vt.indexOf(e)]=c:vt.push(c)),c.patchFlag=-2,c}if(ic(e)&&(e=e.__vccOpts),t){t=Ju(t);let{class:c,style:f}=t;c&&!Le(c)&&(t.class=P(c)),De(f)&&(Jn(f)&&!he(f)&&(f=je({},f)),t.style=qe(f))}let a=Le(e)?1:Jr(e)?128:zo(e)?64:De(e)?4:ye(e)?2:0;return n(e,t,o,i,s,a,r,!0)}function Ju(e){return e?Jn(e)||Fr(e)?je({},e):e:null}function Rn(e,t,o=!1,i=!1){let{props:s,ref:r,patchFlag:a,children:c,transition:f}=e,g=t?Qu(s||{},t):s,y={__v_isVNode:!0,__v_skip:!0,type:e.type,props:g,key:g&&Zr(g),ref:t&&t.ref?o&&r?he(r)?r.concat(qo(t)):[r,qo(t)]:qo(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:c,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==K?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:f,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Rn(e.ssContent),ssFallback:e.ssFallback&&Rn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return f&&i&&oo(y,f.clone(y)),y}function v(e=" ",t=0){return Ce(Ko,null,e,t)}function fe(e,t){let o=Ce(to,null,e);return o.staticCount=t,o}function p(e="",t=!1){return t?(l(),Ft(Tt,null,e)):Ce(Tt,null,e)}function $t(e){return e==null||typeof e=="boolean"?Ce(Tt):he(e)?Ce(K,null,e.slice()):io(e)?Kt(e):Ce(Ko,null,String(e))}function Kt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Rn(e)}function Bo(e,t){let o=0,{shapeFlag:i}=e;if(t==null)t=null;else if(he(t))o=16;else if(typeof t=="object")if(i&65){let s=t.default;s&&(s._c&&(s._d=!1),Bo(e,s()),s._c&&(s._d=!0));return}else{o=32;let s=t._;!s&&!Fr(t)?t._ctx=mt:s===3&&mt&&(mt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(ye(t)){if(i&65){Bo(e,{default:t});return}t={default:t,_ctx:mt},o=32}else t=String(t),i&64?(o=16,t=[v(t)]):o=8;e.children=t,e.shapeFlag|=o}function Qu(...e){let t={};for(let o=0;ott||mt,Ho,ro;{let e=$n(),t=(o,i)=>{let s;return(s=e[o])||(s=e[o]=[]),s.push(i),r=>{s.length>1?s.forEach(a=>a(r)):s[0](r)}};Ho=t("__VUE_INSTANCE_SETTERS__",o=>tt=o),ro=t("__VUE_SSR_SETTERS__",o=>Dn=o)}var po=e=>{let t=tt;return Ho(e),e.scope.on(),()=>{e.scope.off(),Ho(t)}},cr=()=>{tt&&tt.scope.off(),Ho(null)};function ea(e){return e.vnode.shapeFlag&4}var Dn=!1;function ec(e,t=!1,o=!1){t&&ro(t);let{props:i,children:s}=e.vnode,r=ea(e);Uu(e,i,r,t),Bu(e,s,o||t);let a=r?tc(e,t):void 0;return t&&ro(!1),a}function tc(e,t){let o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Eu);let{setup:i}=o;if(i){Nt();let s=e.setupContext=i.length>1?oc(e):null,r=po(e),a=ao(i,e,0,[e.props,s]),c=fs(a);if(Rt(),r(),(c||e.sp)&&!xn(e)&&js(e),c){if(a.then(cr,cr),t)return a.then(f=>{ro(!0);try{pr(e,f,t)}finally{ro(!1)}}).catch(f=>{lo(f,e,0)});e.asyncDep=a}else pr(e,a,t)}else ta(e,t)}function pr(e,t,o){ye(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:De(t)&&(e.setupState=Io(t)),ta(e,o)}var fr,hr;function ta(e,t,o){let i=e.type;if(!e.render){if(!t&&fr&&!i.render){let s=i.template||Gs(e).template;if(s){let{isCustomElement:r,compilerOptions:a}=e.appContext.config,{delimiters:c,compilerOptions:f}=i,g=je(je({isCustomElement:r,delimiters:c},a),f);i.render=fr(s,g)}}e.render=i.render||rt,hr&&hr(e)}{let s=po(e);Nt();try{Cu(e)}finally{Rt(),s()}}}var nc={get(e,t){return xe(e,"get",""),e[t]}};function oc(e){let t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,nc),slots:e.slots,emit:e.emit,expose:t}}function Yo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Io(Os(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in eo)return eo[o](e)},has(t,o){return o in t||o in eo}})):e.proxy}function sc(e,t=!0){return ye(e)?e.displayName||e.name:e.name||t&&e.__name}function ic(e){return ye(e)&&"__vccOpts"in e}var nt=(e,t)=>Xi(e,t,Dn);function we(e,t,o){try{Fo(-1);let i=arguments.length;return i===2?De(t)&&!he(t)?io(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(i>3?o=Array.prototype.slice.call(arguments,2):i===3&&io(o)&&(o=[o]),Ce(e,t,o))}finally{Fo(1)}}var rc="3.5.44";var Zs,na=typeof window<"u"&&window.trustedTypes;if(na)try{Zs=na.createPolicy("vue",{createHTML:e=>e})}catch{}var ha=Zs?e=>Zs.createHTML(e):e=>e,ac="http://www.w3.org/2000/svg",lc="http://www.w3.org/1998/Math/MathML",Jt=typeof document<"u"?document:null,oa=Jt&&Jt.createElement("template"),dc={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,i)=>{let s=t==="svg"?Jt.createElementNS(ac,e):t==="mathml"?Jt.createElementNS(lc,e):o?Jt.createElement(e,{is:o}):Jt.createElement(e);return e==="select"&&i&&i.multiple!=null&&s.setAttribute("multiple",i.multiple),s},createText:e=>Jt.createTextNode(e),createComment:e=>Jt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Jt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,i,s,r){let a=o?o.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),o),!(s===r||!(s=s.nextSibling)););else{oa.innerHTML=ha(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);let c=oa.content;if(i==="svg"||i==="mathml"){let f=c.firstChild;for(;f.firstChild;)c.appendChild(f.firstChild);c.removeChild(f)}t.insertBefore(c,o)}return[a?a.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}};var uc=Symbol("_vtc");function cc(e,t,o){let i=e[uc];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}var Xo=Symbol("_vod"),ma=Symbol("_vsh"),W={name:"show",beforeMount(e,{value:t},{transition:o}){e[Xo]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):fo(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:i}){!t!=!o&&(i?t?(i.beforeEnter(e),fo(e,!0),i.enter(e)):i.leave(e,()=>{fo(e,!1)}):fo(e,t))},beforeUnmount(e,{value:t}){fo(e,t)}};function fo(e,t){e.style.display=t?e[Xo]:"none",e[ma]=!t}var pc=Symbol("");var fc=/(?:^|;)\s*display\s*:/;function hc(e,t,o){let i=e.style,s=Le(o),r=!1;if(o&&!s){if(t)if(Le(t))for(let a of t.split(";")){let c=a.slice(0,a.indexOf(":")).trim();o[c]==null&&ho(i,c,"")}else for(let a in t)o[a]==null&&ho(i,a,"");for(let a in o){a==="display"&&(r=!0);let c=o[a];c!=null?vc(e,a,!Le(t)&&t?t[a]:void 0,c)||ho(i,a,c):ho(i,a,"")}}else if(s){if(t!==o){let a=i[pc];a&&(o+=";"+a),i.cssText=o,r=fc.test(o)}}else t&&e.removeAttribute("style");Xo in e&&((!s||t!==o)&&(e[Xo]=r?i.display:""),e[ma]&&(i.display="none"))}var Jo=/\s*!important$/;function ho(e,t,o){if(he(o))o.forEach(i=>ho(e,t,i));else if(o==null&&(o=""),t.startsWith("--"))Jo.test(o)?e.setProperty(t,o.replace(Jo,""),"important"):e.setProperty(t,o);else{let i=mc(e,t);Jo.test(o)?e.setProperty(Ot(i),o.replace(Jo,""),"important"):e[i]=o}}var sa=["Webkit","Moz","ms"],Js={};function mc(e,t){let o=Js[t];if(o)return o;let i=Je(t);if(i!=="filter"&&i in e)return Js[t]=i;i=on(i);for(let s=0;sQs||(Ec.then(()=>Qs=0),Qs=Date.now());function Sc(e,t){let o=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=o.attached)return;let s=o.value;if(he(s)){let r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};let a=s.slice(),c=[i];for(let f=0;fe.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,_c=(e,t,o,i,s,r)=>{let a=s==="svg";t==="class"?cc(e,i,a):t==="style"?hc(e,o,i):yn(t)?bn(t)||yc(e,t,o,i,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Nc(e,t,i,a))?(aa(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ra(e,t,i,a,r,t!=="value")):e._isVueCE&&(Rc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Le(i)))?aa(e,Je(t),i,r,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),ra(e,t,i,a))};function Nc(e,t,o,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&da(t)&&ye(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return da(t)&&Le(o)?!1:t in e}function Rc(e,t){let o=e._def.props;if(!o)return!1;let i=Je(t);return Array.isArray(o)?o.some(s=>Je(s)===i):Object.keys(o).some(s=>Je(s)===i)}var Tn=e=>{let t=e.props["onUpdate:modelValue"]||!1;return he(t)?o=>kn(t,o):t};function Dc(e){e.target.composing=!0}function ua(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}var Bt=Symbol("_assign"),Qo=Symbol("_initialValue");function Xs(e,t,o){return t&&(e=e.trim()),o&&(e=En(e)),e}var wt={created(e,{modifiers:{lazy:t,trim:o,number:i}},s){e.parentNode&&(e.type==="text"?e[Qo]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Qo]=e.defaultValue.replace(/\r\n?/g,` +"use strict";(()=>{var Sd=Object.defineProperty;var _d=(e,t)=>{for(var o in t)Sd(e,o,{get:t[o],enumerable:!0})};var ce=["abap","abc","actionscript","ada","alda","apache_conf","apex","applescript","aql","asciidoc","asl","assembly_x86","autohotkey","batchfile","c9search","c_cpp","cirru","clojure","cobol","coffee","coldfusion","crystal","csharp","csound_document","csound_orchestra","csound_score","csp","css","curly","d","dart","diff","django","dockerfile","dot","drools","edifact","eiffel","ejs","elixir","elm","erlang","forth","fortran","fsharp","fsl","ftl","gcode","gherkin","gitignore","glsl","gobstones","golang","graphqlschema","groovy","haml","handlebars","haskell","haskell_cabal","haxe","hjson","html","html_elixir","html_ruby","ini","io","jack","jade","java","javascript","json","json5","jsoniq","jsp","jssm","jsx","julia","kotlin","latex","less","liquid","lisp","livescript","logiql","logtalk","lsl","lua","luapage","lucene","makefile","markdown","mask","matlab","maze","mediawiki","mel","mixal","mushcode","mysql","nginx","nim","nix","nsis","nunjucks","objectivec","ocaml","pascal","perl","perl6","pgsql","php","php_laravel_blade","pig","plain_text","powershell","praat","prisma","prolog","properties","protobuf","puppet","python","qml","r","razor","rdoc","red","redshift","rhtml","rst","ruby","rust","sass","scad","scala","scheme","scss","sh","sjs","slim","smarty","snippets","soy_template","space","sparql","sql","sqlserver","stylus","svg","swift","tcl","terraform","tex","text","textile","toml","tsx","turtle","twig","typescript","vala","vbscript","velocity","verilog","vhdl","visualforce","wollok","xml","xquery","yaml","zeek"];var pe={markdown:"/script/markdown.6c8dfb7b1d.min.js",notebook:"/script/notebook.c3144c18ae.min.js",org:"/script/org.f61f262915.min.js",pdf:"/script/pdf.4d9cc6ff49.min.js",editor:"/script/editor.4f142d3adc.min.js"};function Ei(e){let t=e.location.hash.slice(1);if(e.history.replaceState(null,"","/review-link"),t.length>2048)return null;let o=new URLSearchParams(t);if([...o.keys()].length!==3||[...o.keys()].some(a=>!["clientId","intentId","token"].includes(a)))return null;let i=o.get("clientId"),s=o.get("intentId"),r=o.get("token");return!/^[a-f0-9]{32}$/.test(i||"")||!/^[a-f0-9]{32}$/.test(s||"")||!/^[a-f0-9]{64}$/.test(r||"")?null:{contract:"4open.artifacts/1",clientId:i,intentId:s,token:r}}function Ci(e,t){let{http:o,promises:i,window:s}=t,r=t.takeReviewHandoff(),a=r?{clientId:r.clientId,intentId:r.intentId}:null,c,f,g,y,b,h=!0,E,S=i.defer(),m=()=>[...s.crypto.getRandomValues(new Uint8Array(16))].map(U=>U.toString(16).padStart(2,"0")).join("");Object.assign(e,{repositoryId:"",handoffEnabled:!1,busy:!1,preview:null,acceptAccess:!1,acceptRetention:!1,uncertain:!1,saved:!1,expired:!1,error:r?"":"Open a new artifact link from your submission. This link is missing or invalid."});let C=()=>h&&e.user?.username===b;function N(){h=!1,r=c=f=void 0,S.resolve(),s.clearTimeout(E)}e.on("dispose",N),e.on("routeLeave",N),e.watch(()=>e.user?.username,U=>{!b&&U?b=U:b&&U!==b&&(N(),e.preview=null,e.repositoryId="",e.busy=!1,e.saved=!1,e.handoffEnabled=!1,e.error="Your account changed. Open a new artifact link from your submission.")});let A=()=>({timeout:S.promise,headers:{"Content-Type":"application/json","X-Review-CSRF":f}}),M=U=>U?.status===404?"Artifact linking is not available on this server.":U?.status===401?"Sign in, then open a new artifact link from your submission.":U?.status===403?"This account cannot approve this repository or this link.":"The request could not be completed. You can retry from this page.";e.loadPreview=async()=>{if(!h||!r||e.busy||e.uncertain||e.saved||!e.user?.username)return;b=e.user.username;let U=e.repositoryId.trim();if(!/^[A-Za-z0-9_-]{3,128}$/.test(U)){e.error="Enter the anonymous repository ID from its URL.";return}e.busy=!0,e.error="",e.preview=null,c=void 0,e.acceptAccess=e.acceptRetention=!1,e.expired=!1,s.clearTimeout(E),y||(y=m());try{let q=(await o.get("/api/review-consent/csrf",{timeout:S.promise})).data;if(!C())return;if(f=q.csrf,e.handoffEnabled=q.handoffEnabled===!0,!/^[a-f0-9]{64}$/.test(f||""))throw new Error("invalid_csrf");let B=(await o.post("/api/review-consent/preview",{repositoryId:U,intent:{...r,requestId:y}},A())).data;if(!C())return;if(!B||typeof B.ticket!="string"||!B.ticket||B.ticket.length>8192||typeof B.repositoryName!="string"||!["restricted-review","anonymous-link"].includes(B.policy?.access)||!Number.isSafeInteger(B.policy.version)||!Number.isFinite(Date.parse(B.policy.retainUntil))||!Number.isFinite(Date.parse(B.expiresAt))||Date.parse(B.expiresAt)<=Date.now()||Date.parse(B.expiresAt)>Date.now()+6e5)throw new Error("invalid_preview");c=B.ticket,g=m(),e.preview={repositoryName:B.repositoryName,policy:{...B.policy},expiresAt:B.expiresAt},E=s.setTimeout(()=>{h&&(e.expired=!0)},Math.max(0,Date.parse(B.expiresAt)-Date.now()))}catch(q){C()&&(e.error=M(q))}finally{C()&&(e.busy=!1)}},e.confirmConsent=async()=>{if(!(!C()||e.busy||e.saved||!c||!e.acceptAccess||!e.acceptRetention)){if(Date.parse(e.preview.expiresAt)<=Date.now()){e.expired=!0;return}e.busy=!0,e.error="";try{let U=(await o.post("/api/review-consent/confirm",{ticket:c,requestId:g,acceptAccess:!0,acceptRetention:!0},A())).data;if(!C())return;if(U?.requestId!==g||!Number.isFinite(Date.parse(U.confirmedAt)))throw new Error("invalid_receipt");e.saved=!0,e.uncertain=!1,r=void 0,e.handoffEnabled||(c=void 0)}catch{C()&&(e.uncertain=!0,e.error="The confirmation was not verified. Retry with the same approval, or return to your submission to check its status.")}finally{C()&&(e.busy=!1)}}},e.continueReview=async()=>{if(!C()||e.busy||!e.saved||!e.handoffEnabled||!c||!a)return;e.busy=!0,e.error="";let U,q=()=>{U?.remove(),s.removeEventListener("securitypolicyviolation",B)},B=oe=>{oe.violatedDirective?.startsWith("form-action")&&(q(),C()&&(e.busy=!1,e.error="The return address was blocked. Return to your submission to check the artifact status."))};try{let oe=(await o.post("/api/review-consent/handoff",{ticket:c},A())).data;if(!C())return;let ee=oe?.completion,R=new URL(oe?.callbackUrl);if(!ee||Object.keys(ee).sort().join(",")!=="clientId,code,contract,expiresAt,intentId"||ee.contract!=="4open.artifacts/1"||ee.clientId!==a.clientId||ee.intentId!==a.intentId||!/^[a-f0-9]{64}$/.test(ee.code||"")||!Number.isFinite(Date.parse(ee.expiresAt))||Date.parse(ee.expiresAt)<=Date.now()||Date.parse(ee.expiresAt)>Date.now()+3e5||R.protocol!=="https:"||R.href!==oe.callbackUrl||R.username||R.password||oe.callbackUrl.includes("?")||oe.callbackUrl.includes("#"))throw new Error("invalid_handoff");U=s.document.createElement("form"),U.method="POST",U.action=R.href;let j=s.document.createElement("input");j.type="hidden",j.name="completion",j.value=JSON.stringify(ee),U.appendChild(j),s.document.body.appendChild(U),s.addEventListener("securitypolicyviolation",B),e.on("dispose",q),U.submit()}catch{q(),C()&&(e.busy=!1,e.error="The return to review could not be prepared. Retry from this page, or return to your submission to check its status.")}}}var yo=new Map,Dd=pe;function nn(e){if(!yo.has(e)){let t=document.createElement("script");t.src=Dd[e];let o=new Promise((i,s)=>{t.onload=i,t.onerror=()=>{yo.delete(e),t.remove(),s(new Error(`Unable to load ${e}. Please retry.`))}});yo.set(e,o),document.head.appendChild(t)}return yo.get(e)}async function Si(){await nn("editor"),ace.config.set("basePath","/script/external/ace/")}function gn(e){let t=Object.create(null);for(let o of e.split(","))t[o]=1;return o=>o in t}var Pe={},xt=[],rt=()=>{},ps=()=>!1,yn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),bn=e=>e.startsWith("onUpdate:"),je=Object.assign,qn=(e,t)=>{let o=e.indexOf(t);o>-1&&e.splice(o,1)},Td=Object.prototype.hasOwnProperty,Ne=(e,t)=>Td.call(e,t),he=Array.isArray,zt=e=>Mn(e)==="[object Map]",Ct=e=>Mn(e)==="[object Set]",_i=e=>Mn(e)==="[object Date]";var ye=e=>typeof e=="function",Le=e=>typeof e=="string",ft=e=>typeof e=="symbol",De=e=>e!==null&&typeof e=="object",fs=e=>(De(e)||ye(e))&&ye(e.then)&&ye(e.catch),Ti=Object.prototype.toString,Mn=e=>Ti.call(e),hs=e=>Mn(e).slice(8,-1),bo=e=>Mn(e)==="[object Object]",wo=e=>Le(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,wn=gn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var ko=e=>{let t=Object.create(null);return(o=>t[o]||(t[o]=e(o)))},Ad=/-\w/g,Je=ko(e=>e.replace(Ad,t=>t.slice(1).toUpperCase())),Od=/\B([A-Z])/g,Ot=ko(e=>e.replace(Od,"-$1").toLowerCase()),on=ko(e=>e.charAt(0).toUpperCase()+e.slice(1)),Un=ko(e=>e?`on${on(e)}`:""),gt=(e,t)=>!Object.is(e,t),kn=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:i,value:o})},En=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var Ni,$n=()=>Ni||(Ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function qe(e){if(he(e)){let t={};for(let o=0;oo.startsWith("/*")?"":o).split(Pd).forEach(o=>{if(o){let i=o.split(Id);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function P(e){let t="";if(Le(e))t=e;else if(he(e))for(let o=0;oSt(o,t))}var Pi=e=>!!(e&&e.__v_isRef===!0),u=e=>Le(e)?e:e==null?"":he(e)||De(e)&&(e.toString===Ti||!ye(e.toString))?Pi(e)?u(e.value):JSON.stringify(e,Ii,2):String(e),Ii=(e,t)=>Pi(t)?Ii(e,t.value):zt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[i,s],r)=>(o[cs(i,r)+" =>"]=s,o),{})}:Ct(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>cs(o))}:ft(t)?cs(t):De(t)&&!he(t)&&!bo(t)?String(t):t,cs=(e,t="")=>{var o;return ft(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};function Ld(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Qe,Hn=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Qe&&(Qe.active?(this.parent=Qe,this.index=(Qe.scopes||(Qe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){let i=this.scopes.slice();for(t=0,o=i.length;t0&&--this._on===0){if(Qe===this)Qe=this.prevScope;else{let t=Qe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,i;for(o=0,i=this.effects.length;o0)return;if(Bn){let t=Bn;for(Bn=void 0;t;){let o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Fn;){let t=Fn;for(Fn=void 0;t;){let o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(i){e||(e=i)}t=o}}if(e)throw e}function Fi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Bi(e){let t,o=e.depsTail,i=o;for(;i;){let s=i.prevDep;i.version===-1?(i===o&&(o=s),Ds(i),Fd(i)):t=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=s}e.deps=t,e.depsTail=o}function ys(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Hi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Hi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===zn)||(e.globalVersion=zn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ys(e))))return;e.flags|=2;let t=e.dep,o=$e,i=_t;$e=e,_t=!0;try{Fi(e);let s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{$e=o,_t=i,Bi(e),e.flags&=-3}}function Ds(e,t=!1){let{dep:o,prevSub:i,nextSub:s}=e;if(i&&(i.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=i,e.nextSub=void 0),o.subs===e&&(o.subs=i,!i&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)Ds(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Fd(e){let{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}var _t=!0,zi=[];function Nt(){zi.push(_t),_t=!1}function Rt(){let e=zi.pop();_t=e===void 0?!0:e}function Vi(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let o=$e;$e=void 0;try{t()}finally{$e=o}}}var zn=0,bs=class{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},jn=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!$e||!_t||$e===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==$e)o=this.activeLink=new bs($e,this),$e.deps?(o.prevDep=$e.depsTail,$e.depsTail.nextDep=o,$e.depsTail=o):$e.deps=$e.depsTail=o,ji(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){let i=o.nextDep;i.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=i),o.prevDep=$e.depsTail,o.nextDep=void 0,$e.depsTail.nextDep=o,$e.depsTail=o,$e.deps===o&&($e.deps=i)}return o}trigger(t){this.version++,zn++,this.notify(t)}notify(t){Ns();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Rs()}}};function ji(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let i=t.deps;i;i=i.nextDep)ji(i)}let o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}var ws=new WeakMap,rn=Symbol(""),ks=Symbol(""),Gn=Symbol("");function xe(e,t,o){if(_t&&$e){let i=ws.get(e);i||ws.set(e,i=new Map);let s=i.get(o);s||(i.set(o,s=new jn),s.map=i,s.key=o),s.track()}}function It(e,t,o,i,s,r){let a=ws.get(e);if(!a){zn++;return}let c=f=>{f&&f.trigger()};if(Ns(),t==="clear")a.forEach(c);else{let f=he(e),g=f&&wo(o);if(f&&o==="length"){let y=Number(i);a.forEach((b,h)=>{(h==="length"||h===Gn||!ft(h)&&h>=y)&&c(b)})}else switch((o!==void 0||a.has(void 0))&&c(a.get(o)),g&&c(a.get(Gn)),t){case"add":f?g&&c(a.get("length")):(c(a.get(rn)),zt(e)&&c(a.get(ks)));break;case"delete":f||(c(a.get(rn)),zt(e)&&c(a.get(ks)));break;case"set":zt(e)&&c(a.get(rn));break}}Rs()}function Cn(e){let t=Re(e);return t===e||(xe(t,"iterate",Gn),at(e))?t:yt(e)?qt(e)?t.map(o=>Gt(ht(o))):t.map(Gt):t.map(ht)}function Kn(e){return xe(e=Re(e),"iterate",Gn),e}function Pt(e,t){return yt(e)?Gt(qt(e)?ht(t):t):ht(t)}var Bd={__proto__:null,[Symbol.iterator](){return vs(this,Symbol.iterator,e=>Pt(this,e))},concat(...e){return Cn(this).concat(...e.map(t=>he(t)?Cn(t):t))},entries(){return vs(this,"entries",e=>(e[1]=Pt(this,e[1]),e))},every(e,t){return jt(this,"every",e,t,void 0,arguments)},filter(e,t){return jt(this,"filter",e,t,o=>o.map(i=>Pt(this,i)),arguments)},find(e,t){return jt(this,"find",e,t,o=>Pt(this,o),arguments)},findIndex(e,t){return jt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return jt(this,"findLast",e,t,o=>Pt(this,o),arguments)},findLastIndex(e,t){return jt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return jt(this,"forEach",e,t,void 0,arguments)},includes(...e){return gs(this,"includes",e)},indexOf(...e){return gs(this,"indexOf",e)},join(e){return Cn(this).join(e)},lastIndexOf(...e){return gs(this,"lastIndexOf",e)},map(e,t){return jt(this,"map",e,t,void 0,arguments)},pop(){return Ln(this,"pop")},push(...e){return Ln(this,"push",e)},reduce(e,...t){return Mi(this,"reduce",e,t)},reduceRight(e,...t){return Mi(this,"reduceRight",e,t)},shift(){return Ln(this,"shift")},some(e,t){return jt(this,"some",e,t,void 0,arguments)},splice(...e){return Ln(this,"splice",e)},toReversed(){return Cn(this).toReversed()},toSorted(e){return Cn(this).toSorted(e)},toSpliced(...e){return Cn(this).toSpliced(...e)},unshift(...e){return Ln(this,"unshift",e)},values(){return vs(this,"values",e=>Pt(this,e))}};function vs(e,t,o){let i=Kn(e),s=i[t],r=s.call(i);if(i!==e&&!at(e)){if(r[Symbol.toStringTag]==="Array Iterator"){let a=Object.create(Object.getPrototypeOf(r));return a.next=()=>qi(r.next(),o),s!==Gi[t]&&Object.defineProperties(a,{return:{get(){let c=r.return;return typeof c=="function"?c.bind(r):c}},throw:{get(){let c=r.throw;return typeof c=="function"?c.bind(r):c}}}),a}r._next=r.next,r.next=()=>qi(r._next(),o)}return r}function qi(e,t){return e.done||(e.value=t(e.value)),e}var Gi=Array.prototype;function jt(e,t,o,i,s,r){let a=Kn(e),c=a!==e&&!at(e),f=a[t];if(f!==Gi[t]){let b=f.apply(e,r);return c?ht(b):b}let g=o;a!==e&&(c?g=function(b,h){return o.call(this,Pt(e,b),h,e)}:o.length>2&&(g=function(b,h){return o.call(this,b,h,e)}));let y=f.call(a,g,i);return c&&s?s(y):y}function Mi(e,t,o,i){let s=Kn(e),r=s!==e&&!at(e),a=o,c=!1;s!==e&&(r?(c=i.length===0,a=function(g,y,b){return c&&(c=!1,g=Pt(e,g)),o.call(this,g,Pt(e,y),b,e)}):o.length>3&&(a=function(g,y,b){return o.call(this,g,y,b,e)}));let f=s[t](a,...i);return c?Pt(e,f):f}function gs(e,t,o){let i=Re(e);xe(i,"iterate",Gn);let s=i[t](...o);return(s===-1||s===!1)&&Jn(o[0])?(o[0]=Re(o[0]),i[t](...o)):s}function Ln(e,t,o=[]){Nt(),Ns();let i=Re(e)[t].apply(e,o);return Rs(),Rt(),i}var Hd=gn("__proto__,__v_isRef,__isVue"),Wi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(ft));function zd(e){ft(e)||(e=String(e));let t=Re(this);return xe(t,"has",e),t.hasOwnProperty(e)}var Do=class{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,i){if(o==="__v_skip")return t.__v_skip;let s=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!s;if(o==="__v_isReadonly")return s;if(o==="__v_isShallow")return r;if(o==="__v_raw")return i===(s?r?Zd:Ji:r?Yi:Ki).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(i)?t:void 0;let a=he(t);if(!s){let f;if(a&&(f=Bd[o]))return f;if(o==="hasOwnProperty")return zd}let c=Reflect.get(t,o,Ze(t)?t:i);if((ft(o)?Wi.has(o):Hd(o))||(s||xe(t,"get",o),r))return c;if(Ze(c)){let f=a&&wo(o)?c:c.value;return s&&De(f)?Ao(f):f}return De(c)?s?Ao(c):Fe(c):c}},To=class extends Do{constructor(t=!1){super(!1,t)}set(t,o,i,s){let r=t[o],a=he(t)&&wo(o);if(!this._isShallow){let g=yt(r);if(!at(i)&&!yt(i)&&(r=Re(r),i=Re(i)),!a&&Ze(r)&&!Ze(i))return g||(r.value=i),!0}let c=a?Number(o)e,_o=e=>Reflect.getPrototypeOf(e);function Kd(e,t,o){return function(...i){let s=this.__v_raw,r=Re(s),a=zt(r),c=e==="entries"||e===Symbol.iterator&&a,f=e==="keys"&&a,g=s[e](...i),y=o?Cs:t?Gt:ht;return!t&&xe(r,"iterate",f?ks:rn),je(Object.create(g),{next(){let{value:b,done:h}=g.next();return h?{value:b,done:h}:{value:c?[y(b[0]),y(b[1])]:y(b),done:h}}})}}function No(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Yd(e,t){let o={get(s){let r=this.__v_raw,a=Re(r),c=Re(s);e||(gt(s,c)&&xe(a,"get",s),xe(a,"get",c));let{has:f}=_o(a),g=t?Cs:e?Gt:ht;if(f.call(a,s))return g(r.get(s));if(f.call(a,c))return g(r.get(c));r!==a&&r.get(s)},get size(){let s=this.__v_raw;return!e&&xe(Re(s),"iterate",rn),s.size},has(s){let r=this.__v_raw,a=Re(r),c=Re(s);return e||(gt(s,c)&&xe(a,"has",s),xe(a,"has",c)),s===c?r.has(s):r.has(s)||r.has(c)},forEach(s,r){let a=this,c=a.__v_raw,f=Re(c),g=t?Cs:e?Gt:ht;return!e&&xe(f,"iterate",rn),c.forEach((y,b)=>s.call(r,g(y),g(b),a))}};return je(o,e?{add:No("add"),set:No("set"),delete:No("delete"),clear:No("clear")}:{add(s){let r=Re(this),a=_o(r),c=Re(s),f=!t&&!at(s)&&!yt(s)?c:s;return a.has.call(r,f)||gt(s,f)&&a.has.call(r,s)||gt(c,f)&&a.has.call(r,c)||(r.add(f),It(r,"add",f,f)),this},set(s,r){!t&&!at(r)&&!yt(r)&&(r=Re(r));let a=Re(this),{has:c,get:f}=_o(a),g=c.call(a,s);g||(s=Re(s),g=c.call(a,s));let y=f.call(a,s);return a.set(s,r),g?gt(r,y)&&It(a,"set",s,r,y):It(a,"add",s,r),this},delete(s){let r=Re(this),{has:a,get:c}=_o(r),f=a.call(r,s);f||(s=Re(s),f=a.call(r,s));let g=c?c.call(r,s):void 0,y=r.delete(s);return f&&It(r,"delete",s,void 0,g),y},clear(){let s=Re(this),r=s.size!==0,a=void 0,c=s.clear();return r&&It(s,"clear",void 0,void 0,a),c}}),["keys","values","entries",Symbol.iterator].forEach(s=>{o[s]=Kd(s,e,t)}),o}function Ts(e,t){let o=Yd(e,t);return(i,s,r)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_isShallow"?t:s==="__v_raw"?i:Reflect.get(Ne(o,s)&&s in i?o:i,s,r)}var Jd={get:Ts(!1,!1)},Qd={get:Ts(!1,!0)},Xd={get:Ts(!0,!1)};var Ki=new WeakMap,Yi=new WeakMap,Ji=new WeakMap,Zd=new WeakMap;function xd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Fe(e){return yt(e)?e:As(e,!1,jd,Jd,Ki)}function Yn(e){return As(e,!1,Wd,Qd,Yi)}function Ao(e){return As(e,!0,Gd,Xd,Ji)}function As(e,t,o,i,s){if(!De(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let r=s.get(e);if(r)return r;let a=xd(hs(e));if(a===0)return e;let c=new Proxy(e,a===2?i:o);return s.set(e,c),c}function qt(e){return yt(e)?qt(e.__v_raw):!!(e&&e.__v_isReactive)}function yt(e){return!!(e&&e.__v_isReadonly)}function at(e){return!!(e&&e.__v_isShallow)}function Jn(e){return e?!!e.__v_raw:!1}function Re(e){let t=e&&e.__v_raw;return t?Re(t):e}function Os(e){return!Ne(e,"__v_skip")&&Object.isExtensible(e)&&Eo(e,"__v_skip",!0),e}var ht=e=>De(e)?Fe(e):e,Gt=e=>De(e)?Ao(e):e;function Ze(e){return e?e.__v_isRef===!0:!1}function et(e){return Qi(e,!1)}function Po(e){return Qi(e,!0)}function Qi(e,t){return Ze(e)?e:new Ss(e,t)}var Ss=class{constructor(t,o){this.dep=new jn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Re(t),this._value=o?t:ht(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){let o=this._rawValue,i=this.__v_isShallow||at(t)||yt(t);t=i?t:Re(t),gt(t,o)&&(this._rawValue=t,this._value=i?t:ht(t),this.dep.trigger())}};function Wt(e){return Ze(e)?e.value:e}var eu={get:(e,t,o)=>t==="__v_raw"?e:Wt(Reflect.get(e,t,o)),set:(e,t,o,i)=>{let s=e[t];return Ze(s)&&!Ze(o)?(s.value=o,!0):Reflect.set(e,t,o,i)}};function Io(e){return qt(e)?e:new Proxy(e,eu)}var _s=class{constructor(t,o,i){this.fn=t,this.setter=o,this._value=void 0,this.dep=new jn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=zn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&$e!==this)return Li(this,!0),!0}get value(){let t=this.dep.track();return Hi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Xi(e,t,o=!1){let i,s;return ye(e)?i=e:(i=e.get,s=e.set),new _s(i,s,o)}var Ro={},Oo=new WeakMap,sn;function Zi(e,t=!1,o=sn){if(o){let i=Oo.get(o);i||Oo.set(o,i=[]),i.push(e)}}function xi(e,t,o=Pe){let{immediate:i,deep:s,once:r,scheduler:a,augmentJob:c,call:f}=o,g=q=>{(o.onWarn||Ld)("Invalid watch source: ",q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},y=q=>s?q:at(q)||s===!1||s===0?Vt(q,1):Vt(q),b,h,E,S,m=!1,C=!1;if(Ze(e)?(h=()=>e.value,m=at(e)):qt(e)?(h=()=>y(e),m=!0):he(e)?(C=!0,m=e.some(q=>qt(q)||at(q)),h=()=>e.map(q=>{if(Ze(q))return q.value;if(qt(q))return y(q);if(ye(q))return f?f(q,2):q()})):ye(e)?t?h=f?()=>f(e,2):e:h=()=>{if(E){Nt();try{E()}finally{Rt()}}let q=sn;sn=b;try{return f?f(e,3,[S]):e(S)}finally{sn=q}}:h=rt,t&&s){let q=h,B=s===!0?1/0:s;h=()=>Vt(q(),B)}let N=Ui(),A=()=>{b.stop(),N&&N.active&&qn(N.effects,b)};if(r&&t){let q=t;t=(...B)=>{try{return q(...B)}finally{A()}}}let M=C?new Array(e.length).fill(Ro):Ro,U=q=>{if(!(!(b.flags&1)||!b.dirty&&!q))if(t){let B=b.run();if(q||s||m||(C?B.some((oe,ee)=>gt(oe,M[ee])):gt(B,M))){let oe=sn;Nt();try{E&&E(),sn=b;let ee=[B,M===Ro?void 0:C&&M[0]===Ro?[]:M,S];M=B,f?f(t,3,ee):t(...ee)}finally{sn=oe,Rt()}}}else b.run()};return c&&c(U),b=new Sn(h),b.scheduler=a?()=>a(U,!1):U,S=q=>Zi(q,!1,b),E=b.onStop=()=>{let q=Oo.get(b);if(q){if(f)f(q,4);else for(let B of q)B();Oo.delete(b)}},t?i?U(!0):M=b.run():a?a(U.bind(null,!0),!0):b.run(),A.pause=b.pause.bind(b),A.resume=b.resume.bind(b),A.stop=A,A}function Vt(e,t=1/0,o){if(t<=0||!De(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,Ze(e))Vt(e.value,t,o);else if(he(e))for(let i=0;i{Vt(i,t,o)});else if(bo(e)){for(let i in e)Vt(e[i],t,o);for(let i of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,i)&&Vt(e[i],t,o)}return e}function ao(e,t,o,i){try{return i?e(...i):e()}catch(s){lo(s,t,o)}}function bt(e,t,o,i){if(ye(e)){let s=ao(e,t,o,i);return s&&fs(s)&&s.catch(r=>{lo(r,t,o)}),s}if(he(e)){let s=[];for(let r=0;r>>1,s=st[i],r=no(s);r=no(o)?st.push(e):st.splice(iu(t),0,e),e.flags|=1,vr()}}function vr(){Mo||(Mo=mr.then(wr))}function gr(e){if(!he(e))en&&e.id===-1?en.splice(_n+1,0,e):e.flags&1||(Ut.push(e),e.flags|=1);else for(let t=0;t=t))continue;st.splice(i,1),i=e?i-1:Dt,s.flags&4&&(s.flags&=-2),s(),s.flags&4||(s.flags&=-2)}}}function br(e,t,o=0){if(Ut.length){let i=Ut,s=0;if(t){i=[];for(let a=0;ano(a)-no(c));if(Ut.length=s,en){for(let a=0;ae.id==null?e.flags&2?-1:1/0:e.id;function wr(e){let t=rt;try{for(Dt=0;Dt{i._d&&Fo(-1);let r=Uo(t),a=dn.length,c;try{c=e(...s)}finally{for(let f=dn.length;f>a;f--)Qr();Uo(r),i._d&&Fo(1)}return c};return i._n=!0,i._c=!0,i._d=!0,i}function D(e,t){if(mt===null)return e;let o=Yo(mt),i=e.dirs||(e.dirs=[]);for(let s=0;s1)return o&&ye(t)?t.call(i&&i.proxy):t}}var lu=Symbol.for("v-scx"),du=()=>{{let e=dt(lu);return e}};function Be(e,t,o){return Er(e,t,o)}function Er(e,t,o=Pe){let{immediate:i,deep:s,flush:r,once:a}=o,c=je({},o),f=t&&i||!t&&r!=="post",g;if(Dn){if(r==="sync"){let E=du();g=E.__watcherHandles||(E.__watcherHandles=[])}else if(!f){let E=()=>{};return E.stop=rt,E.resume=rt,E.pause=rt,E}}let y=tt;c.call=(E,S,m)=>bt(E,y,S,m);let b=!1;r==="post"?c.scheduler=E=>{E.i=y,lt(E,y&&y.suspense)}:r!=="sync"&&(b=!0,c.scheduler=(E,S)=>{S?E():zs(E)}),c.augmentJob=E=>{t&&(E.flags|=4),b&&(E.flags|=2,y&&(E.id=y.uid,E.i=y))};let h=xi(e,t,c);return Dn&&(g?g.push(h):f&&h()),h}function uu(e,t,o){let i=this.proxy,s=Le(e)?e.includes(".")?Cr(i,e):()=>i[e]:e.bind(i,i),r;ye(t)?r=t:(r=t.handler,o=t);let a=po(this),c=Er(s,r.bind(i),o);return a(),c}function Cr(e,t){let o=t.split(".");return()=>{let i=e;for(let s=0;se.__isTeleport;var Is=Symbol("_leaveCb");function pu(e){let t=e[0];if(e.length>1){let o=!1;for(let i of e)if(i.type!==Tt){t=i,o=!0;break}}return t}function Sr(e){if(!jo(e))return zo(e.type)&&e.children?pu(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&ye(o.default))return o.default()}}function oo(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let o=e.component.subTree;oo(zo(o.type)&&Sr(o)||o,t)}else if(e.shapeFlag&128)e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback);else if(e.transition=t,e.type===K&&he(e.children)){let o=Mr(e.children,!1);o&&oo(o,t)}}function Us(e){if(e.component)return Us(e.component.subTree);if(e.type===K){let t=he(e.children)&&Mr(e.children,!1);return t?Us(t):void 0}if(e.type!==Tt)return e}function uo(e,t){return ye(e)?je({name:e.name},t,{setup:e}):e}function js(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function er(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}var $o=new WeakMap;function Zn(e,t,o,i,s=!1){if(he(e)){e.forEach((m,C)=>Zn(m,t&&(he(t)?t[C]:t),o,i,s));return}if(xn(i)&&!s){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Zn(e,t,o,i.component.subTree);return}let r=i.shapeFlag&4?Yo(i.component):i.el,a=s?null:r,{i:c,r:f}=e,g=t&&t.r,y=c.refs===Pe?c.refs={}:c.refs,b=c.setupState,h=Re(b),E=b===Pe?ps:m=>er(y,m)?!1:Ne(h,m),S=(m,C)=>!(C&&er(y,C));if(g!=null&&g!==f){if(tr(t),Le(g))y[g]=null,E(g)&&(b[g]=null);else if(Ze(g)){let m=t;S(g,m.k)&&(g.value=null),m.k&&(y[m.k]=null)}}if(ye(f))ao(f,c,12,[a,y]);else{let m=Le(f),C=Ze(f);if(m||C){let N=()=>{if(e.f){let A=m?E(f)?b[f]:y[f]:S(f)||!e.k?f.value:y[e.k];if(s)he(A)&&qn(A,r);else if(he(A))A.includes(r)||A.push(r);else if(m)y[f]=[r],E(f)&&(b[f]=y[f]);else{let M=[r];S(f,e.k)&&(f.value=M),e.k&&(y[e.k]=M)}}else m?(y[f]=a,E(f)&&(b[f]=a)):C&&(S(f,e.k)&&(f.value=a),e.k&&(y[e.k]=a))};if(a){let A=()=>{N(),$o.delete(e)};A.id=-1,$o.set(e,A),lt(A,o)}else tr(e),N()}}}function tr(e){let t=$o.get(e);t&&(t.flags|=8,$o.delete(e))}var nr=e=>e.nodeType===8;var Y$=$n().requestIdleCallback||(e=>setTimeout(e,1)),J$=$n().cancelIdleCallback||(e=>clearTimeout(e));function fu(e,t){if(nr(e)&&e.data==="["){let o=1,i=e.nextSibling;for(;i;){if(i.nodeType===1){if(t(i)===!1)break}else if(nr(i))if(i.data==="]"){if(--o===0)break}else i.data==="["&&o++;i=i.nextSibling}}else t(e)}var xn=e=>!!e.type.__asyncLoader;function _r(e){ye(e)&&(e={loader:e});let{loader:t,loadingComponent:o,errorComponent:i,delay:s=200,hydrate:r,timeout:a,suspensible:c=!0,onError:f}=e,g=null,y,b=0,h=()=>(b++,g=null,E()),E=()=>{let S;return g||(S=g=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),f)return new Promise((C,N)=>{f(m,()=>C(h()),()=>N(m),b+1)});throw m}).then(m=>S!==g&&g?g:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),y=m,m)))};return uo({name:"AsyncComponentWrapper",__asyncLoader:E,__asyncHydrate(S,m,C){let N=S.isConnected,A=!1;(m.bu||(m.bu=[])).push(()=>A=!0);let M=()=>{A||!S.parentNode||N&&!S.isConnected||C()},U=r?()=>{let q=r(M,B=>fu(S,B));q&&(m.bum||(m.bum=[])).push(q)}:M;y?U():E().then(()=>!m.isUnmounted&&U())},get __asyncResolved(){return y},setup(){let S=tt;if(js(S),y)return()=>Vo(y,S);let m=q=>{g=null,lo(q,S,13,!i)};if(c&&S.suspense||Dn)return E().then(q=>()=>Vo(q,S)).catch(q=>(m(q),()=>i?Ce(i,{error:q}):null));let C=et(!1),N=et(),A=et(!!s),M,U;return co(()=>{M!=null&&clearTimeout(M),U!=null&&clearTimeout(U)}),s&&(U=setTimeout(()=>{S.isUnmounted||(A.value=!1)},s)),a!=null&&(M=setTimeout(()=>{if(!S.isUnmounted&&!C.value&&!N.value){let q=new Error(`Async component timed out after ${a}ms.`);m(q),N.value=q}},a)),E().then(()=>{S.isUnmounted||(C.value=!0,S.parent&&jo(S.parent.vnode)&&S.parent.update())}).catch(q=>{if(S.isUnmounted){g=null;return}m(q),N.value=q}),()=>{if(C.value&&y)return Vo(y,S);if(N.value&&i)return Ce(i,{error:N.value});if(o&&!A.value)return Vo(o,S)}}})}function Vo(e,t){let{ref:o,props:i,children:s,ce:r}=t.vnode,a=Ce(e,i,s);return a.ref=o,a.ce=r,delete t.vnode.ce,a}var jo=e=>e.type.__isKeepAlive;function Nr(e,t){Dr(e,"a",t)}function Rr(e,t){Dr(e,"da",t)}function Dr(e,t,o=tt){let i=e.__wdc||(e.__wdc=()=>{let s=o;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Go(t,i,o),o){let s=o.parent;for(;s&&s.parent;)jo(s.parent.vnode)&&hu(i,t,o,s),s=s.parent}}function hu(e,t,o,i){let s=Go(t,e,i,!0);co(()=>{qn(i[t],s)},o)}function Go(e,t,o=tt,i=!1){if(o){let s=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...a)=>{Nt();let c=po(o),f=bt(t,o,e,a);return c(),Rt(),f});return i?s.unshift(r):s.push(r),r}}var Yt=e=>(t,o=tt)=>{(!Dn||e==="sp")&&Go(e,(...i)=>t(...i),o)},mu=Yt("bm"),Lt=Yt("m"),Tr=Yt("bu"),Ar=Yt("u"),cn=Yt("bum"),co=Yt("um"),vu=Yt("sp"),gu=Yt("rtg"),yu=Yt("rtc");function bu(e,t=tt){Go("ec",e,t)}var Or="components",wu="directives";function Ge(e,t){return Pr(Or,e,!0,t)||e}var ku=Symbol.for("v-ndc");function ge(e){return Pr(wu,e)}function Pr(e,t,o=!0,i=!1){let s=mt||tt;if(s){let r=s.type;if(e===Or){let c=sc(r,!1);if(c&&(c===t||c===Je(t)||c===on(Je(t))))return r}let a=or(s[e]||r[e],t)||or(s.appContext[e],t);return!a&&i?r:a}}function or(e,t){return e&&(e[t]||e[Je(t)]||e[on(Je(t))])}function ne(e,t,o,i){let s,r=o&&o[i],a=he(e);if(a||Le(e)){let c=a&&qt(e),f=!1,g=!1;c&&(f=!at(e),g=yt(e),e=Kn(e)),s=new Array(e.length);for(let y=0,b=e.length;yt(c,f,void 0,r&&r[f]));else{let c=Object.keys(e);s=new Array(c.length);for(let f=0,g=c.length;fe?ea(e)?Yo(e):$s(e.parent):null;var eo=je(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>$s(e.parent),$root:e=>$s(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Gs(e),$forceUpdate:e=>e.f||(e.f=()=>{zs(e.update)}),$nextTick:e=>e.n||(e.n=Ke.bind(e.proxy)),$watch:e=>uu.bind(e)});var Vs=(e,t)=>e!==Pe&&!e.__isScriptSetup&&Ne(e,t),Eu={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:o,setupState:i,data:s,props:r,accessCache:a,type:c,appContext:f}=e;if(t[0]!=="$"){let h=a[t];if(h!==void 0)switch(h){case 1:return i[t];case 2:return s[t];case 4:return o[t];case 3:return r[t]}else{if(Vs(i,t))return a[t]=1,i[t];if(s!==Pe&&Ne(s,t))return a[t]=2,s[t];if(Ne(r,t))return a[t]=3,r[t];if(o!==Pe&&Ne(o,t))return a[t]=4,o[t];Ls&&(a[t]=0)}}let g=eo[t],y,b;if(g)return t==="$attrs"&&xe(e.attrs,"get",""),g(e);if((y=c.__cssModules)&&(y=y[t]))return y;if(o!==Pe&&Ne(o,t))return a[t]=4,o[t];if(b=f.config.globalProperties,Ne(b,t))return b[t]},set({_:e},t,o){let{data:i,setupState:s,ctx:r}=e;return Vs(s,t)?(s[t]=o,!0):i!==Pe&&Ne(i,t)?(i[t]=o,!0):Ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:i,appContext:s,props:r,type:a}},c){let f;return!!(o[c]||e!==Pe&&c[0]!=="$"&&Ne(e,c)||Vs(t,c)||Ne(r,c)||Ne(i,c)||Ne(eo,c)||Ne(s.config.globalProperties,c)||(f=a.__cssModules)&&f[c])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ne(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function sr(e){return he(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}var Ls=!0;function Cu(e){let t=Gs(e),o=e.proxy,i=e.ctx;Ls=!1,t.beforeCreate&&ir(t.beforeCreate,e,"bc");let{data:s,computed:r,methods:a,watch:c,provide:f,inject:g,created:y,beforeMount:b,mounted:h,beforeUpdate:E,updated:S,activated:m,deactivated:C,beforeDestroy:N,beforeUnmount:A,destroyed:M,unmounted:U,render:q,renderTracked:B,renderTriggered:oe,errorCaptured:ee,serverPrefetch:R,expose:j,inheritAttrs:ie,components:ve,directives:z,filters:J}=t;if(g&&Su(g,i,null),a)for(let X in a){let re=a[X];ye(re)&&(i[X]=re.bind(o))}if(s){let X=s.call(o,o);De(X)&&(e.data=Fe(X))}if(Ls=!0,r)for(let X in r){let re=r[X],Ee=ye(re)?re.bind(o,o):ye(re.get)?re.get.bind(o,o):rt,Te=!ye(re)&&ye(re.set)?re.set.bind(o):rt,Ae=nt({get:Ee,set:Te});Object.defineProperty(i,X,{enumerable:!0,configurable:!0,get:()=>Ae.value,set:Se=>Ae.value=Se})}if(c)for(let X in c)Ir(c[X],i,o,X);if(f){let X=ye(f)?f.call(o):f;Reflect.ownKeys(X).forEach(re=>{un(re,X[re])})}y&&ir(y,e,"c");function te(X,re){he(re)?re.forEach(Ee=>X(Ee.bind(o))):re&&X(re.bind(o))}if(te(mu,b),te(Lt,h),te(Tr,E),te(Ar,S),te(Nr,m),te(Rr,C),te(bu,ee),te(yu,B),te(gu,oe),te(cn,A),te(co,U),te(vu,R),he(j))if(j.length){let X=e.exposed||(e.exposed={});j.forEach(re=>{Object.defineProperty(X,re,{get:()=>o[re],set:Ee=>o[re]=Ee,enumerable:!0})})}else e.exposed||(e.exposed={});q&&e.render===rt&&(e.render=q),ie!=null&&(e.inheritAttrs=ie),ve&&(e.components=ve),z&&(e.directives=z),R&&js(e)}function Su(e,t,o=rt){he(e)&&(e=Fs(e));for(let i in e){let s=e[i],r;De(s)?"default"in s?r=dt(s.from||i,s.default,!0):r=dt(s.from||i):r=dt(s),Ze(r)?Object.defineProperty(t,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:a=>r.value=a}):t[i]=r}}function ir(e,t,o){bt(he(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,o)}function Ir(e,t,o,i){let s=i.includes(".")?Cr(o,i):()=>o[i];if(Le(e)){let r=t[e];ye(r)&&Be(s,r)}else if(ye(e))Be(s,e.bind(o));else if(De(e))if(he(e))e.forEach(r=>Ir(r,t,o,i));else{let r=ye(e.handler)?e.handler.bind(o):t[e.handler];ye(r)&&Be(s,r,e)}}function Gs(e){let t=e.type,{mixins:o,extends:i}=t,{mixins:s,optionsCache:r,config:{optionMergeStrategies:a}}=e.appContext,c=r.get(t),f;return c?f=c:!s.length&&!o&&!i?f=t:(f={},s.length&&s.forEach(g=>Lo(f,g,a,!0)),Lo(f,t,a)),De(t)&&r.set(t,f),f}function Lo(e,t,o,i=!1){let{mixins:s,extends:r}=t;r&&Lo(e,r,o,!0),s&&s.forEach(a=>Lo(e,a,o,!0));for(let a in t)if(!(i&&a==="expose")){let c=_u[a]||o&&o[a];e[a]=c?c(e[a],t[a]):t[a]}return e}var _u={data:rr,props:ar,emits:ar,methods:Xn,computed:Xn,beforeCreate:ot,created:ot,beforeMount:ot,mounted:ot,beforeUpdate:ot,updated:ot,beforeDestroy:ot,beforeUnmount:ot,destroyed:ot,unmounted:ot,activated:ot,deactivated:ot,errorCaptured:ot,serverPrefetch:ot,components:Xn,directives:Xn,watch:Ru,provide:rr,inject:Nu};function rr(e,t){return t?e?function(){return je(ye(e)?e.call(this,this):e,ye(t)?t.call(this,this):t)}:t:e}function Nu(e,t){return Xn(Fs(e),Fs(t))}function Fs(e){if(he(e)){let t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${Ot(t)}Modifiers`];function Ou(e,t,...o){if(e.isUnmounted)return;let i=e.vnode.props||Pe,s=o,r=t.startsWith("update:"),a=r&&Au(i,t.slice(7));a&&(a.trim&&(s=o.map(y=>Le(y)?y.trim():y)),a.number&&(s=s.map(En)));let c,f=i[c=Un(t)]||i[c=Un(Je(t))];!f&&r&&(f=i[c=Un(Ot(t))]),f&&bt(f,e,6,s);let g=i[c+"Once"];if(g){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,bt(g,e,6,s)}}var Pu=new WeakMap;function qr(e,t,o=!1){let i=o?Pu:t.emitsCache,s=i.get(e);if(s!==void 0)return s;let r=e.emits,a={},c=!1;if(!ye(e)){let f=g=>{let y=qr(g,t,!0);y&&(c=!0,je(a,y))};!o&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!r&&!c?(De(e)&&i.set(e,null),null):(he(r)?r.forEach(f=>a[f]=null):je(a,r),De(e)&&i.set(e,a),a)}function Wo(e,t){return!e||!yn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ne(e,t[0].toLowerCase()+t.slice(1))||Ne(e,Ot(t))||Ne(e,t))}function qs(e){let{type:t,vnode:o,proxy:i,withProxy:s,propsOptions:[r],slots:a,attrs:c,emit:f,render:g,renderCache:y,props:b,data:h,setupState:E,ctx:S,inheritAttrs:m}=e,C=Uo(e),N,A;try{if(o.shapeFlag&4){let q=s||i,B=q;N=$t(g.call(B,q,y,b,E,h,S)),A=c}else{let q=t;N=$t(q.length>1?q(b,{attrs:c,slots:a,emit:f}):q(b,null)),A=t.props?c:Iu(c)}}catch(q){dn.length=0,lo(q,e,1),N=Ce(Tt)}let M=N,U;if(A&&m!==!1){let q=Object.keys(A),{shapeFlag:B}=M;q.length&&B&7&&(r&&q.some(bn)&&(A=Vu(A,r)),M=Rn(M,A,!1,!0))}if(o.dirs&&(M=Rn(M,null,!1,!0),M.dirs=M.dirs?M.dirs.concat(o.dirs):o.dirs),o.transition){let q=zo(M.type)&&Sr(M)||M;oo(q,o.transition)}return N=M,Uo(C),N}function Mr(e,t=!0){let o;for(let i=0;i{let t;for(let o in e)(o==="class"||o==="style"||yn(o))&&((t||(t={}))[o]=e[o]);return t},Vu=(e,t)=>{let o={};for(let i in e)(!bn(i)||!(i.slice(9)in t))&&(o[i]=e[i]);return o};function qu(e,t,o){let{props:i,children:s,component:r}=e,{props:a,children:c,patchFlag:f}=t,g=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&f>=0){if(f&1024)return!0;if(f&16)return i?lr(i,a,g):!!a;if(f&8){let y=t.dynamicProps;for(let b=0;bObject.create($r),Fr=e=>Object.getPrototypeOf(e)===$r;function Uu(e,t,o,i=!1){let s={},r=Lr();e.propsDefaults=Object.create(null),Br(e,t,s,r);for(let a in e.propsOptions[0])a in s||(s[a]=void 0);o?e.props=i?s:Yn(s):e.type.props?e.props=s:e.props=r,e.attrs=r}function $u(e,t,o,i){let{props:s,attrs:r,vnode:{patchFlag:a}}=e,c=Re(s),[f]=e.propsOptions,g=!1;if((i||a>0)&&!(a&16)){if(a&8){let y=e.vnode.dynamicProps;for(let b=0;b{f=!0;let[h,E]=Hr(b,t,!0);je(a,h),E&&c.push(...E)};!o&&t.mixins.length&&t.mixins.forEach(y),e.extends&&y(e.extends),e.mixins&&e.mixins.forEach(y)}if(!r&&!f)return De(e)&&i.set(e,xt),xt;if(he(r))for(let y=0;ye==="_"||e==="_ctx"||e==="$stable",Ks=e=>he(e)?e.map($t):[$t(e)],Fu=(e,t,o)=>{if(t._n)return t;let i=au((...s)=>Ks(t(...s)),o);return i._c=!1,i},zr=(e,t,o)=>{let i=e._ctx;for(let s in e){if(Ws(s))continue;let r=e[s];if(ye(r))t[s]=Fu(s,r,i);else if(r!=null){let a=Ks(r);t[s]=()=>a}}},jr=(e,t)=>{let o=Ks(t);e.slots.default=()=>o},Gr=(e,t,o)=>{for(let i in t)(o||!Ws(i))&&(e[i]=t[i])},Bu=(e,t,o)=>{let i=e.slots=Lr();if(e.vnode.shapeFlag&32){let s=t._;s?(Gr(i,t,o),o&&Eo(i,"_",s,!0)):zr(t,i)}else t&&jr(e,t)},Hu=(e,t,o)=>{let{vnode:i,slots:s}=e,r=!0,a=Pe;if(i.shapeFlag&32){let c=t._;c?o&&c===1?r=!1:Gr(s,t,o):(r=!t.$stable,zr(t,s)),a=t}else t&&(jr(e,t),a={default:1});if(r)for(let c in s)!Ws(c)&&a[c]==null&&delete s[c]};function zu(){let e=[]}var lt=Ku;function Wr(e){return ju(e)}function ju(e,t){zu();let o=$n();o.__VUE__=!0;let{insert:i,remove:s,patchProp:r,createElement:a,createText:c,createComment:f,setText:g,setElementText:y,parentNode:b,nextSibling:h,setScopeId:E=rt,insertStaticContent:S}=e,m=(k,_,V,G=null,w=null,T=null,O=void 0,I=null,F=!!_.dynamicChildren)=>{if(k===_)return;k&&!Qn(k,_)&&(G=se(k),_e(k,w,T,!0),k=null),_.patchFlag===-2&&(F=!1,_.dynamicChildren=null),_.dynamicChildren&&k&&k.dynamicChildren&&k.dynamicChildren.hasOnce&&(_.dynamicChildren===xt&&(_.dynamicChildren=[]),_.dynamicChildren.hasOnce=!0);let{type:L,ref:ae,shapeFlag:x}=_;switch(L){case Ko:C(k,_,V,G);break;case Tt:N(k,_,V,G);break;case to:k==null&&A(_,V,G,O);break;case K:z(k,_,V,G,w,T,O,I,F);break;default:x&1?B(k,_,V,G,w,T,O,I,F):x&6?J(k,_,V,G,w,T,O,I,F):(x&64||x&128)&&L.process(k,_,V,G,w,T,O,I,F,Z)}ae!=null&&w?Zn(ae,k&&k.ref,T,_||k,!_):ae==null&&k&&k.ref!=null&&Zn(k.ref,null,T,k,!0)},C=(k,_,V,G)=>{if(k==null)i(_.el=c(_.children),V,G);else{let w=_.el=k.el;_.children!==k.children&&g(w,_.children)}},N=(k,_,V,G)=>{k==null?i(_.el=f(_.children||""),V,G):_.el=k.el},A=(k,_,V,G)=>{[k.el,k.anchor]=S(k.children,_,V,G,k.el,k.anchor)},M=(k,_,V,G)=>{if(_.children!==k.children){let w=h(k.anchor);q(k),[_.el,_.anchor]=S(_.children,V,w,G)}else _.el=k.el,_.anchor=k.anchor},U=({el:k,anchor:_},V,G)=>{let w;for(;k&&k!==_;)w=h(k),i(k,V,G),k=w;i(_,V,G)},q=({el:k,anchor:_})=>{let V;for(;k&&k!==_;)V=h(k),s(k),k=V;s(_)},B=(k,_,V,G,w,T,O,I,F)=>{if(_.type==="svg"?O="svg":_.type==="math"&&(O="mathml"),k==null)oe(_,V,G,w,T,O,I,F);else{let L=k.el&&k.el._isVueCE?k.el:null;try{L&&L._beginPatch(),j(k,_,w,T,O,I,F)}finally{L&&L._endPatch()}}},oe=(k,_,V,G,w,T,O,I)=>{let F,L,{props:ae,shapeFlag:x,transition:le,dirs:me}=k;if(F=k.el=a(k.type,T,ae&&ae.is,ae),x&8?y(F,k.children):x&16&&R(k.children,F,null,G,w,Ms(k,T),O,I),me&&an(k,null,G,"created"),ee(F,k,k.scopeId,O,G),ae){for(let Me in ae)Me!=="value"&&!wn(Me)&&r(F,Me,null,ae[Me],T,G);"value"in ae&&r(F,"value",null,ae.value,T),(L=ae.onVnodeBeforeMount)&&Mt(L,G,k)}me&&an(k,null,G,"beforeMount");let ke=Gu(w,le);ke&&le.beforeEnter(F),i(F,_,V),((L=ae&&ae.onVnodeMounted)||ke||me)&<(()=>{let Ve;L&&Mt(L,G,k),ke&&le.enter(F),me&&an(k,null,G,"mounted")},w)},ee=(k,_,V,G,w)=>{if(V&&E(k,V),G)for(let T=0;T{for(let L=F;L{let I=_.el=k.el,{patchFlag:F,dynamicChildren:L,dirs:ae}=_;F|=k.patchFlag&16;let x=k.props||Pe,le=_.props||Pe,me;if(V&&ln(V,!1),(me=le.onVnodeBeforeUpdate)&&Mt(me,V,_,k),ae&&an(_,k,V,"beforeUpdate"),V&&ln(V,!0),L&&(!k.dynamicChildren||k.dynamicChildren.length!==L.length)&&(F=0,O=!1,L=null),(x.innerHTML&&le.innerHTML==null||x.textContent&&le.textContent==null)&&y(I,""),L?ie(k.dynamicChildren,L,I,V,G,Ms(_,w),T):O||Ee(k,_,I,null,V,G,Ms(_,w),T,!1),F>0){if(F&16)ve(I,x,le,V,w);else if(F&2&&x.class!==le.class&&r(I,"class",null,le.class,w),F&4&&r(I,"style",x.style,le.style,w),F&8){let ke=_.dynamicProps;for(let Me=0;Me{me&&Mt(me,V,_,k),ae&&an(_,k,V,"updated")},G)},ie=(k,_,V,G,w,T,O)=>{for(let I=0;I<_.length;I++){let F=k[I],L=_[I],ae=F.el||Hs(F),x=ae&&(F.type===K||!Qn(F,L)||F.shapeFlag&198)?b(ae):V;m(F,L,x,null,G,w,T,O,!0)}},ve=(k,_,V,G,w)=>{if(_!==V){if(_!==Pe)for(let T in _)!wn(T)&&!(T in V)&&r(k,T,_[T],null,w,G);for(let T in V){if(wn(T))continue;let O=V[T],I=_[T];O!==I&&T!=="value"&&r(k,T,I,O,w,G)}"value"in V&&r(k,"value",_.value,V.value,w)}},z=(k,_,V,G,w,T,O,I,F)=>{let L=_.el=k?k.el:c(""),ae=_.anchor=k?k.anchor:c(""),{patchFlag:x,dynamicChildren:le,slotScopeIds:me}=_;me&&(I=I?I.concat(me):me),k==null?(i(L,V,G),i(ae,V,G),R(_.children||[],V,ae,w,T,O,I,F)):x>0&&x&64&&le&&k.dynamicChildren&&k.dynamicChildren.length===le.length?(ie(k.dynamicChildren,le,V,w,T,O,I),(_.key!=null||w&&_===w.subTree)&&Kr(k,_,!0)):Ee(k,_,V,ae,w,T,O,I,F)},J=(k,_,V,G,w,T,O,I,F)=>{_.slotScopeIds=I,k==null?_.shapeFlag&512?w.ctx.activate(_,V,G,O,F):Q(_,V,G,w,T,O,F):te(k,_,F)},Q=(k,_,V,G,w,T,O)=>{let I=k.component=xu(k,G,w);if(jo(k)&&(I.ctx.renderer=Z),ec(I,!1,O),I.asyncDep){if(w&&w.registerDep(I,X,O,T),!k.el){let F=I.subTree=Ce(Tt);N(null,F,_,V),k.placeholder=F.el}}else X(I,k,_,V,w,T,O)},te=(k,_,V)=>{let G=_.component=k.component;if(qu(k,_,V))if(G.asyncDep&&!G.asyncResolved){_.el=k.el,_.placeholder=k.placeholder,re(G,_,V);return}else G.next=_,G.update();else _.el=k.el,_.placeholder=k.placeholder,G.vnode=_},X=(k,_,V,G,w,T,O)=>{let I=()=>{if(k.isMounted){let{next:x,bu:le,u:me,parent:ke,vnode:Me}=k;{let ct=Yr(k);if(ct){x&&(x.el=Me.el,re(k,x,O)),ct.asyncDep.then(()=>{lt(()=>{k.isUnmounted||L()},w)});return}}let Ve=x,We;ln(k,!1),x?(x.el=Me.el,re(k,x,O)):x=Me,le&&kn(le),(We=x.props&&x.props.onVnodeBeforeUpdate)&&Mt(We,ke,x,Me),ln(k,!0);let Ye=qs(k),Et=k.subTree;k.subTree=Ye,m(Et,Ye,b(Et.el),se(Et),k,w,T),x.el=Ye.el,Ve===null&&Mu(k,Ye.el),me&<(me,w),(We=x.props&&x.props.onVnodeUpdated)&<(()=>Mt(We,ke,x,Me),w)}else{let x,{el:le,props:me}=_,{bm:ke,m:Me,parent:Ve,root:We,type:Ye}=k,Et=xn(_);if(ln(k,!1),ke&&kn(ke),!Et&&(x=me&&me.onVnodeBeforeMount)&&Mt(x,Ve,_),ln(k,!0),le&&be){let ct=()=>{k.subTree=qs(k),be(le,k.subTree,k,w,null)};Et&&Ye.__asyncHydrate?Ye.__asyncHydrate(le,k,ct):ct()}else{We.ce&&We.ce._hasShadowRoot()&&We.ce._injectChildStyle(Ye,k.parent?k.parent.type:void 0);let ct=k.subTree=qs(k);m(null,ct,V,G,k,w,T),_.el=ct.el}if(Me&<(Me,w),!Et&&(x=me&&me.onVnodeMounted)){let ct=_;lt(()=>Mt(x,Ve,ct),w)}(_.shapeFlag&256||Ve&&xn(Ve.vnode)&&Ve.vnode.shapeFlag&256)&&k.a&<(k.a,w),k.isMounted=!0,_=V=G=null}};k.scope.on();let F=k.effect=new Sn(I);k.scope.off();let L=k.update=F.run.bind(F),ae=k.job=F.runIfDirty.bind(F);ae.i=k,ae.id=k.uid,F.scheduler=()=>zs(ae),ln(k,!0),L()},re=(k,_,V)=>{_.component=k;let G=k.vnode.props;k.vnode=_,k.next=null,$u(k,_.props,G,V),Hu(k,_.children,V),Nt(),yr(k),Rt()},Ee=(k,_,V,G,w,T,O,I,F=!1)=>{let L=k&&k.children,ae=k?k.shapeFlag:0,x=_.children,{patchFlag:le,shapeFlag:me}=_;if(le>0){if(le&128){Ae(L,x,V,G,w,T,O,I,F);return}else if(le&256){Te(L,x,V,G,w,T,O,I,F);return}}me&8?(ae&16&&H(L,w,T),x!==L&&y(V,x)):ae&16?me&16?Ae(L,x,V,G,w,T,O,I,F):H(L,w,T,!0):(ae&8&&y(V,""),me&16&&R(x,V,G,w,T,O,I,F))},Te=(k,_,V,G,w,T,O,I,F)=>{k=k||xt,_=_||xt;let L=k.length,ae=_.length,x=Math.min(L,ae),le;for(le=0;leae?H(k,w,T,!0,!1,x):R(_,V,G,w,T,O,I,F,x)},Ae=(k,_,V,G,w,T,O,I,F)=>{let L=0,ae=_.length,x=k.length-1,le=ae-1;for(;L<=x&&L<=le;){let me=k[L],ke=_[L]=F?Kt(_[L]):$t(_[L]);if(Qn(me,ke))m(me,ke,V,null,w,T,O,I,F);else break;L++}for(;L<=x&&L<=le;){let me=k[x],ke=_[le]=F?Kt(_[le]):$t(_[le]);if(Qn(me,ke))m(me,ke,V,null,w,T,O,I,F);else break;x--,le--}if(L>x){if(L<=le){let me=le+1,ke=mele)for(;L<=x;)_e(k[L],w,T,!0),L++;else{let me=L,ke=L,Me=new Map;for(L=ke;L<=le;L++){let pt=_[L]=F?Kt(_[L]):$t(_[L]);pt.key!=null&&Me.set(pt.key,L)}let Ve,We=0,Ye=le-ke+1,Et=!1,ct=0,Vn=new Array(Ye);for(L=0;L=Ye){_e(pt,w,T,!0);continue}let At;if(pt.key!=null)At=Me.get(pt.key);else for(Ve=ke;Ve<=le;Ve++)if(Vn[Ve-ke]===0&&Qn(pt,_[Ve])){At=Ve;break}At===void 0?_e(pt,w,T,!0):(Vn[At-ke]=L+1,At>=ct?ct=At:Et=!0,m(pt,_[At],V,null,w,T,O,I,F),We++)}let bi=Et?Wu(Vn):xt;for(Ve=bi.length-1,L=Ye-1;L>=0;L--){let pt=ke+L,At=_[pt],wi=_[pt+1],ki=pt+1{let{el:T,type:O,transition:I,children:F,shapeFlag:L}=k;if(L&6){Se(k.component.subTree,_,V,G);return}if(L&128){k.suspense.move(_,V,G);return}if(L&64){O.move(k,_,V,Z);return}if(O===K){i(T,_,V);for(let x=0;xI.enter(T),w));else{let{leave:x,delayLeave:le,afterLeave:me}=I,ke=()=>{k.ctx.isUnmounted?s(T):i(T,_,V)},Me=()=>{let Ve=T._isLeaving||!!T[Is];T._isLeaving&&T[Is](!0),I.persisted&&!Ve?ke():x(T,()=>{ke(),me&&me()})};le?le(T,ke,Me):Me()}else i(T,_,V)},_e=(k,_,V,G=!1,w=!1)=>{let{type:T,props:O,ref:I,children:F,dynamicChildren:L,shapeFlag:ae,patchFlag:x,dirs:le,cacheIndex:me,memo:ke}=k;if((x===-2||L&&L.hasOnce)&&(w=!1),I!=null&&(Nt(),Zn(I,null,V,k,!0),Rt()),me!=null&&(!k.ctx||k.ctx===_)&&(_.renderCache[me]=void 0),ae&256){_.ctx.deactivate(k);return}let Me=ae&1&&le,Ve=!xn(k),We;if(Ve&&(We=O&&O.onVnodeBeforeUnmount)&&Mt(We,_,k),ae&6)Ie(k.component,V,G);else{if(ae&128){k.suspense.unmount(V,G);return}Me&&an(k,null,_,"beforeUnmount"),ae&64?k.type.remove(k,_,V,Z,G):L&&!L.hasOnce&&(T!==K||x>0&&x&64)?H(L,_,V,!1,!0):(T===K&&x&384||!w&&ae&16)&&H(F,_,V),G&&ze(k)}let Ye=ke!=null&&me==null;(Ve&&(We=O&&O.onVnodeUnmounted)||Me||Ye)&<(()=>{We&&Mt(We,_,k),Me&&an(k,null,_,"unmounted"),Ye&&(k.el=null)},V)},ze=k=>{let{type:_,el:V,anchor:G,transition:w}=k,T=_===K;if(T&&!w){Ue(V,G);return}if(_===to){q(k),w&&!w.persisted&&w.afterLeave&&w.afterLeave();return}let O=T?Us(k):k,I=()=>{T?b(V)&&Ue(V,G):s(V),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(O&&O.shapeFlag&1&&w&&!w.persisted){let{leave:F,delayLeave:L}=w,ae=O.el,x=()=>F(ae,I);L?L(ae,I,x):x()}else I()},Ue=(k,_)=>{let V;for(;k!==_;)V=h(k),s(k),k=V;s(_)},Ie=(k,_,V)=>{let{bum:G,scope:w,job:T,subTree:O,um:I,m:F,a:L}=k;ur(F),ur(L),G&&kn(G),w.stop(),T?(T.flags|=8,_e(O,k,_,V)):k.vnode.el&&O&&(O.transition=k.vnode.transition,_e(O,k,_,V)),I&<(I,_),lt(()=>{k.isUnmounted=!0},_)},H=(k,_,V,G=!1,w=!1,T=0)=>{for(let O=T;O{if(k.shapeFlag&6)return se(k.component.subTree);if(k.shapeFlag&128)return k.suspense.next();let _=h(k.anchor||k.el),V=_&&_[cu];return V?h(V):_},Y=(k,_,V)=>{let G=k&&_._vnode?void 0:k&&k.component?k.component.uid:Zu();ru(()=>{k==null?_._vnode&&_e(_._vnode,null,null,!0):m(_._vnode||null,k,_,null,null,null,V),_._vnode=k},G)},Z={p:m,um:_e,m:Se,r:ze,mt:Q,mc:R,pc:Ee,pbc:ie,n:se,o:e},ue,be;return t&&([ue,be]=t(Z)),{render:Y,hydrate:ue,createApp:Tu(Y,ue)}}function Ms({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function ln({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Gu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Kr(e,t,o=!1){let i=e.children,s=t.children;if(he(i)&&he(s))for(let r=0;r>1,e[o[c]]0&&(t[i]=o[r-1]),o[r]=i)}}for(r=o.length,a=o[r-1];r-- >0;)o[r]=a,a=t[a];return o}function Yr(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Yr(t)}function ur(e){if(e)for(let t=0;te.__isSuspense;function Ku(e,t){t&&t.pendingBranch?he(e)?t.effects.push(...e):t.effects.push(e):gr(e)}var K=Symbol.for("v-fgt"),Ko=Symbol.for("v-txt"),Tt=Symbol.for("v-cmt"),to=Symbol.for("v-stc"),dn=[],vt=null;function l(e=!1){dn.push(vt=e?null:[])}function Qr(){dn.pop(),vt=dn[dn.length-1]||null}var so=1;function Fo(e,t=!1){so+=e,e<0&&vt&&t&&(vt.hasOnce=!0)}function Xr(e){return e.dynamicChildren=so>0?vt||xt:null,Qr(),so>0&&vt&&vt.push(e),e}function d(e,t,o,i,s,r){return Xr(n(e,t,o,i,s,r,!0))}function Ft(e,t,o,i,s){return Xr(Ce(e,t,o,i,s,!0))}function io(e){return e?e.__v_isVNode===!0:!1}function Qn(e,t){return e.type===t.type&&e.key===t.key}var Zr=({key:e})=>e??null,qo=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Le(e)||Ze(e)||ye(e)?{i:mt,r:e,k:t,f:!!o}:e:null);function n(e,t=null,o=null,i=0,s=null,r=e===K?0:1,a=!1,c=!1){let f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Zr(t),ref:t&&qo(t),scopeId:kr,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:mt};return c?(Bo(f,o),r&128&&e.normalize(f)):o&&(f.shapeFlag|=Le(o)?8:16),so>0&&!a&&vt&&(f.patchFlag>0||r&6)&&f.patchFlag!==32&&vt.push(f),f}var Ce=Yu;function Yu(e,t=null,o=null,i=0,s=null,r=!1){if((!e||e===ku)&&(e=Tt),io(e)){let c=Rn(e,t,!0);return o&&Bo(c,o),so>0&&!r&&vt&&(c.shapeFlag&6?vt[vt.indexOf(e)]=c:vt.push(c)),c.patchFlag=-2,c}if(ic(e)&&(e=e.__vccOpts),t){t=Ju(t);let{class:c,style:f}=t;c&&!Le(c)&&(t.class=P(c)),De(f)&&(Jn(f)&&!he(f)&&(f=je({},f)),t.style=qe(f))}let a=Le(e)?1:Jr(e)?128:zo(e)?64:De(e)?4:ye(e)?2:0;return n(e,t,o,i,s,a,r,!0)}function Ju(e){return e?Jn(e)||Fr(e)?je({},e):e:null}function Rn(e,t,o=!1,i=!1){let{props:s,ref:r,patchFlag:a,children:c,transition:f}=e,g=t?Qu(s||{},t):s,y={__v_isVNode:!0,__v_skip:!0,type:e.type,props:g,key:g&&Zr(g),ref:t&&t.ref?o&&r?he(r)?r.concat(qo(t)):[r,qo(t)]:qo(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:c,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==K?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:f,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Rn(e.ssContent),ssFallback:e.ssFallback&&Rn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return f&&i&&oo(y,f.clone(y)),y}function v(e=" ",t=0){return Ce(Ko,null,e,t)}function fe(e,t){let o=Ce(to,null,e);return o.staticCount=t,o}function p(e="",t=!1){return t?(l(),Ft(Tt,null,e)):Ce(Tt,null,e)}function $t(e){return e==null||typeof e=="boolean"?Ce(Tt):he(e)?Ce(K,null,e.slice()):io(e)?Kt(e):Ce(Ko,null,String(e))}function Kt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Rn(e)}function Bo(e,t){let o=0,{shapeFlag:i}=e;if(t==null)t=null;else if(he(t))o=16;else if(typeof t=="object")if(i&65){let s=t.default;s&&(s._c&&(s._d=!1),Bo(e,s()),s._c&&(s._d=!0));return}else{o=32;let s=t._;!s&&!Fr(t)?t._ctx=mt:s===3&&mt&&(mt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(ye(t)){if(i&65){Bo(e,{default:t});return}t={default:t,_ctx:mt},o=32}else t=String(t),i&64?(o=16,t=[v(t)]):o=8;e.children=t,e.shapeFlag|=o}function Qu(...e){let t={};for(let o=0;ott||mt,Ho,ro;{let e=$n(),t=(o,i)=>{let s;return(s=e[o])||(s=e[o]=[]),s.push(i),r=>{s.length>1?s.forEach(a=>a(r)):s[0](r)}};Ho=t("__VUE_INSTANCE_SETTERS__",o=>tt=o),ro=t("__VUE_SSR_SETTERS__",o=>Dn=o)}var po=e=>{let t=tt;return Ho(e),e.scope.on(),()=>{e.scope.off(),Ho(t)}},cr=()=>{tt&&tt.scope.off(),Ho(null)};function ea(e){return e.vnode.shapeFlag&4}var Dn=!1;function ec(e,t=!1,o=!1){t&&ro(t);let{props:i,children:s}=e.vnode,r=ea(e);Uu(e,i,r,t),Bu(e,s,o||t);let a=r?tc(e,t):void 0;return t&&ro(!1),a}function tc(e,t){let o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Eu);let{setup:i}=o;if(i){Nt();let s=e.setupContext=i.length>1?oc(e):null,r=po(e),a=ao(i,e,0,[e.props,s]),c=fs(a);if(Rt(),r(),(c||e.sp)&&!xn(e)&&js(e),c){if(a.then(cr,cr),t)return a.then(f=>{ro(!0);try{pr(e,f,t)}finally{ro(!1)}}).catch(f=>{lo(f,e,0)});e.asyncDep=a}else pr(e,a,t)}else ta(e,t)}function pr(e,t,o){ye(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:De(t)&&(e.setupState=Io(t)),ta(e,o)}var fr,hr;function ta(e,t,o){let i=e.type;if(!e.render){if(!t&&fr&&!i.render){let s=i.template||Gs(e).template;if(s){let{isCustomElement:r,compilerOptions:a}=e.appContext.config,{delimiters:c,compilerOptions:f}=i,g=je(je({isCustomElement:r,delimiters:c},a),f);i.render=fr(s,g)}}e.render=i.render||rt,hr&&hr(e)}{let s=po(e);Nt();try{Cu(e)}finally{Rt(),s()}}}var nc={get(e,t){return xe(e,"get",""),e[t]}};function oc(e){let t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,nc),slots:e.slots,emit:e.emit,expose:t}}function Yo(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Io(Os(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in eo)return eo[o](e)},has(t,o){return o in t||o in eo}})):e.proxy}function sc(e,t=!0){return ye(e)?e.displayName||e.name:e.name||t&&e.__name}function ic(e){return ye(e)&&"__vccOpts"in e}var nt=(e,t)=>Xi(e,t,Dn);function we(e,t,o){try{Fo(-1);let i=arguments.length;return i===2?De(t)&&!he(t)?io(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(i>3?o=Array.prototype.slice.call(arguments,2):i===3&&io(o)&&(o=[o]),Ce(e,t,o))}finally{Fo(1)}}var rc="3.5.44";var Zs,na=typeof window<"u"&&window.trustedTypes;if(na)try{Zs=na.createPolicy("vue",{createHTML:e=>e})}catch{}var ha=Zs?e=>Zs.createHTML(e):e=>e,ac="http://www.w3.org/2000/svg",lc="http://www.w3.org/1998/Math/MathML",Jt=typeof document<"u"?document:null,oa=Jt&&Jt.createElement("template"),dc={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,i)=>{let s=t==="svg"?Jt.createElementNS(ac,e):t==="mathml"?Jt.createElementNS(lc,e):o?Jt.createElement(e,{is:o}):Jt.createElement(e);return e==="select"&&i&&i.multiple!=null&&s.setAttribute("multiple",i.multiple),s},createText:e=>Jt.createTextNode(e),createComment:e=>Jt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Jt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,i,s,r){let a=o?o.previousSibling:t.lastChild;if(s&&(s===r||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),o),!(s===r||!(s=s.nextSibling)););else{oa.innerHTML=ha(i==="svg"?`${e}`:i==="mathml"?`${e}`:e);let c=oa.content;if(i==="svg"||i==="mathml"){let f=c.firstChild;for(;f.firstChild;)c.appendChild(f.firstChild);c.removeChild(f)}t.insertBefore(c,o)}return[a?a.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}};var uc=Symbol("_vtc");function cc(e,t,o){let i=e[uc];i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}var Xo=Symbol("_vod"),ma=Symbol("_vsh"),W={name:"show",beforeMount(e,{value:t},{transition:o}){e[Xo]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):fo(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:i}){!t!=!o&&(i?t?(i.beforeEnter(e),fo(e,!0),i.enter(e)):i.leave(e,()=>{fo(e,!1)}):fo(e,t))},beforeUnmount(e,{value:t}){fo(e,t)}};function fo(e,t){e.style.display=t?e[Xo]:"none",e[ma]=!t}var pc=Symbol("");var fc=/(?:^|;)\s*display\s*:/;function hc(e,t,o){let i=e.style,s=Le(o),r=!1;if(o&&!s){if(t)if(Le(t))for(let a of t.split(";")){let c=a.slice(0,a.indexOf(":")).trim();o[c]==null&&ho(i,c,"")}else for(let a in t)o[a]==null&&ho(i,a,"");for(let a in o){a==="display"&&(r=!0);let c=o[a];c!=null?vc(e,a,!Le(t)&&t?t[a]:void 0,c)||ho(i,a,c):ho(i,a,"")}}else if(s){if(t!==o){let a=i[pc];a&&(o+=";"+a),i.cssText=o,r=fc.test(o)}}else t&&e.removeAttribute("style");Xo in e&&((!s||t!==o)&&(e[Xo]=r?i.display:""),e[ma]&&(i.display="none"))}var Jo=/\s*!important$/;function ho(e,t,o){if(he(o))o.forEach(i=>ho(e,t,i));else if(o==null&&(o=""),t.startsWith("--"))Jo.test(o)?e.setProperty(t,o.replace(Jo,""),"important"):e.setProperty(t,o);else{let i=mc(e,t);Jo.test(o)?e.setProperty(Ot(i),o.replace(Jo,""),"important"):e[i]=o}}var sa=["Webkit","Moz","ms"],Js={};function mc(e,t){let o=Js[t];if(o)return o;let i=Je(t);if(i!=="filter"&&i in e)return Js[t]=i;i=on(i);for(let s=0;sQs||(Ec.then(()=>Qs=0),Qs=Date.now());function Sc(e,t){let o=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=o.attached)return;let s=o.value;if(he(s)){let r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};let a=s.slice(),c=[i];for(let f=0;fe.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,_c=(e,t,o,i,s,r)=>{let a=s==="svg";t==="class"?cc(e,i,a):t==="style"?hc(e,o,i):yn(t)?bn(t)||yc(e,t,o,i,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Nc(e,t,i,a))?(aa(e,t,i),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ra(e,t,i,a,r,t!=="value")):e._isVueCE&&(Rc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Le(i)))?aa(e,Je(t),i,r,t):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),ra(e,t,i,a))};function Nc(e,t,o,i){if(i)return!!(t==="innerHTML"||t==="textContent"||t in e&&da(t)&&ye(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return da(t)&&Le(o)?!1:t in e}function Rc(e,t){let o=e._def.props;if(!o)return!1;let i=Je(t);return Array.isArray(o)?o.some(s=>Je(s)===i):Object.keys(o).some(s=>Je(s)===i)}var Tn=e=>{let t=e.props["onUpdate:modelValue"]||!1;return he(t)?o=>kn(t,o):t};function Dc(e){e.target.composing=!0}function ua(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}var Bt=Symbol("_assign"),Qo=Symbol("_initialValue");function Xs(e,t,o){return t&&(e=e.trim()),o&&(e=En(e)),e}var wt={created(e,{modifiers:{lazy:t,trim:o,number:i}},s){e.parentNode&&(e.type==="text"?e[Qo]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Qo]=e.defaultValue.replace(/\r\n?/g,` `))),e[Bt]=Tn(s);let r=i||s.props&&s.props.type==="number";tn(e,t?"change":"input",a=>{a.target.composing||e[Bt](Xs(e.value,o,r))}),(o||r)&&tn(e,"change",()=>{e.value=Xs(e.value,o,r)}),t||(tn(e,"compositionstart",Dc),tn(e,"compositionend",ua),tn(e,"change",ua))},mounted(e,{value:t,modifiers:{trim:o,number:i}}){let s=t??"",r=e[Qo];delete e[Qo],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[Bt](Xs(e.value,o,i)):e.value=s},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:i,trim:s,number:r}},a){if(e[Bt]=Tn(a),e.composing)return;let c=(r||e.type==="number")&&!/^0\d/.test(e.value)?En(e.value):e.value,f=t??"";if(c===f)return;let g=e.getRootNode();(g instanceof Document||g instanceof ShadowRoot)&&g.activeElement===e&&e.type!=="range"&&(i&&t===o||s&&e.value.trim()===f)||(e.value=f)}},xs={deep:!0,created(e,t,o){e[Bt]=Tn(o),tn(e,"change",()=>{let i=e._modelValue,s=mo(e),r=e.checked,a=e[Bt];if(he(i)){let c=So(i,s),f=c!==-1;if(r&&!f)a(i.concat(s));else if(!r&&f){let g=[...i];g.splice(c,1),a(g)}}else if(Ct(i)){let c=new Set(i);r?c.add(s):c.delete(s),a(c)}else a(va(e,r))})},mounted:ca,beforeUpdate(e,t,o){e[Bt]=Tn(o),ca(e,t,o)}};function ca(e,{value:t,oldValue:o},i){e._modelValue=t;let s;if(he(t))s=So(t,i.props.value)>-1;else if(Ct(t))s=t.has(i.props.value);else{if(t===o)return;s=St(t,va(e,!0))}e.checked!==s&&(e.checked=s)}var pn={deep:!0,created(e,{value:t,modifiers:{number:o}},i){e._modelValue=t,tn(e,"change",()=>{let s=Array.prototype.filter.call(e.options,f=>f.selected).map(f=>o?En(mo(f)):mo(f)),r=e.multiple,a=r?Ct(e._modelValue)?new Set(s):s:s[0],c=e._pendingValue=[r,r?he(a)?s.slice():s:a];try{e[Bt](a)}finally{Ke(()=>{e._pendingValue===c&&(e._pendingValue=void 0)})}}),e[Bt]=Tn(i)},mounted(e,{value:t}){pa(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[Bt]=Tn(o)},updated(e,{value:t}){let o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!Tc(t,o[1],o[0]))&&pa(e,t)}};function Tc(e,t,o){if(!o)return St(e,t);if(he(e))return St(e,t);if(Ct(e)){if(e.size!==t.length)return!1;for(let i of t)if(!e.has(i))return!1;return!0}return!1}function pa(e,t){let o=e.multiple,i=he(t);if(!(o&&!i&&!Ct(t))){for(let s=0,r=e.options.length;sString(g)===String(c)):a.selected=So(t,c)>-1}else a.selected=t.has(c);else if(St(mo(a),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function mo(e){return"_value"in e?e._value:e.value}function va(e,t){let o=t?"_trueValue":"_falseValue";return o in e?e[o]:t}var Ac=["ctrl","shift","alt","meta"],Oc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ac.some(o=>e[`${o}Key`]&&!t.includes(o))},de=(e,t)=>{if(!e)return e;let o=e._withMods||(e._withMods={}),i=t.join(".");return o[i]||(o[i]=((s,...r)=>{for(let a=0;a{let o=e._withKeys||(e._withKeys={}),i=t.join(".");return o[i]||(o[i]=(s=>{if(!("key"in s))return;let r=Ot(s.key);if(t.some(a=>a===r||Pc[a]===r))return e(s)}))},Ic=je({patchProp:_c},dc),fa;function Vc(){return fa||(fa=Wr(Ic))}var ga=((...e)=>{let t=Vc().createApp(...e),{mount:o}=t;return t.mount=i=>{let s=Mc(i);if(!s)return;let r=t._component;!ye(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");let a=o(s,!1,qc(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t});function qc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Mc(e){return Le(e)?document.querySelector(e):e}var mn=typeof document<"u";function ba(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Uc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ba(e.default)}var Oe=Object.assign;function Zo(e,t){let o={};for(let i in t){let s=t[i];o[i]=kt(s)?s.map(e):e(s)}return o}var Pn=()=>{},kt=Array.isArray;function ni(e,t){let o={};for(let i in e)o[i]=i in t?t[i]:e[i];return o}var wa=/#/g,$c=/&/g,Lc=/\//g,Fc=/=/g,Bc=/\?/g,ka=/\+/g,Hc=/%5B/g,zc=/%5D/g,Ea=/%5E/g,jc=/%60/g,Ca=/%7B/g,Gc=/%7C/g,Sa=/%7D/g,Wc=/%20/g;function oi(e){return e==null?"":encodeURI(""+e).replace(Gc,"|").replace(Hc,"[").replace(zc,"]")}function _a(e){return oi(e).replace(Ca,"{").replace(Sa,"}").replace(Ea,"^")}function ei(e){return oi(e).replace(ka,"%2B").replace(Wc,"+").replace(wa,"%23").replace($c,"%26").replace(jc,"`").replace(Ca,"{").replace(Sa,"}").replace(Ea,"^")}function Kc(e){return ei(e).replace(Fc,"%3D")}function Yc(e){return oi(e).replace(wa,"%23").replace(Bc,"%3F")}function Na(e){return Yc(e).replace(Lc,"%2F")}function On(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var Jc=/\/$/,Qc=e=>e.replace(Jc,"");function xo(e,t,o="/"){let i,s={},r="",a="",c=t.indexOf("#"),f=t.indexOf("?");return f=c>=0&&f>c?-1:f,f>=0&&(i=t.slice(0,f),r=t.slice(f,c>0?c:t.length),s=e(r.slice(1))),c>=0&&(i=i||t.slice(0,c),a=t.slice(c,t.length)),i=Zc(i??t,o),{fullPath:i+r+a,path:i,query:s,hash:On(a)}}function Ra(e,t){let o=t.query?e(t.query):"";return t.path+(o&&"?")+o+(t.hash||"")}function si(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Da(e,t,o){let i=t.matched.length-1,s=o.matched.length-1;return i>-1&&i===s&&fn(t.matched[i],o.matched[s])&&ii(t.params,o.params)&&e(t.query)===e(o.query)&&t.hash===o.hash}function fn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ii(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var o in e)if(!Xc(e[o],t[o]))return!1;return!0}function Xc(e,t){return kt(e)?ya(e,t):kt(t)?ya(t,e):e?.valueOf()===t?.valueOf()}function ya(e,t){return kt(t)?e.length===t.length&&e.every((o,i)=>o===t[i]):e.length===1&&e[0]===t}function Zc(e,t){if(e.startsWith("/"))return e;if(!e)return t;let o=t.split("/"),i=e.split("/"),s=i[i.length-1];(s===".."||s===".")&&i.push("");let r=o.length-1,a,c;for(a=0;a1&&r--;else break;return o.slice(0,r).join("/")+"/"+i.slice(a).join("/")}var Xt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},es=(function(e){return e.pop="pop",e.push="push",e})({}),ts=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function Ta(e){if(!e)if(mn){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Qc(e)}var xc=/^[^#]+#/;function Aa(e,t){return e.replace(xc,"#")+t}function ep(e,t){let o=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{behavior:t.behavior,left:i.left-o.left-(t.left||0),top:i.top-o.top-(t.top||0)}}var vo=()=>({left:window.scrollX,top:window.scrollY});function Oa(e){let t;if("el"in e){let o=e.el,i=typeof o=="string"&&o.startsWith("#"),s=typeof o=="string"?i?document.getElementById(o.slice(1)):document.querySelector(o):o;if(!s)return;t=ep(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function ri(e,t){return(history.state?history.state.position-t:-1)+e}var ti=new Map;function Pa(e,t){ti.set(e,t)}function Ia(e){let t=ti.get(e);return ti.delete(e),t}function tp(e){return typeof e=="string"||e&&typeof e=="object"}function ai(e){return typeof e=="string"||typeof e=="symbol"}var He=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),Va=Symbol("");var NL={[He.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for ${JSON.stringify(e)}${t?` while being at -`+JSON.stringify(t):""}`},[He.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${op(t)}" via a navigation guard.`},[He.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[He.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[He.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function hn(e,t){return Oe(new Error,{type:e,[Va]:!0},t)}function Ht(e,t){return e instanceof Error&&Va in e&&(t==null||!!(e.type&t))}var np=["params","query","hash"];function op(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let o of np)o in e&&(t[o]=e[o]);return JSON.stringify(t,null,2)}function qa(e){let t={};if(e===""||e==="?")return t;let o=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;is&&ei(s)):[i&&ei(i)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+o,s!=null&&(t+="="+s))})}return t}function Ma(e){let t={};for(let o in e){let i=e[o];i!==void 0&&(t[o]=kt(i)?i.map(s=>s==null?null:""+s):i==null?i:""+i)}return t}var Ua=Symbol(""),di=Symbol(""),ns=Symbol(""),os=Symbol(""),ss=Symbol("");function In(){let e=[];function t(i){return e.push(i),()=>{let s=e.indexOf(i);s>-1&&e.splice(s,1)}}function o(){e=[]}return{add:t,list:()=>e.slice(),reset:o}}function Qt(e,t,o,i,s,r=a=>a()){let a=i&&(i.enterCallbacks[s]=i.enterCallbacks[s]||[]);return()=>new Promise((c,f)=>{let g=h=>{h===!1?f(hn(He.NAVIGATION_ABORTED,{from:o,to:t})):h instanceof Error?f(h):tp(h)?f(hn(He.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(a&&i.enterCallbacks[s]===a&&typeof h=="function"&&a.push(h),c())},y=r(()=>e.call(i&&i.instances[s],t,o,g)),b=Promise.resolve(y);e.length<3&&(b=b.then(g)),b.catch(h=>f(h))})}function is(e,t,o,i,s=r=>r()){let r=[];for(let a of e)for(let c in a.components){let f=a.components[c];if(!(t!=="beforeRouteEnter"&&!a.instances[c]))if(ba(f)){let g=(f.__vccOpts||f)[t];g&&r.push(Qt(g,o,i,a,c,s))}else{let g=f();r.push(()=>g.then(y=>{if(!y)throw new Error(`Couldn't resolve component "${c}" at "${a.path}"`);let b=Uc(y)?y.default:y;a.mods[c]=y,a.components[c]=b;let h=(b.__vccOpts||b)[t];return h&&Qt(h,o,i,a,c,s)()}))}}return r}function $a(e,t){let o=[],i=[],s=[],r=Math.max(t.matched.length,e.matched.length);for(let a=0;afn(g,c))?i.push(c):o.push(c));let f=e.matched[a];f&&(t.matched.find(g=>fn(g,f))||s.push(f))}return[o,i,s]}var sp=()=>location.protocol+"//"+location.host;function Ja(e,t){let{pathname:o,search:i,hash:s}=t,r=e.indexOf("#");if(r>-1){let a=s.includes(e.slice(r))?e.slice(r).length:1,c=s.slice(a);return c[0]!=="/"&&(c="/"+c),si(c,"")}return si(o,e)+i+s}function ip(e,t,o,i){let s=[],r=[],a=null,c=({state:h})=>{let E=Ja(e,location),_=o.value,m=t.value,C=0;if(h){if(o.value=E,t.value=h,a&&a===_){a=null;return}C=m?h.position-m.position:0}else i(E);s.forEach(N=>{N(o.value,_,{delta:C,type:es.pop,direction:C?C>0?ts.forward:ts.back:ts.unknown})})};function f(){a=o.value}function g(h){s.push(h);let E=()=>{let _=s.indexOf(h);_>-1&&s.splice(_,1)};return r.push(E),E}function y(){if(document.visibilityState==="hidden"){let{history:h}=window;if(!h.state)return;h.replaceState(Oe({},h.state,{scroll:vo()}),"")}}function b(){for(let h of r)h();r=[],window.removeEventListener("popstate",c),window.removeEventListener("pagehide",y),document.removeEventListener("visibilitychange",y)}return window.addEventListener("popstate",c),window.addEventListener("pagehide",y),document.addEventListener("visibilitychange",y),{pauseListeners:f,listen:g,destroy:b}}function La(e,t,o,i=!1,s=!1){return{back:e,current:t,forward:o,replaced:i,position:window.history.length,scroll:s?vo():null}}function rp(e){let{history:t,location:o}=window,i={value:Ja(e,o)},s={value:t.state};s.value||r(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(f,g,y){let b=e.indexOf("#"),h=b>-1?(o.host&&document.querySelector("base")?e:e.slice(b))+f:sp()+e+f;try{t[y?"replaceState":"pushState"](g,"",h),s.value=g}catch(E){console.error(E),o[y?"replace":"assign"](h)}}function a(f,g){r(f,Oe({},t.state,La(s.value.back,f,s.value.forward,!0),g,{position:s.value.position}),!0),i.value=f}function c(f,g){let y=Oe({},s.value,t.state,{forward:f,scroll:vo()});r(y.current,y,!0),r(f,Oe({},La(i.value,f,null),{position:y.position+1},g),!1),i.value=f}return{location:i,state:s,push:c,replace:a}}function Qa(e){e=Ta(e);let t=rp(e),o=ip(e,t.state,t.location,t.replace);function i(r,a=!0){a||o.pauseListeners(),history.go(r)}let s=Oe({location:"",base:e,go:i,createHref:Aa.bind(null,e)},t,o);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}var vn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),Xe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Xe||{}),ap={type:vn.Static,value:""},lp=/[a-zA-Z0-9_]/;function dp(e){if(!e)return[[]];if(e==="/")return[[ap]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(E){throw new Error(`ERR (${o})/"${g}": ${E}`)}let o=Xe.Static,i=o,s=[],r;function a(){r&&s.push(r),r=[]}let c=0,f,g="",y="";function b(){g&&(o===Xe.Static?r.push({type:vn.Static,value:g}):o===Xe.Param||o===Xe.ParamRegExp||o===Xe.ParamRegExpEnd?(r.length>1&&(f==="*"||f==="+")&&t(`A repeatable param (${g}) must be alone in its segment. eg: '/:ids+.`),r.push({type:vn.Param,value:g,regexp:y,repeatable:f==="*"||f==="+",optional:f==="*"||f==="?"})):t("Invalid state to consume buffer"),g="")}function h(){g+=f}for(;ct.length?t.length===1&&t[0]===it.Static+it.Segment?1:-1:0}function Xa(e,t){let o=0,i=e.score,s=t.score;for(;o0&&t[t.length-1]<0}var hp={strict:!1,end:!0,sensitive:!1};function mp(e,t,o){let i=pp(dp(e.path),o),s=Oe(i,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function vp(e,t){let o=[],i=new Map;t=ni(hp,t);function s(b){return i.get(b)}function r(b,h,E){let _=!E,m=za(b);m.aliasOf=E&&E.record;let C=ni(t,b),N=[m];if("alias"in b){let U=typeof b.alias=="string"?[b.alias]:b.alias;for(let q of U)N.push(za(Oe({},m,{components:E?E.record.components:m.components,path:q,aliasOf:E?E.record:m})))}let A,M;for(let U of N){let{path:q}=U;if(h&&q[0]!=="/"){let B=h.record.path,oe=B[B.length-1]==="/"?"":"/";U.path=h.record.path+(q&&oe+q)}if(A=mp(U,h,C),E?E.alias.push(A):(M=M||A,M!==A&&M.alias.push(A),_&&b.name&&!ja(A)&&a(b.name)),Za(A)&&f(A),m.children){let B=m.children;for(let oe=0;oe{a(M)}:Pn}function a(b){if(ai(b)){let h=i.get(b);h&&(i.delete(b),o.splice(o.indexOf(h),1),h.children.forEach(a),h.alias.forEach(a))}else{let h=o.indexOf(b);h>-1&&(o.splice(h,1),b.record.name&&i.delete(b.record.name),b.children.forEach(a),b.alias.forEach(a))}}function c(){return o}function f(b){let h=bp(b,o);o.splice(h,0,b),b.record.name&&!ja(b)&&i.set(b.record.name,b)}function g(b,h){let E,_={},m,C;if("name"in b&&b.name){if(E=i.get(b.name),!E)throw hn(He.MATCHER_NOT_FOUND,{location:b});C=E.record.name,_=Oe(Ha(h.params,E.keys.filter(M=>!M.optional).concat(E.parent?E.parent.keys.filter(M=>M.optional):[]).map(M=>M.name)),b.params&&Ha(b.params,E.keys.map(M=>M.name))),m=E.stringify(_)}else if(b.path!=null)m=b.path,E=o.find(M=>M.re.test(m)),E&&(_=E.parse(m),C=E.record.name);else{if(E=h.name?i.get(h.name):o.find(M=>M.re.test(h.path)),!E)throw hn(He.MATCHER_NOT_FOUND,{location:b,currentLocation:h});C=E.record.name,_=Oe({},h.params,b.params),m=E.stringify(_)}let N=[],A=E;for(;A;)N.unshift(A.record),A=A.parent;return{name:C,path:m,params:_,matched:N,meta:yp(N)}}e.forEach(b=>r(b));function y(){o.length=0,i.clear()}return{addRoute:r,resolve:g,removeRoute:a,clearRoutes:y,getRoutes:c,getRecordMatcher:s}}function Ha(e,t){let o={};for(let i of t)i in e&&(o[i]=e[i]);return o}function za(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:gp(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function gp(e){let t={},o=e.props||!1;if("component"in e)t.default=o;else for(let i in e.components)t[i]=typeof o=="object"?o[i]:o;return t}function ja(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function yp(e){return e.reduce((t,o)=>Oe(t,o.meta),{})}function bp(e,t){let o=0,i=t.length;for(;o!==i;){let r=o+i>>1;Xa(e,t[r])<0?i=r:o=r+1}let s=wp(e);return s&&(i=t.lastIndexOf(s,i-1)),i}function wp(e){let t=e;for(;t=t.parent;)if(Za(t)&&Xa(e,t)===0)return t}function Za({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ga(e){let t=dt(ns),o=dt(os),i=!1,s=null,r=nt(()=>{let y=Wt(e.to);return t.resolve(y)}),a=nt(()=>{let{matched:y}=r.value,{length:b}=y,h=y[b-1],E=o.matched;if(!h||!E.length)return-1;let _=E.findIndex(fn.bind(null,h));if(_>-1)return _;let m=Wa(y[b-2]);return b>1&&Wa(h)===m&&E[E.length-1].path!==m?E.findIndex(fn.bind(null,y[b-2])):_}),c=nt(()=>a.value>-1&&_p(o.params,r.value.params)),f=nt(()=>a.value>-1&&a.value===o.matched.length-1&&ii(o.params,r.value.params));function g(y={}){if(Sp(y)){let b=t[Wt(e.replace)?"replace":"push"](Wt(e.to)).catch(Pn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>b),b}return Promise.resolve()}return{route:r,href:nt(()=>r.value.href),isActive:c,isExactActive:f,navigate:g}}function kp(e){return e.length===1?e[0]:e}var Ep=uo({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Ga,setup(e,{slots:t}){let o=Fe(Ga(e)),{options:i}=dt(ns),s=nt(()=>({[Ka(e.activeClass,i.linkActiveClass,"router-link-active")]:o.isActive,[Ka(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:o.isExactActive}));return()=>{let r=t.default&&kp(t.default(o));return e.custom?r:we("a",{"aria-current":o.isExactActive?e.ariaCurrentValue:null,href:o.href,onClick:o.navigate,class:s.value},r)}}}),Cp=Ep;function Sp(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function _p(e,t){for(let o in t){let i=t[o],s=e[o];if(typeof i=="string"){if(i!==s)return!1}else if(!kt(s)||s.length!==i.length||i.some((r,a)=>r.valueOf()!==s[a].valueOf()))return!1}return!0}function Wa(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var Ka=(e,t,o)=>e??t??o,Np=uo({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:o}){let i=dt(ss),s=nt(()=>e.route||i.value),r=dt(di,0),a=nt(()=>{let g=Wt(r),{matched:y}=s.value,b;for(;(b=y[g])&&!b.components;)g++;return g}),c=nt(()=>s.value.matched[a.value]);un(di,nt(()=>a.value+1)),un(Ua,c),un(ss,s);let f=et();return Be(()=>[f.value,c.value,e.name],([g,y,b],[h,E,_])=>{y&&(y.instances[b]=g,E&&E!==y&&g&&g===h&&(y.leaveGuards.size||(y.leaveGuards=E.leaveGuards),y.updateGuards.size||(y.updateGuards=E.updateGuards))),g&&y&&(!E||!fn(y,E)||!h)&&(y.enterCallbacks[b]||[]).forEach(m=>m(g))},{flush:"post"}),()=>{let g=s.value,y=e.name,b=c.value,h=b&&b.components[y];if(!h)return Ya(o.default,{Component:h,route:g});let E=b.props[y],_=E?E===!0?g.params:typeof E=="function"?E(g):E:null,C=we(h,Oe({},_,t,{onVnodeUnmounted:N=>{N.component.isUnmounted&&(b.instances[y]=null)},ref:f}));return Ya(o.default,{Component:C,route:g})||C}}});function Ya(e,t){if(!e)return null;let o=e(t);return o.length===1?o[0]:o}var ui=Np;function xa(e){let t=vp(e.routes,e),o=e.parseQuery||qa,i=e.stringifyQuery||li,s=e.history,r=In(),a=In(),c=In(),f=Po(Xt),g=Xt;mn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let y=Zo.bind(null,H=>""+H),b=Zo.bind(null,Na),h=Zo.bind(null,On);function E(H,se){let Y,Z;return ai(H)?(Y=t.getRecordMatcher(H),Z=se):Z=H,t.addRoute(Z,Y)}function _(H){let se=t.getRecordMatcher(H);se&&t.removeRoute(se)}function m(){return t.getRoutes().map(H=>H.record)}function C(H){return!!t.getRecordMatcher(H)}function N(H,se){if(se=Oe({},se||f.value),typeof H=="string"){let S=xo(o,H,se.path),V=t.resolve({path:S.path},se),G=s.createHref(S.fullPath);return Oe(S,V,{params:h(V.params),hash:On(S.hash),redirectedFrom:void 0,href:G})}let Y;if(H.path!=null)Y=Oe({},H,{path:xo(o,H.path,se.path).path});else{let S=Oe({},H.params);for(let V in S)S[V]==null&&delete S[V];Y=Oe({},H,{params:b(S)}),se.params=b(se.params)}let Z=t.resolve(Y,se),ue=H.hash||"";Z.params=y(h(Z.params));let be=Ra(i,Oe({},H,{hash:_a(ue),path:Z.path})),k=s.createHref(be);return Oe({fullPath:be,hash:ue,query:i===li?Ma(H.query):H.query||{}},Z,{redirectedFrom:void 0,href:k})}function A(H){return typeof H=="string"?xo(o,H,f.value.path):Oe({},H)}function M(H,se){if(g!==H)return hn(He.NAVIGATION_CANCELLED,{from:se,to:H})}function U(H){return oe(H)}function q(H){return U(Oe(A(H),{replace:!0}))}function B(H,se){let Y=H.matched[H.matched.length-1];if(Y&&Y.redirect){let{redirect:Z}=Y,ue=typeof Z=="function"?Z(H,se):Z;return typeof ue=="string"&&(ue=ue.includes("?")||ue.includes("#")?ue=A(ue):{path:ue},ue.params={}),Oe({query:H.query,hash:H.hash,params:ue.path!=null?{}:H.params},ue)}}function oe(H,se){let Y=g=N(H),Z=f.value,ue=H.state,be=H.force,k=H.replace===!0,S=B(Y,Z);if(S)return oe(Oe(A(S),{state:typeof S=="object"?Oe({},ue,S.state):ue,force:be,replace:k}),se||Y);let V=Y;V.redirectedFrom=se;let G;return!be&&Da(i,Z,Y)&&(G=hn(He.NAVIGATION_DUPLICATED,{to:V,from:Z}),Ae(Z,Z,!0,!1)),(G?Promise.resolve(G):j(V,Z)).catch(w=>Ht(w)?Ht(w,He.NAVIGATION_GUARD_REDIRECT)?w:Te(w):re(w,V,Z)).then(w=>{if(w){if(Ht(w,He.NAVIGATION_GUARD_REDIRECT))return oe(Oe({replace:k},A(w.to),{state:typeof w.to=="object"?Oe({},ue,w.to.state):ue,force:be}),se||V)}else w=ve(V,Z,!0,k,ue);return ie(V,Z,w),w})}function ee(H,se){let Y=M(H,se);return Y?Promise.reject(Y):Promise.resolve()}function R(H){let se=ze.values().next().value;return se&&typeof se.runWithContext=="function"?se.runWithContext(H):H()}function j(H,se){let Y,[Z,ue,be]=$a(H,se);Y=is(Z.reverse(),"beforeRouteLeave",H,se);for(let S of Z)S.leaveGuards.forEach(V=>{Y.push(Qt(V,H,se))});let k=ee.bind(null,H,se);return Y.push(k),Ie(Y).then(()=>{Y=[];for(let S of r.list())Y.push(Qt(S,H,se));return Y.push(k),Ie(Y)}).then(()=>{Y=is(ue,"beforeRouteUpdate",H,se);for(let S of ue)S.updateGuards.forEach(V=>{Y.push(Qt(V,H,se))});return Y.push(k),Ie(Y)}).then(()=>{Y=[];for(let S of be)if(S.beforeEnter)if(kt(S.beforeEnter))for(let V of S.beforeEnter)Y.push(Qt(V,H,se));else Y.push(Qt(S.beforeEnter,H,se));return Y.push(k),Ie(Y)}).then(()=>(H.matched.forEach(S=>S.enterCallbacks={}),Y=is(be,"beforeRouteEnter",H,se,R),Y.push(k),Ie(Y))).then(()=>{Y=[];for(let S of a.list())Y.push(Qt(S,H,se));return Y.push(k),Ie(Y)}).catch(S=>Ht(S,He.NAVIGATION_CANCELLED)?S:Promise.reject(S))}function ie(H,se,Y){c.list().forEach(Z=>R(()=>Z(H,se,Y)))}function ve(H,se,Y,Z,ue){let be=M(H,se);if(be)return be;let k=se===Xt,S=mn?history.state:{};Y&&(Z||k?s.replace(H.fullPath,Oe({scroll:k&&S&&S.scroll},ue)):s.push(H.fullPath,ue)),f.value=H,Ae(H,se,Y,k),Te()}let z;function J(){z||(z=s.listen((H,se,Y)=>{if(!Ue.listening)return;let Z=N(H),ue=B(Z,Ue.currentRoute.value);if(ue){oe(Oe(ue,{replace:!0,force:!0}),Z).catch(Pn);return}g=Z;let be=f.value;mn&&Pa(ri(be.fullPath,Y.delta),vo()),j(Z,be).catch(k=>Ht(k,He.NAVIGATION_ABORTED|He.NAVIGATION_CANCELLED)?k:Ht(k,He.NAVIGATION_GUARD_REDIRECT)?(oe(Oe(A(k.to),{force:!0}),Z).then(S=>{Ht(S,He.NAVIGATION_ABORTED|He.NAVIGATION_DUPLICATED)&&!Y.delta&&Y.type===es.pop&&s.go(-1,!1)}).catch(Pn),Promise.reject()):(Y.delta&&s.go(-Y.delta,!1),re(k,Z,be))).then(k=>{k=k||ve(Z,be,!1),k&&(Y.delta&&!Ht(k,He.NAVIGATION_CANCELLED)?s.go(-Y.delta,!1):Y.type===es.pop&&Ht(k,He.NAVIGATION_ABORTED|He.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ie(Z,be,k)}).catch(Pn)}))}let Q=In(),te=In(),X;function re(H,se,Y){Te(H);let Z=te.list();return Z.length?Z.forEach(ue=>ue(H,se,Y)):console.error(H),Promise.reject(H)}function Ee(){return X&&f.value!==Xt?Promise.resolve():new Promise((H,se)=>{Q.add([H,se])})}function Te(H){return X||(X=!H,J(),Q.list().forEach(([se,Y])=>H?Y(H):se()),Q.reset()),H}function Ae(H,se,Y,Z){let{scrollBehavior:ue}=e;if(!mn||!ue)return Promise.resolve();let be=!Y&&Ia(ri(H.fullPath,0))||(Z||!Y)&&history.state&&history.state.scroll||null;return Ke().then(()=>ue(H,se,be)).then(k=>k&&Oa(k)).catch(k=>re(k,H,se))}let Se=H=>s.go(H),_e,ze=new Set,Ue={currentRoute:f,listening:!0,addRoute:E,removeRoute:_,clearRoutes:t.clearRoutes,hasRoute:C,getRoutes:m,resolve:N,options:e,push:U,replace:q,go:Se,back:()=>Se(-1),forward:()=>Se(1),beforeEach:r.add,beforeResolve:a.add,afterEach:c.add,onError:te.add,isReady:Ee,install(H){H.component("RouterLink",Cp),H.component("RouterView",ui),H.config.globalProperties.$router=Ue,Object.defineProperty(H.config.globalProperties,"$route",{enumerable:!0,get:()=>Wt(f)}),mn&&!_e&&f.value===Xt&&(_e=!0,U(s.location).catch(Z=>{}));let se={};for(let Z in Xt)Object.defineProperty(se,Z,{get:()=>f.value[Z],enumerable:!0});H.provide(ns,Ue),H.provide(os,Yn(se)),H.provide(ss,f);let Y=H.unmount;ze.add(H),H.unmount=function(){ze.delete(H),ze.size<1&&(g=Xt,z&&z(),z=null,f.value=Xt,_e=!1,X=!1),Y()}}};function Ie(H){return H.reduce((se,Y)=>se.then(()=>R(Y)),Promise.resolve())}return Ue}function el(e){return dt(os)}var rs=new WeakMap;function ci(e){if(!rs.has(e)){let t=e.get("/api/billing/").finally(()=>rs.delete(e));rs.set(e,t)}return rs.get(e)}function as(e,t,o=()=>{},i={}){let s=new URLSearchParams(window.location.search).get("billing");e.billing=null,e.billingLoading=!0,e.billingBusy=!1,e.billingError="",e.billingNotice="",e.billingPending=s==="success"||s==="portal",e.billingRepository="";let r={billing_invalid_draft:"This draft could not be saved. Your form is unchanged. Try again.",billing_draft_not_found:"This checkout draft is unavailable or expired. Your local form is unchanged.",billing_recovery_required:"Your earlier payment needs verification. Please contact support before paying again.",billing_checkout_disabled:"New purchases are temporarily unavailable. You can still manage existing billing.",billing_unavailable:"Payments are not available yet. Please try again later.",billing_subscription_exists:"You already have a subscription. Use Manage billing to change or cancel it.",billing_checkout_in_progress:"You have another checkout open. Complete it or wait for it to expire before choosing a different plan.",billing_busy:"Another billing request is processing. Please try again shortly.",billing_already_paid:"This repository or conference already has an active paid package.",billing_invalid_review_window:"Conference packages cover up to 180 days. Check the review dates.",billing_invalid_conference:"Only a conference owner can pay for a conference awaiting payment.",repo_not_found:"Enter the ID of an existing repository that you own."};e.billingPrice=f=>f.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:f.currency}).format(f.amount/100)+(f.interval?` / ${f.intervalCount>1?f.intervalCount+" ":""}${f.interval}`:" once"),e.billingBytes=f=>{let g=Number(f)||0;if(g<1024)return`${g} B`;let y=Math.min(4,Math.floor(Math.log2(g)/10));return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(g/1024**y)} ${["B","KiB","MiB","GiB","TiB"][y]}`},e.billingDate=f=>f?new Date(f).toLocaleDateString():"",e.loadBilling=()=>(e.billingError="",e.billingLoading=!0,ci(t).then(f=>{e.billing=f.data,e.emit?.("billing:updated",f.data)}).catch(()=>{e.billingError="Billing could not be loaded. Try again."}).finally(()=>{e.billingLoading=!1}));async function a(f,g,y=!0){if(!(e.billingBusy||!e.billing?.csrf)){e.billingBusy=!0,e.billingError="";try{let b=await t.post(`/api/billing/${f}`,g,{headers:{"x-csrf-token":e.billing.csrf}});if(y)window.location.assign(b.data.url);else return await e.loadBilling(),await o(),e.billingPending=!!b.data.pending,e.emit?.("billing:pending",e.billingPending),e.billingNotice=b.data.pending?"Your payment is still pending. Please do not pay again.":i.confirmedMessage||"Billing status refreshed. Your confirmed access appears below.",b.data}catch(b){e.billingError=r[b.data?.error]||"The billing request failed. Please try again."}finally{e.billingBusy=!1}}}e.checkout=(f,g="",y={})=>a("checkout",{planId:f,target:g,...y}),e.billingPortal=()=>a("portal",{}),e.refreshBilling=()=>a("refresh",{},!1);async function c(){for(let f=0;f<5;f++){let g=await e.refreshBilling();if(!g||!g.pending)return;await new Promise(y=>window.setTimeout(y,3e3))}e.billingNotice="Confirmation is taking longer than usual. You can refresh payment status later. Please do not pay again."}e.loadBilling().then(()=>{s==="success"||s==="portal"?(e.billingNotice="Checking your payment. Paid access starts after confirmation.",c()):s==="cancelled"&&(e.billingNotice="Checkout was closed. No new paid access has been activated.")})}function tl(e,t){return t?.split(".").reduce((o,i)=>o?.[i],e)}function pi(e=null,t=new Map){let o=Fe({}),i=[],s=!1,r=new Proxy(o,{get(a,c){return typeof c=="string"&&c.startsWith("__v_")||Reflect.has(a,c)?Reflect.get(a,c):e?.[c]}});return Object.defineProperty(o,"parent",{value:e,configurable:!0}),Object.defineProperty(o,"viewState",{get:()=>r}),r.watch=(a,c,f=!1,g=!0)=>{let y=typeof a=="function"?()=>a(r):()=>tl(r,a),b=Be(y,c,{deep:f,flush:"post"});return i.push(b),g&&Ke(()=>{s||c(y(),y())}),b},r.watchGroup=(a,c,f=!0)=>r.watch(()=>a.map(g=>tl(r,g)),c,!0,f),r.on=(a,c)=>{if(a==="dispose")return i.push(c),()=>{};t.has(a)||t.set(a,new Set),t.get(a).add(c);let f=()=>t.get(a)?.delete(c);return i.push(f),f},r.emit=(a,...c)=>{for(let f of[...t.get(a)||[]])f({},...c)},r.dispose=()=>{s=!0,i.splice(0).reverse().forEach(a=>a())},Wn(r.dispose),r}function ut(){let e=new Set,t=new Set,o=!1,i=(r,a=0)=>{if(o)return;let c=setTimeout(()=>{e.delete(c),r()},a);return e.add(c),c};i.cancel=r=>{clearTimeout(r),e.delete(r)};let s=(r,a)=>{if(o)return;let c=setInterval(r,a);return t.add(c),c};return s.cancel=r=>{clearInterval(r),t.delete(r)},Wn(()=>{o=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:i,interval:s}}function Zt(){let e=new Set;return Wn(()=>{e.forEach(t=>t()),e.clear()}),(t,o,i,s)=>{t.addEventListener(o,i,s);let r=()=>{t.removeEventListener(o,i,s),e.delete(r)};return e.add(r),r}}function fi(e,t,o){let i,s=!1,r="form-draft:"+o,a=()=>Object.fromEntries(t.map(h=>[h,e[h]])),c=()=>JSON.stringify(a()),f=h=>{for(let E of t)Object.prototype.hasOwnProperty.call(h,E)&&(e[E]=h[E]);e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate))},g=()=>{try{window.sessionStorage.removeItem(r)}catch{}},y=(h=!1)=>{if(i!==void 0){if(h&&document.querySelectorAll("input, select, textarea").forEach(E=>{E._field?.binding.state===e&&E._field.timer&&E._field.commit()}),e.unsavedChanges=c()!==i,e.draftSaved=!1,!e.unsavedChanges){g();return}try{window.sessionStorage.setItem(r,JSON.stringify({account:e.user?.username||null,savedAt:Date.now(),values:a()})),e.draftSaved=!0}catch{}}},b=()=>y(!0);return e.on("routeLeave",b),window.addEventListener("beforeunload",b),e.on("dispose",()=>window.removeEventListener("beforeunload",b)),{restore(){i=c();let h;try{h=JSON.parse(window.sessionStorage.getItem(r)||"null")}catch{}let E=h&&h.account===(e.user?.username||null)&&Date.now()-h.savedAt<30*6e4&&h.values;return E&&(f(h.values),e.draftRestored=!0),s||(s=!0,e.watch(()=>a(),()=>y(),!0)),e.unsavedChanges=c()!==i,!!E},checkpoint(){return document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state===e&&h._field.timer&&h._field.commit()}),JSON.parse(c())},accept(h){i=JSON.stringify(h),e.draftRestored=!1,y()},discard(){document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state!==e||!h._field.timer||(clearTimeout(h._field.timer),h._field.timer=null,h.value=h._field.binding.value??"")}),i!==void 0&&f(JSON.parse(i)),e.draftRestored=!1,y()},clear(){i=c(),e.unsavedChanges=!1,e.draftRestored=!1,e.draftSaved=!1,g()}}}var go={VIEWER_ERRORS:{title:"Content could not be loaded",access_title:"GitHub access needs attention",reader_help:"Reading this repository? You do not need to sign in. Try again after the owner restores access, or let them know this anonymous link is unavailable.",owner_help:"Own this repository? If your GitHub account was suspended or recently recovered, sign in to Anonymous GitHub again and check the GitHub connection and repository permissions in your dashboard. Then retry this page. Keep the existing anonymous URL; do not delete the repository to restore access.",retry:"Try again",dashboard:"Open owner dashboard"},ERRORS:{cache_busy:"Downloads are busy. Please try again shortly.",invalid_sort:"The selected sort order is invalid.",invalid_cursor:"This project page is no longer valid. Reload the list.",repository_changed:"The repository changed while processing. Please retry.",repository_job_cancelled:"The repository changed or was removed while processing.",storage_delete_failed:"Unable to remove cached files. Please try again later.",unknown_error:"We could not load this content. Try again. If it still fails, contact support with the anonymous URL and the time of the error.",unreachable:"The service could not complete this request. Wait a moment and try again.",request_error:"The connection was interrupted. Check your internet connection and try again.",not_found:"The requested resource could not be found.",not_connected:"You must be logged in to perform this action.",not_authorized:"You do not have permission to perform this action.",unable_to_connect_user:"Unable to connect your account. Please try again later.",user_not_found:"The requested user could not be found.",user_banned:"Your account has been banned. Contact the admin for more information.",repo_access_limited:"GitHub blocked access because the repository's organization restricts third-party OAuth apps. Ask an org owner to approve Anonymous GitHub under Settings \u2192 Third-party Access \u2192 OAuth app policy, or anonymize a personal fork instead.",repo_saml_enforcement:"The repository's organization enforces SAML single sign-on. Authorize your token for that organization (GitHub \u2192 Settings \u2192 Applications, or re-run the org's SSO sign-in), then retry. Alternatively, anonymize a personal fork.",repo_not_found:"Anonymous GitHub cannot access the source repository on GitHub. It may be private, unavailable, or require the owner to reconnect GitHub.",repo_empty:"The selected branch has no commits on GitHub. Push at least one commit, or pick a different branch, then retry.",repo_not_accessible:"Anonymous GitHub cannot access this repository. Verify the repository exists and that Anonymous GitHub has been authorized for the owning organization.",repository_archived:"This repository has been archived and its files are no longer available.",repository_expired:"The repository is expired.",invalid_status:"This action cannot be performed while the resource is in its current state.",repository_not_ready:"Anonymous GitHub is still processing the repository, it can take several minutes.",repository_not_accessible:"This repository is currently not accessible.",repo_is_updating:"Anonymous GitHub is still processing the repository, it can take several minutes.",invalid_repo:"The provided repository is not valid.",invalid_source_repository:"The repository source name is invalid; expected the form 'owner/name'.",repoId_not_defined:"A repository ID must be provided.",repoUrl_not_defined:"The repository URL needs to be defined.",source_not_provided:"A repository source must be provided.",github_rate_limit_exceeded:"GitHub temporarily blocked the request because we hit its API rate limit. Wait a few minutes and try again. If the problem persists and you contact GitHub Support, include the request ID and timestamp shown in GitHub's response (the 'X-GitHub-Request-Id' header).",rate_limited:"GitHub API rate limit reached. The repository will be available shortly \u2014 please wait a moment and refresh.",repoId_already_used:"The repository ID is already used.",invalid_repoId:"The format of the repository ID is invalid.",unsupported_source:"The repository source type is not supported.",branch_not_specified:"The branch is not specified.",branch_not_found:"The branch of the repository cannot be found.",commit_not_specified:"A commit must be specified.",commit_not_found:"The configured commit no longer exists in the source repository. It may have been force-pushed, rebased, or removed.",repo_renamed:"The source repository appears to have been renamed or moved on GitHub. Please refresh and try again \u2014 the cached name has been updated.",invalid_commit_format:"The commit hash format is invalid. It must be a hexadecimal string.",pull_request_not_found:"The requested pull request could not be found.",pull_request_expired:"This pull request has expired and is no longer available.",pull_request_not_ready:"This pull request is still being prepared. Please try again shortly.",pull_request_not_available:"This pull request is currently not available.",invalid_pullRequestId:"The pull request ID is invalid.",pullRequestId_already_used:"This pull request ID is already in use. Please choose a different one.",repository_not_specified:"A repository must be specified for this pull request.",pullRequestId_not_specified:"A pull request ID must be specified.",pullRequestId_is_not_a_number:"The source pull request ID must be a number.",options_not_provided:"Anonymization options are mandatory.",terms_not_specified:"Anonymization terms must be specified.",invalid_terms_format:"Terms are in an invalid format.",missing_content:"No content was provided to the anonymization preview.",unable_to_anonymize:"An error happened during the anonymization process. Please try later or report the issue.",non_supported_mode:"The selected anonymization mode is invalid, only download and stream are supported.",invalid_path:"The provided path is invalid or missing.",path_not_specified:"A file path must be specified.",path_not_defined:"The file path has not been resolved yet.",invalid_file_path:"The requested file path is not valid.",invalid_request:"The request is missing required fields or is malformed.",invalid_project_name:"Use a project name of up to 100 characters without line breaks or control characters.",no_file_selected:"Please select a file.",submodule_not_available:"This public submodule file is no longer available at its recorded commit.",file_not_found:"The requested file is not found.",file_not_accessible:"The requested file is not accessible.",file_not_supported:"The file type is not supported. Anonymous GitHub cannot handle it.",repository_tree_too_large:"The repository has too many pending folders to process safely. Share a smaller repository.",file_listing_too_large:"This folder has too many entries to list. Open a more specific folder or use file search.",file_too_big:"The file size exceeds the limit of Anonymous GitHub.",is_folder:"The path points to a folder.",folder_not_supported:"The path points to a folder. Please select a file.",unable_to_write_file:"Unable to write file on disk.",download_not_enabled:"Repository downloads are not enabled on this server.",unable_to_download:"The repository could not be downloaded. Please try again later.",s3_config_not_provided:"Object storage has not been configured on this server.",stats_unsupported:"Statistics are only supported in download mode.",branches_not_found:"The requested branch is not found.",readme_not_available:"No README for the repository is found.",page_not_supported_on_different_branch:"GitHub Pages is served from a different branch than the one selected. Pick the branch that GitHub Pages is configured to use.",page_not_activated:"GitHub Pages is not enabled on this repository. Enable it in the repository settings on GitHub before anonymizing.",is_removed:"This resource has been removed and is no longer available.",conf_name_missing:"A conference name is required.",conf_id_missing:"A conference ID is required.",conf_id_used:"This conference ID is already in use. Please choose a different one.",conf_start_date_missing:"A start date is required for the conference.",conf_end_date_missing:"An end date is required for the conference.",conf_start_date_invalid:"The start date must be before the end date.",conf_end_date_invalid:"The end date must be in the future.",invalid_plan:"The selected plan is not valid.",conference_not_found:"The requested conference could not be found.",conf_not_found:"The requested conference could not be found.",conf_not_activated:"The conference is not activated.",billing_missing:"Billing information is required for this plan.",billing_name_missing:"A billing name is required.",billing_email_missing:"A billing email is required.",billing_address_missing:"A billing address is required.",billing_city_missing:"A billing city is required.",billing_zip_missing:"A billing ZIP/postal code is required.",billing_country_missing:"A billing country is required.",queue_not_found:"The specified queue could not be found.",job_not_found:"The specified job could not be found in the queue.",error_retrying_job:"An error occurred while retrying the job.",gist_expired:"The gist is expired.",gist_not_ready:"Anonymous GitHub is still processing the gist, it can take several minutes.",gist_not_found:"The requested gist could not be found.",gist_not_available:"This gist is currently not available.",invalid_gistId:"The format of the gist ID is invalid.",gistId_not_specified:"A gist ID must be provided.",gistId_already_used:"The gist ID is already used.",missing_token:"An authentication token is required.",token_attempts_rate_limited:"Too many token authentication attempts. Wait before trying again.",refresh_rate_limited:"A refresh was already requested for this repository. Wait one minute before trying again.",session_required:"Sign in through your browser to manage maintenance tokens.",invalid_token_options:"Provide a token name, 1 to 20 repository IDs, and an expiration of 1 to 90 days.",token_limit_reached:"You have reached the limit of 50 API tokens. Revoke an unused token before creating another.",invalid_token_id:"The token ID is invalid.",invalid_settings:"Provide supported settings with boolean values, or a list of anonymization terms.",token_scope_forbidden:"This token does not allow this operation or repository.",authentication_unavailable:"Authentication is temporarily unavailable. Try again later.",invalid_token:"The provided authentication token is invalid.",login_failed:"Login failed. Please try again.",server_error:"An unexpected server error occurred. Please try again later.",username_not_defined:"A username must be provided.",github_user_not_found:"The specified GitHub user could not be found.",cannot_coauthor_self:"You cannot add yourself as a co-author.",storage_write_size_mismatch:"The downloaded file was smaller than expected. The upstream source may have returned an incomplete response \u2014 please try again.",storage_read_error:"An error occurred while reading the file from storage \u2014 please try again.",upstream_error:"A temporary error occurred while fetching from GitHub \u2014 please try again.",token_expired:"The repository owner needs to renew their GitHub connection before this content can be loaded.",job_is_active:"This job is currently running \u2014 wait for it to finish or remove it first.",github_app_access_required:"Allow this repository on GitHub using the read-only access button, then retry. Organization access may require administrator approval.",github_app_reconnect_required:"Reconnect your GitHub App account to restore read-only access.",github_app_disabled:"New GitHub App connections are currently unavailable.",github_oauth_required:"Connect legacy GitHub OAuth to use this feature.",github_identity_mismatch:"Use the same GitHub account that you are signed in with here.",github_app_permissions_invalid:"The GitHub App must be configured with read-only permissions.",github_unavailable:"GitHub is temporarily unavailable. Please retry.",connection_changed:"The repository connection changed. Reload and try again.",repository_busy:"Wait for the repository operation to finish before changing its connection.",invalid_connection:"Select a supported GitHub connection.",github_oauth_disabled:"Legacy OAuth sign-in is currently disabled.",invalid_auth_state:"The authorization session expired. Please start again from Anonymous GitHub.",invalid_webhook_signature:"The webhook signature is invalid.",webhook_processing_failed:"Webhook processing failed. Retry the delivery.",github_app_authorization_cancelled:"GitHub authorization was cancelled.",github_account_link_required:"Verify your existing account with your previous GitHub connection. Future sign-ins will use the GitHub App.",github_app_refresh_busy:"GitHub credentials are being renewed. Please retry shortly.",github_grant_revocation_failed:"Unable to revoke the GitHub grant. Please retry.",another_login_required:"Connect and verify another sign-in method before disconnecting OAuth.",oauth_resources_remaining:"Some resources still require OAuth. Migrate or remove them before disconnecting.",invalid_github_path:"The GitHub repository path is invalid.",repository_tree_incomplete:"The repository file tree is incomplete. Reduce its size and refresh before downloading.",billing_environment_mismatch:"The payment event does not match this billing environment.",billing_unavailable:"Payments are not available. Please try again later.",invalid_billing_signature:"The payment notification could not be verified.",billing_webhook_failed:"The payment notification could not be processed.",billing_customer_not_found:"No billing account was found.",subscription_required_for_never_expiration:"Never-expiring repositories require the owner\u2019s active monthly or annual author subscription. Choose a dated expiration or upgrade in Plans and billing.",invalid_billing_expiration:"Choose an expiration date within the next year, or select Never expire with an author subscription.",pending_payment:"Awaiting payment"},WARNINGS:{page_not_enabled_on_repo:"GitHub Pages is not enabled on this repository. Enable it in the repository's Settings \u2192 Pages on GitHub, then refresh.",page_branch_mismatch:"GitHub Pages on this repository is served from the '{{pageBranch}}' branch, but you selected '{{selectedBranch}}'. Switch the branch above to '{{pageBranch}}' to anonymize the Pages site.",folder_truncated:"This folder has more than 10,000 entries; only a partial listing is shown.",repo_truncated:"Some folders in this repository have too many files to be fully listed. Affected folders are marked with a warning icon.",submodules_not_included:"Some submodule contents could not be included. Only direct public GitHub submodules within the size limits are supported. Private, external, nested, or unavailable submodules appear as empty folders."}};function hi(e){let t=e?.data;if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return typeof t?.error=="string"&&Object.prototype.hasOwnProperty.call(go.ERRORS,t.error)?t.error:e?.status===-1||e?.status===0?"request_error":[502,503,504].includes(e?.status)?"unreachable":"unknown_error"}var ls="XXXX",Dp=e=>{ls=e||"XXXX"},nl=(e=ls)=>{if(!e)return null;let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t+"(?:-\\d+)?","g")},ol=(e,t=ls)=>{let o=nl(t);if(!o||!e||!e.textContent.includes(t))return;let i=e.ownerDocument,s=i.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=[];for(;s.nextNode();)r.push(s.currentNode);for(let a of r){let c=a.nodeValue,f=a.parentElement;if(!c.includes(t)||!f||f.closest("script, style, mark.redaction, .mermaid"))continue;let g=f.closest('code[class*="language-"]');if(g&&!g.contains(e))continue;let y=i.createDocumentFragment(),b=0;for(let h of c.matchAll(o)){y.append(c.slice(b,h.index));let E=i.createElement("mark");E.className="redaction",E.title="Redacted by Anonymous GitHub",E.textContent=h[0],y.append(E),b=h.index+h[0].length}y.append(c.slice(b)),a.replaceWith(y)}},sl=(e,t=ls)=>{if(!e||!t||!e.includes(t))return e;let o=new DOMParser().parseFromString(""+e+"","text/html");return ol(o.body,t),o.body.innerHTML};async function il(e){if(window.navigator.clipboard?.writeText){await window.navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0";let o=document.activeElement;document.body.appendChild(t);try{if(t.select(),!document.execCommand?.("copy"))throw Error("Copy unavailable")}finally{t.remove(),o?.focus()}}function Tp(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;let t=[...e.currentTarget.closest('[role="tablist"]').querySelectorAll('[role="tab"]')],o=t.indexOf(e.currentTarget),i=e.key==="Home"?0:e.key==="End"?t.length-1:(o+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;e.preventDefault(),t[i]?.focus(),t[i]?.click()}var rl=function(e,t,o,i){e.previewTabKeydown=Tp,e.headerCanUpgrade=!1,e.headerBillingPending=["success","portal"].includes(new URLSearchParams(window.location.search).get("billing"));let s=b=>{let h=(b?.grants||[]).some(E=>["author_monthly","author_annual"].includes(E.planId)&&["active","paid","past_due"].includes(E.status)&&new Date(E.until).getTime()>Date.now());e.headerCanUpgrade=!!b?.enabled&&b.checkoutEnabled!==!1&&!h&&(b.plans||[]).some(E=>["author_monthly","author_annual"].includes(E.id))};e.on("billing:updated",(b,h)=>s(h)),e.on("billing:pending",(b,h)=>{e.headerBillingPending=h}),e.openHeaderUpgrade=()=>{o.path()==="/profile"?e.emit("settings:upgrade"):o.url("/profile?upgrade=1")},e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(b){let h=e.toasts.indexOf(b);h!==-1&&e.toasts.splice(h,1)},e.addToast=function(b){return e.toasts.push(b),i(function(){e.removeToast(b)},8e3),b};let r=/^\/(r|repository|pr|gist)\//;e.path=o.url(),e.paths=o.path().substring(1).split("/"),e.isReviewerRoute=r.test(o.path()),e.darkMode=function(b){localStorage.setItem("darkMode",b),e.isDarkMode=b;let h="/css/prism-okaidia.css",E="/css/prism.css";if(b){$("body").addClass("dark-mode");let m=document.createElement("link");m.href=h,m.rel="stylesheet",document.head.append(m),$(`link[href='${E}']`).remove()}else{$("body").removeClass("dark-mode");let m=document.createElement("link");m.href=E,m.rel="stylesheet",document.head.append(m),$(`link[href='${h}']`).remove()}let _=document.querySelector("[class*='floatingchat-container-wrap'] [class*='floating-chat-kofi-text-container-wrap']");_&&(_.style.backgroundColor=b?"#34312C":"#1A1815",_.style.color="#FAF9F6"),e.emit("dark-mode",b)},e.darkMode(localStorage.getItem("darkMode")=="true"),e.emailPromptOpen=!1,e.emailPromptAddress="",e.emailPromptBusy=!1,e.emailPromptError="";let a;e.respondToEmailPrompt=async b=>{if(!e.emailPromptBusy){e.emailPromptBusy=!0,e.emailPromptError="";try{let h=await t.post("/github/connections/email",{action:b,email:e.emailPromptAddress},{headers:{"X-CSRF-Token":e.user.emailPromptCSRF}});b==="save"&&(e.user.notificationEmail=h.data.notificationEmail),e.emailPromptOpen=!1,e.user.showEmailPrompt=!1,a?.focus()}catch(h){e.emailPromptError=h.data?.error||"Unable to save your preference. Please try again."}finally{e.emailPromptBusy=!1}}};function c(){t.get("/api/user").then(b=>{b&&(e.user=b.data),e.user?.username&&ci(t).then(h=>s(h.data)).catch(()=>{}),e.user?.emailNotificationsEnabled&&e.user.showEmailPrompt&&!e.user.notificationEmail&&(a=document.activeElement,e.emailPromptOpen=!0,i(()=>{let h=document.getElementById("email-prompt");h?.showModal?h.showModal():h?.setAttribute("open",""),document.getElementById("email-prompt-address")?.focus()},0))},()=>{e.user=null})}c();function f(){t.get("/api/options").then(b=>{b&&(e.site_options=b.data),Dp(b?.data?.ANONYMIZATION_MASK),e.emit("site-options")},()=>{e.site_options=null})}f();function g(){t.get("/api/message").then(b=>{b&&(e.generalMessage=b.data)},()=>{e.generalMessage=null})}g();function y(b,h){h&&(e.title=h.title),e.path=o.url(),e.paths=o.path().substring(1).split("/"),e.isReviewerRoute=r.test(o.path())}e.on("routeChange",y),e.on("routeUpdate",y)},al=function(e,t){let o=Zt(),i=ut(),s=()=>{let r=window.location.hash.slice(1),a=document.getElementById(r);if(!a?.classList.contains("panel-collapse"))return;$(a).collapse("show");let c=document.getElementById(a.getAttribute("aria-labelledby"));c?.setAttribute("tabindex","-1"),c?.focus({preventScroll:!0}),c?.scrollIntoView?.({block:"start"})};e.on("routeUpdate",()=>i.timeout(s,0)),o(window,"hashchange",s),i.timeout(s,0)},ll=function(e,t,o,i,s){e.settingsTab=/(?:billing|upgrade)=/.test(window.location.search)?"billing":"defaults",e.confirmDeleteAccount=!1,e.deleteUsername="",e.profilePastSubscription=()=>!e.profileAuthorGrant()&&(e.billing?.grants||[]).some(g=>["author_monthly","author_annual"].includes(g.planId)),e.showAuthorPlans=new URLSearchParams(window.location.search).get("upgrade")==="1",e.showRepositoryPass=!1,e.profilePlan="author_monthly",e.openProfileUpgrade=()=>{e.settingsTab="billing",e.showAuthorPlans=!0,Ke(()=>document.getElementById("settings-plan-comparison")?.focus())},e.on("settings:upgrade",()=>e.openProfileUpgrade()),e.profileAuthorPlans=()=>(e.billing?.plans||[]).filter(g=>["author_monthly","author_annual"].includes(g.id)),e.profileSelectedPlan=()=>e.profileAuthorPlans().find(g=>g.id===e.profilePlan)||e.profileAuthorPlans()[0],e.profilePassPlan=()=>(e.billing?.plans||[]).find(g=>g.id==="author_pass"),e.profileAuthorGrant=()=>(e.billing?.grants||[]).find(g=>["author_monthly","author_annual"].includes(g.planId)&&["active","paid","past_due"].includes(g.status)&&new Date(g.until).getTime()>Date.now()),e.profileGrantName=g=>({author_monthly:"Author monthly",author_annual:"Author annual",author_pass:"Repository pass",conference:"Conference hosting"})[g.planId]||g.planId,as(e,t,()=>s.load().then(g=>{e.quota=g},console.error)),e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,e.accountEmail="",e.emailLoading=!0,e.emailCSRFReady=!1,e.emailSaving=!1,e.emailSaved=!1,e.emailError="";let r="";e.loadAccountEmail=async()=>{e.emailLoading=!0,e.emailError="";try{let g=await t.get("/github/connections/email");e.accountEmail=g.data.notificationEmail||"",r=g.data.csrf,e.emailCSRFReady=!!r}catch{e.emailError="Unable to load your email address. Please try again."}finally{e.emailLoading=!1}},e.saveAccountEmail=async()=>{if(!(e.emailSaving||e.emailLoading||!r)){e.emailSaving=!0,e.emailSaved=!1,e.emailError="";try{let g=await t.post("/github/connections/email",{email:e.accountEmail},{headers:{"X-CSRF-Token":r}});e.accountEmail=g.data.notificationEmail,e.user&&(e.user.notificationEmail=g.data.notificationEmail),e.emailSaved=!0}catch{e.emailError="Unable to save your email address. Check the address and try again."}finally{e.emailSaving=!1}}},e.loadAccountEmail(),s.load().then(g=>{e.quota=g},console.error);let a=fi(e,["terms","options"],"profile");e.discardDraft=()=>a.discard();function c(){t.get("/api/user/default").then(g=>{let y=g.data||{};y.terms&&(e.terms=y.terms.join(` +`+JSON.stringify(t):""}`},[He.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${op(t)}" via a navigation guard.`},[He.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[He.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[He.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function hn(e,t){return Oe(new Error,{type:e,[Va]:!0},t)}function Ht(e,t){return e instanceof Error&&Va in e&&(t==null||!!(e.type&t))}var np=["params","query","hash"];function op(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let o of np)o in e&&(t[o]=e[o]);return JSON.stringify(t,null,2)}function qa(e){let t={};if(e===""||e==="?")return t;let o=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;is&&ei(s)):[i&&ei(i)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+o,s!=null&&(t+="="+s))})}return t}function Ma(e){let t={};for(let o in e){let i=e[o];i!==void 0&&(t[o]=kt(i)?i.map(s=>s==null?null:""+s):i==null?i:""+i)}return t}var Ua=Symbol(""),di=Symbol(""),ns=Symbol(""),os=Symbol(""),ss=Symbol("");function In(){let e=[];function t(i){return e.push(i),()=>{let s=e.indexOf(i);s>-1&&e.splice(s,1)}}function o(){e=[]}return{add:t,list:()=>e.slice(),reset:o}}function Qt(e,t,o,i,s,r=a=>a()){let a=i&&(i.enterCallbacks[s]=i.enterCallbacks[s]||[]);return()=>new Promise((c,f)=>{let g=h=>{h===!1?f(hn(He.NAVIGATION_ABORTED,{from:o,to:t})):h instanceof Error?f(h):tp(h)?f(hn(He.NAVIGATION_GUARD_REDIRECT,{from:t,to:h})):(a&&i.enterCallbacks[s]===a&&typeof h=="function"&&a.push(h),c())},y=r(()=>e.call(i&&i.instances[s],t,o,g)),b=Promise.resolve(y);e.length<3&&(b=b.then(g)),b.catch(h=>f(h))})}function is(e,t,o,i,s=r=>r()){let r=[];for(let a of e)for(let c in a.components){let f=a.components[c];if(!(t!=="beforeRouteEnter"&&!a.instances[c]))if(ba(f)){let g=(f.__vccOpts||f)[t];g&&r.push(Qt(g,o,i,a,c,s))}else{let g=f();r.push(()=>g.then(y=>{if(!y)throw new Error(`Couldn't resolve component "${c}" at "${a.path}"`);let b=Uc(y)?y.default:y;a.mods[c]=y,a.components[c]=b;let h=(b.__vccOpts||b)[t];return h&&Qt(h,o,i,a,c,s)()}))}}return r}function $a(e,t){let o=[],i=[],s=[],r=Math.max(t.matched.length,e.matched.length);for(let a=0;afn(g,c))?i.push(c):o.push(c));let f=e.matched[a];f&&(t.matched.find(g=>fn(g,f))||s.push(f))}return[o,i,s]}var sp=()=>location.protocol+"//"+location.host;function Ja(e,t){let{pathname:o,search:i,hash:s}=t,r=e.indexOf("#");if(r>-1){let a=s.includes(e.slice(r))?e.slice(r).length:1,c=s.slice(a);return c[0]!=="/"&&(c="/"+c),si(c,"")}return si(o,e)+i+s}function ip(e,t,o,i){let s=[],r=[],a=null,c=({state:h})=>{let E=Ja(e,location),S=o.value,m=t.value,C=0;if(h){if(o.value=E,t.value=h,a&&a===S){a=null;return}C=m?h.position-m.position:0}else i(E);s.forEach(N=>{N(o.value,S,{delta:C,type:es.pop,direction:C?C>0?ts.forward:ts.back:ts.unknown})})};function f(){a=o.value}function g(h){s.push(h);let E=()=>{let S=s.indexOf(h);S>-1&&s.splice(S,1)};return r.push(E),E}function y(){if(document.visibilityState==="hidden"){let{history:h}=window;if(!h.state)return;h.replaceState(Oe({},h.state,{scroll:vo()}),"")}}function b(){for(let h of r)h();r=[],window.removeEventListener("popstate",c),window.removeEventListener("pagehide",y),document.removeEventListener("visibilitychange",y)}return window.addEventListener("popstate",c),window.addEventListener("pagehide",y),document.addEventListener("visibilitychange",y),{pauseListeners:f,listen:g,destroy:b}}function La(e,t,o,i=!1,s=!1){return{back:e,current:t,forward:o,replaced:i,position:window.history.length,scroll:s?vo():null}}function rp(e){let{history:t,location:o}=window,i={value:Ja(e,o)},s={value:t.state};s.value||r(i.value,{back:null,current:i.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function r(f,g,y){let b=e.indexOf("#"),h=b>-1?(o.host&&document.querySelector("base")?e:e.slice(b))+f:sp()+e+f;try{t[y?"replaceState":"pushState"](g,"",h),s.value=g}catch(E){console.error(E),o[y?"replace":"assign"](h)}}function a(f,g){r(f,Oe({},t.state,La(s.value.back,f,s.value.forward,!0),g,{position:s.value.position}),!0),i.value=f}function c(f,g){let y=Oe({},s.value,t.state,{forward:f,scroll:vo()});r(y.current,y,!0),r(f,Oe({},La(i.value,f,null),{position:y.position+1},g),!1),i.value=f}return{location:i,state:s,push:c,replace:a}}function Qa(e){e=Ta(e);let t=rp(e),o=ip(e,t.state,t.location,t.replace);function i(r,a=!0){a||o.pauseListeners(),history.go(r)}let s=Oe({location:"",base:e,go:i,createHref:Aa.bind(null,e)},t,o);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}var vn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),Xe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Xe||{}),ap={type:vn.Static,value:""},lp=/[a-zA-Z0-9_]/;function dp(e){if(!e)return[[]];if(e==="/")return[[ap]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(E){throw new Error(`ERR (${o})/"${g}": ${E}`)}let o=Xe.Static,i=o,s=[],r;function a(){r&&s.push(r),r=[]}let c=0,f,g="",y="";function b(){g&&(o===Xe.Static?r.push({type:vn.Static,value:g}):o===Xe.Param||o===Xe.ParamRegExp||o===Xe.ParamRegExpEnd?(r.length>1&&(f==="*"||f==="+")&&t(`A repeatable param (${g}) must be alone in its segment. eg: '/:ids+.`),r.push({type:vn.Param,value:g,regexp:y,repeatable:f==="*"||f==="+",optional:f==="*"||f==="?"})):t("Invalid state to consume buffer"),g="")}function h(){g+=f}for(;ct.length?t.length===1&&t[0]===it.Static+it.Segment?1:-1:0}function Xa(e,t){let o=0,i=e.score,s=t.score;for(;o0&&t[t.length-1]<0}var hp={strict:!1,end:!0,sensitive:!1};function mp(e,t,o){let i=pp(dp(e.path),o),s=Oe(i,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function vp(e,t){let o=[],i=new Map;t=ni(hp,t);function s(b){return i.get(b)}function r(b,h,E){let S=!E,m=za(b);m.aliasOf=E&&E.record;let C=ni(t,b),N=[m];if("alias"in b){let U=typeof b.alias=="string"?[b.alias]:b.alias;for(let q of U)N.push(za(Oe({},m,{components:E?E.record.components:m.components,path:q,aliasOf:E?E.record:m})))}let A,M;for(let U of N){let{path:q}=U;if(h&&q[0]!=="/"){let B=h.record.path,oe=B[B.length-1]==="/"?"":"/";U.path=h.record.path+(q&&oe+q)}if(A=mp(U,h,C),E?E.alias.push(A):(M=M||A,M!==A&&M.alias.push(A),S&&b.name&&!ja(A)&&a(b.name)),Za(A)&&f(A),m.children){let B=m.children;for(let oe=0;oe{a(M)}:Pn}function a(b){if(ai(b)){let h=i.get(b);h&&(i.delete(b),o.splice(o.indexOf(h),1),h.children.forEach(a),h.alias.forEach(a))}else{let h=o.indexOf(b);h>-1&&(o.splice(h,1),b.record.name&&i.delete(b.record.name),b.children.forEach(a),b.alias.forEach(a))}}function c(){return o}function f(b){let h=bp(b,o);o.splice(h,0,b),b.record.name&&!ja(b)&&i.set(b.record.name,b)}function g(b,h){let E,S={},m,C;if("name"in b&&b.name){if(E=i.get(b.name),!E)throw hn(He.MATCHER_NOT_FOUND,{location:b});C=E.record.name,S=Oe(Ha(h.params,E.keys.filter(M=>!M.optional).concat(E.parent?E.parent.keys.filter(M=>M.optional):[]).map(M=>M.name)),b.params&&Ha(b.params,E.keys.map(M=>M.name))),m=E.stringify(S)}else if(b.path!=null)m=b.path,E=o.find(M=>M.re.test(m)),E&&(S=E.parse(m),C=E.record.name);else{if(E=h.name?i.get(h.name):o.find(M=>M.re.test(h.path)),!E)throw hn(He.MATCHER_NOT_FOUND,{location:b,currentLocation:h});C=E.record.name,S=Oe({},h.params,b.params),m=E.stringify(S)}let N=[],A=E;for(;A;)N.unshift(A.record),A=A.parent;return{name:C,path:m,params:S,matched:N,meta:yp(N)}}e.forEach(b=>r(b));function y(){o.length=0,i.clear()}return{addRoute:r,resolve:g,removeRoute:a,clearRoutes:y,getRoutes:c,getRecordMatcher:s}}function Ha(e,t){let o={};for(let i of t)i in e&&(o[i]=e[i]);return o}function za(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:gp(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function gp(e){let t={},o=e.props||!1;if("component"in e)t.default=o;else for(let i in e.components)t[i]=typeof o=="object"?o[i]:o;return t}function ja(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function yp(e){return e.reduce((t,o)=>Oe(t,o.meta),{})}function bp(e,t){let o=0,i=t.length;for(;o!==i;){let r=o+i>>1;Xa(e,t[r])<0?i=r:o=r+1}let s=wp(e);return s&&(i=t.lastIndexOf(s,i-1)),i}function wp(e){let t=e;for(;t=t.parent;)if(Za(t)&&Xa(e,t)===0)return t}function Za({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ga(e){let t=dt(ns),o=dt(os),i=!1,s=null,r=nt(()=>{let y=Wt(e.to);return t.resolve(y)}),a=nt(()=>{let{matched:y}=r.value,{length:b}=y,h=y[b-1],E=o.matched;if(!h||!E.length)return-1;let S=E.findIndex(fn.bind(null,h));if(S>-1)return S;let m=Wa(y[b-2]);return b>1&&Wa(h)===m&&E[E.length-1].path!==m?E.findIndex(fn.bind(null,y[b-2])):S}),c=nt(()=>a.value>-1&&_p(o.params,r.value.params)),f=nt(()=>a.value>-1&&a.value===o.matched.length-1&&ii(o.params,r.value.params));function g(y={}){if(Sp(y)){let b=t[Wt(e.replace)?"replace":"push"](Wt(e.to)).catch(Pn);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>b),b}return Promise.resolve()}return{route:r,href:nt(()=>r.value.href),isActive:c,isExactActive:f,navigate:g}}function kp(e){return e.length===1?e[0]:e}var Ep=uo({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Ga,setup(e,{slots:t}){let o=Fe(Ga(e)),{options:i}=dt(ns),s=nt(()=>({[Ka(e.activeClass,i.linkActiveClass,"router-link-active")]:o.isActive,[Ka(e.exactActiveClass,i.linkExactActiveClass,"router-link-exact-active")]:o.isExactActive}));return()=>{let r=t.default&&kp(t.default(o));return e.custom?r:we("a",{"aria-current":o.isExactActive?e.ariaCurrentValue:null,href:o.href,onClick:o.navigate,class:s.value},r)}}}),Cp=Ep;function Sp(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function _p(e,t){for(let o in t){let i=t[o],s=e[o];if(typeof i=="string"){if(i!==s)return!1}else if(!kt(s)||s.length!==i.length||i.some((r,a)=>r.valueOf()!==s[a].valueOf()))return!1}return!0}function Wa(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var Ka=(e,t,o)=>e??t??o,Np=uo({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:o}){let i=dt(ss),s=nt(()=>e.route||i.value),r=dt(di,0),a=nt(()=>{let g=Wt(r),{matched:y}=s.value,b;for(;(b=y[g])&&!b.components;)g++;return g}),c=nt(()=>s.value.matched[a.value]);un(di,nt(()=>a.value+1)),un(Ua,c),un(ss,s);let f=et();return Be(()=>[f.value,c.value,e.name],([g,y,b],[h,E,S])=>{y&&(y.instances[b]=g,E&&E!==y&&g&&g===h&&(y.leaveGuards.size||(y.leaveGuards=E.leaveGuards),y.updateGuards.size||(y.updateGuards=E.updateGuards))),g&&y&&(!E||!fn(y,E)||!h)&&(y.enterCallbacks[b]||[]).forEach(m=>m(g))},{flush:"post"}),()=>{let g=s.value,y=e.name,b=c.value,h=b&&b.components[y];if(!h)return Ya(o.default,{Component:h,route:g});let E=b.props[y],S=E?E===!0?g.params:typeof E=="function"?E(g):E:null,C=we(h,Oe({},S,t,{onVnodeUnmounted:N=>{N.component.isUnmounted&&(b.instances[y]=null)},ref:f}));return Ya(o.default,{Component:C,route:g})||C}}});function Ya(e,t){if(!e)return null;let o=e(t);return o.length===1?o[0]:o}var ui=Np;function xa(e){let t=vp(e.routes,e),o=e.parseQuery||qa,i=e.stringifyQuery||li,s=e.history,r=In(),a=In(),c=In(),f=Po(Xt),g=Xt;mn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let y=Zo.bind(null,H=>""+H),b=Zo.bind(null,Na),h=Zo.bind(null,On);function E(H,se){let Y,Z;return ai(H)?(Y=t.getRecordMatcher(H),Z=se):Z=H,t.addRoute(Z,Y)}function S(H){let se=t.getRecordMatcher(H);se&&t.removeRoute(se)}function m(){return t.getRoutes().map(H=>H.record)}function C(H){return!!t.getRecordMatcher(H)}function N(H,se){if(se=Oe({},se||f.value),typeof H=="string"){let _=xo(o,H,se.path),V=t.resolve({path:_.path},se),G=s.createHref(_.fullPath);return Oe(_,V,{params:h(V.params),hash:On(_.hash),redirectedFrom:void 0,href:G})}let Y;if(H.path!=null)Y=Oe({},H,{path:xo(o,H.path,se.path).path});else{let _=Oe({},H.params);for(let V in _)_[V]==null&&delete _[V];Y=Oe({},H,{params:b(_)}),se.params=b(se.params)}let Z=t.resolve(Y,se),ue=H.hash||"";Z.params=y(h(Z.params));let be=Ra(i,Oe({},H,{hash:_a(ue),path:Z.path})),k=s.createHref(be);return Oe({fullPath:be,hash:ue,query:i===li?Ma(H.query):H.query||{}},Z,{redirectedFrom:void 0,href:k})}function A(H){return typeof H=="string"?xo(o,H,f.value.path):Oe({},H)}function M(H,se){if(g!==H)return hn(He.NAVIGATION_CANCELLED,{from:se,to:H})}function U(H){return oe(H)}function q(H){return U(Oe(A(H),{replace:!0}))}function B(H,se){let Y=H.matched[H.matched.length-1];if(Y&&Y.redirect){let{redirect:Z}=Y,ue=typeof Z=="function"?Z(H,se):Z;return typeof ue=="string"&&(ue=ue.includes("?")||ue.includes("#")?ue=A(ue):{path:ue},ue.params={}),Oe({query:H.query,hash:H.hash,params:ue.path!=null?{}:H.params},ue)}}function oe(H,se){let Y=g=N(H),Z=f.value,ue=H.state,be=H.force,k=H.replace===!0,_=B(Y,Z);if(_)return oe(Oe(A(_),{state:typeof _=="object"?Oe({},ue,_.state):ue,force:be,replace:k}),se||Y);let V=Y;V.redirectedFrom=se;let G;return!be&&Da(i,Z,Y)&&(G=hn(He.NAVIGATION_DUPLICATED,{to:V,from:Z}),Ae(Z,Z,!0,!1)),(G?Promise.resolve(G):j(V,Z)).catch(w=>Ht(w)?Ht(w,He.NAVIGATION_GUARD_REDIRECT)?w:Te(w):re(w,V,Z)).then(w=>{if(w){if(Ht(w,He.NAVIGATION_GUARD_REDIRECT))return oe(Oe({replace:k},A(w.to),{state:typeof w.to=="object"?Oe({},ue,w.to.state):ue,force:be}),se||V)}else w=ve(V,Z,!0,k,ue);return ie(V,Z,w),w})}function ee(H,se){let Y=M(H,se);return Y?Promise.reject(Y):Promise.resolve()}function R(H){let se=ze.values().next().value;return se&&typeof se.runWithContext=="function"?se.runWithContext(H):H()}function j(H,se){let Y,[Z,ue,be]=$a(H,se);Y=is(Z.reverse(),"beforeRouteLeave",H,se);for(let _ of Z)_.leaveGuards.forEach(V=>{Y.push(Qt(V,H,se))});let k=ee.bind(null,H,se);return Y.push(k),Ie(Y).then(()=>{Y=[];for(let _ of r.list())Y.push(Qt(_,H,se));return Y.push(k),Ie(Y)}).then(()=>{Y=is(ue,"beforeRouteUpdate",H,se);for(let _ of ue)_.updateGuards.forEach(V=>{Y.push(Qt(V,H,se))});return Y.push(k),Ie(Y)}).then(()=>{Y=[];for(let _ of be)if(_.beforeEnter)if(kt(_.beforeEnter))for(let V of _.beforeEnter)Y.push(Qt(V,H,se));else Y.push(Qt(_.beforeEnter,H,se));return Y.push(k),Ie(Y)}).then(()=>(H.matched.forEach(_=>_.enterCallbacks={}),Y=is(be,"beforeRouteEnter",H,se,R),Y.push(k),Ie(Y))).then(()=>{Y=[];for(let _ of a.list())Y.push(Qt(_,H,se));return Y.push(k),Ie(Y)}).catch(_=>Ht(_,He.NAVIGATION_CANCELLED)?_:Promise.reject(_))}function ie(H,se,Y){c.list().forEach(Z=>R(()=>Z(H,se,Y)))}function ve(H,se,Y,Z,ue){let be=M(H,se);if(be)return be;let k=se===Xt,_=mn?history.state:{};Y&&(Z||k?s.replace(H.fullPath,Oe({scroll:k&&_&&_.scroll},ue)):s.push(H.fullPath,ue)),f.value=H,Ae(H,se,Y,k),Te()}let z;function J(){z||(z=s.listen((H,se,Y)=>{if(!Ue.listening)return;let Z=N(H),ue=B(Z,Ue.currentRoute.value);if(ue){oe(Oe(ue,{replace:!0,force:!0}),Z).catch(Pn);return}g=Z;let be=f.value;mn&&Pa(ri(be.fullPath,Y.delta),vo()),j(Z,be).catch(k=>Ht(k,He.NAVIGATION_ABORTED|He.NAVIGATION_CANCELLED)?k:Ht(k,He.NAVIGATION_GUARD_REDIRECT)?(oe(Oe(A(k.to),{force:!0}),Z).then(_=>{Ht(_,He.NAVIGATION_ABORTED|He.NAVIGATION_DUPLICATED)&&!Y.delta&&Y.type===es.pop&&s.go(-1,!1)}).catch(Pn),Promise.reject()):(Y.delta&&s.go(-Y.delta,!1),re(k,Z,be))).then(k=>{k=k||ve(Z,be,!1),k&&(Y.delta&&!Ht(k,He.NAVIGATION_CANCELLED)?s.go(-Y.delta,!1):Y.type===es.pop&&Ht(k,He.NAVIGATION_ABORTED|He.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),ie(Z,be,k)}).catch(Pn)}))}let Q=In(),te=In(),X;function re(H,se,Y){Te(H);let Z=te.list();return Z.length?Z.forEach(ue=>ue(H,se,Y)):console.error(H),Promise.reject(H)}function Ee(){return X&&f.value!==Xt?Promise.resolve():new Promise((H,se)=>{Q.add([H,se])})}function Te(H){return X||(X=!H,J(),Q.list().forEach(([se,Y])=>H?Y(H):se()),Q.reset()),H}function Ae(H,se,Y,Z){let{scrollBehavior:ue}=e;if(!mn||!ue)return Promise.resolve();let be=!Y&&Ia(ri(H.fullPath,0))||(Z||!Y)&&history.state&&history.state.scroll||null;return Ke().then(()=>ue(H,se,be)).then(k=>k&&Oa(k)).catch(k=>re(k,H,se))}let Se=H=>s.go(H),_e,ze=new Set,Ue={currentRoute:f,listening:!0,addRoute:E,removeRoute:S,clearRoutes:t.clearRoutes,hasRoute:C,getRoutes:m,resolve:N,options:e,push:U,replace:q,go:Se,back:()=>Se(-1),forward:()=>Se(1),beforeEach:r.add,beforeResolve:a.add,afterEach:c.add,onError:te.add,isReady:Ee,install(H){H.component("RouterLink",Cp),H.component("RouterView",ui),H.config.globalProperties.$router=Ue,Object.defineProperty(H.config.globalProperties,"$route",{enumerable:!0,get:()=>Wt(f)}),mn&&!_e&&f.value===Xt&&(_e=!0,U(s.location).catch(Z=>{}));let se={};for(let Z in Xt)Object.defineProperty(se,Z,{get:()=>f.value[Z],enumerable:!0});H.provide(ns,Ue),H.provide(os,Yn(se)),H.provide(ss,f);let Y=H.unmount;ze.add(H),H.unmount=function(){ze.delete(H),ze.size<1&&(g=Xt,z&&z(),z=null,f.value=Xt,_e=!1,X=!1),Y()}}};function Ie(H){return H.reduce((se,Y)=>se.then(()=>R(Y)),Promise.resolve())}return Ue}function el(e){return dt(os)}var rs=new WeakMap;function ci(e){if(!rs.has(e)){let t=e.get("/api/billing/").finally(()=>rs.delete(e));rs.set(e,t)}return rs.get(e)}function as(e,t,o=()=>{},i={}){let s=new URLSearchParams(window.location.search).get("billing");e.billing=null,e.billingLoading=!0,e.billingBusy=!1,e.billingError="",e.billingNotice="",e.billingPending=s==="success"||s==="portal",e.billingRepository="";let r={billing_invalid_draft:"This draft could not be saved. Your form is unchanged. Try again.",billing_draft_not_found:"This checkout draft is unavailable or expired. Your local form is unchanged.",billing_recovery_required:"Your earlier payment needs verification. Please contact support before paying again.",billing_checkout_disabled:"New purchases are temporarily unavailable. You can still manage existing billing.",billing_unavailable:"Payments are not available yet. Please try again later.",billing_subscription_exists:"You already have a subscription. Use Manage billing to change or cancel it.",billing_checkout_in_progress:"You have another checkout open. Complete it or wait for it to expire before choosing a different plan.",billing_busy:"Another billing request is processing. Please try again shortly.",billing_already_paid:"This repository or conference already has an active paid package.",billing_invalid_review_window:"Conference packages cover up to 180 days. Check the review dates.",billing_invalid_conference:"Only a conference owner can pay for a conference awaiting payment.",repo_not_found:"Enter the ID of an existing repository that you own."};e.billingPrice=f=>f.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:f.currency}).format(f.amount/100)+(f.interval?` / ${f.intervalCount>1?f.intervalCount+" ":""}${f.interval}`:" once"),e.billingBytes=f=>{let g=Number(f)||0;if(g<1024)return`${g} B`;let y=Math.min(4,Math.floor(Math.log2(g)/10));return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:1}).format(g/1024**y)} ${["B","KiB","MiB","GiB","TiB"][y]}`},e.billingDate=f=>f?new Date(f).toLocaleDateString():"",e.loadBilling=()=>(e.billingError="",e.billingLoading=!0,ci(t).then(f=>{e.billing=f.data,e.emit?.("billing:updated",f.data)}).catch(()=>{e.billingError="Billing could not be loaded. Try again."}).finally(()=>{e.billingLoading=!1}));async function a(f,g,y=!0){if(!(e.billingBusy||!e.billing?.csrf)){e.billingBusy=!0,e.billingError="";try{let b=await t.post(`/api/billing/${f}`,g,{headers:{"x-csrf-token":e.billing.csrf}});if(y)window.location.assign(b.data.url);else return await e.loadBilling(),await o(),e.billingPending=!!b.data.pending,e.emit?.("billing:pending",e.billingPending),e.billingNotice=b.data.pending?"Your payment is still pending. Please do not pay again.":i.confirmedMessage||"Billing status refreshed. Your confirmed access appears below.",b.data}catch(b){e.billingError=r[b.data?.error]||"The billing request failed. Please try again."}finally{e.billingBusy=!1}}}e.checkout=(f,g="",y={})=>a("checkout",{planId:f,target:g,...y}),e.billingPortal=()=>a("portal",{}),e.refreshBilling=()=>a("refresh",{},!1);async function c(){for(let f=0;f<5;f++){let g=await e.refreshBilling();if(!g||!g.pending)return;await new Promise(y=>window.setTimeout(y,3e3))}e.billingNotice="Confirmation is taking longer than usual. You can refresh payment status later. Please do not pay again."}e.loadBilling().then(()=>{s==="success"||s==="portal"?(e.billingNotice="Checking your payment. Paid access starts after confirmation.",c()):s==="cancelled"&&(e.billingNotice="Checkout was closed. No new paid access has been activated.")})}function tl(e,t){return t?.split(".").reduce((o,i)=>o?.[i],e)}function pi(e=null,t=new Map){let o=Fe({}),i=[],s=!1,r=new Proxy(o,{get(a,c){return typeof c=="string"&&c.startsWith("__v_")||Reflect.has(a,c)?Reflect.get(a,c):e?.[c]}});return Object.defineProperty(o,"parent",{value:e,configurable:!0}),Object.defineProperty(o,"viewState",{get:()=>r}),r.watch=(a,c,f=!1,g=!0)=>{let y=typeof a=="function"?()=>a(r):()=>tl(r,a),b=Be(y,c,{deep:f,flush:"post"});return i.push(b),g&&Ke(()=>{s||c(y(),y())}),b},r.watchGroup=(a,c,f=!0)=>r.watch(()=>a.map(g=>tl(r,g)),c,!0,f),r.on=(a,c)=>{if(a==="dispose")return i.push(c),()=>{};t.has(a)||t.set(a,new Set),t.get(a).add(c);let f=()=>t.get(a)?.delete(c);return i.push(f),f},r.emit=(a,...c)=>{for(let f of[...t.get(a)||[]])f({},...c)},r.dispose=()=>{s=!0,i.splice(0).reverse().forEach(a=>a())},Wn(r.dispose),r}function ut(){let e=new Set,t=new Set,o=!1,i=(r,a=0)=>{if(o)return;let c=setTimeout(()=>{e.delete(c),r()},a);return e.add(c),c};i.cancel=r=>{clearTimeout(r),e.delete(r)};let s=(r,a)=>{if(o)return;let c=setInterval(r,a);return t.add(c),c};return s.cancel=r=>{clearInterval(r),t.delete(r)},Wn(()=>{o=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:i,interval:s}}function Zt(){let e=new Set;return Wn(()=>{e.forEach(t=>t()),e.clear()}),(t,o,i,s)=>{t.addEventListener(o,i,s);let r=()=>{t.removeEventListener(o,i,s),e.delete(r)};return e.add(r),r}}function fi(e,t,o){let i,s=!1,r="form-draft:"+o,a=()=>Object.fromEntries(t.map(h=>[h,e[h]])),c=()=>JSON.stringify(a()),f=h=>{for(let E of t)Object.prototype.hasOwnProperty.call(h,E)&&(e[E]=h[E]);e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate))},g=()=>{try{window.sessionStorage.removeItem(r)}catch{}},y=(h=!1)=>{if(i!==void 0){if(h&&document.querySelectorAll("input, select, textarea").forEach(E=>{E._field?.binding.state===e&&E._field.timer&&E._field.commit()}),e.unsavedChanges=c()!==i,e.draftSaved=!1,!e.unsavedChanges){g();return}try{window.sessionStorage.setItem(r,JSON.stringify({account:e.user?.username||null,savedAt:Date.now(),values:a()})),e.draftSaved=!0}catch{}}},b=()=>y(!0);return e.on("routeLeave",b),window.addEventListener("beforeunload",b),e.on("dispose",()=>window.removeEventListener("beforeunload",b)),{restore(){i=c();let h;try{h=JSON.parse(window.sessionStorage.getItem(r)||"null")}catch{}let E=h&&h.account===(e.user?.username||null)&&Date.now()-h.savedAt<30*6e4&&h.values;return E&&(f(h.values),e.draftRestored=!0),s||(s=!0,e.watch(()=>a(),()=>y(),!0)),e.unsavedChanges=c()!==i,!!E},checkpoint(){return document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state===e&&h._field.timer&&h._field.commit()}),JSON.parse(c())},accept(h){i=JSON.stringify(h),e.draftRestored=!1,y()},discard(){document.querySelectorAll("input, select, textarea").forEach(h=>{h._field?.binding.state!==e||!h._field.timer||(clearTimeout(h._field.timer),h._field.timer=null,h.value=h._field.binding.value??"")}),i!==void 0&&f(JSON.parse(i)),e.draftRestored=!1,y()},clear(){i=c(),e.unsavedChanges=!1,e.draftRestored=!1,e.draftSaved=!1,g()}}}var go={VIEWER_ERRORS:{title:"Content could not be loaded",access_title:"GitHub access needs attention",reader_help:"Reading this repository? You do not need to sign in. Try again after the owner restores access, or let them know this anonymous link is unavailable.",owner_help:"Own this repository? If your GitHub account was suspended or recently recovered, sign in to Anonymous GitHub again and check the GitHub connection and repository permissions in your dashboard. Then retry this page. Keep the existing anonymous URL; do not delete the repository to restore access.",retry:"Try again",dashboard:"Open owner dashboard"},ERRORS:{cache_busy:"Downloads are busy. Please try again shortly.",invalid_sort:"The selected sort order is invalid.",invalid_cursor:"This project page is no longer valid. Reload the list.",repository_changed:"The repository changed while processing. Please retry.",repository_job_cancelled:"The repository changed or was removed while processing.",storage_delete_failed:"Unable to remove cached files. Please try again later.",unknown_error:"We could not load this content. Try again. If it still fails, contact support with the anonymous URL and the time of the error.",unreachable:"The service could not complete this request. Wait a moment and try again.",request_error:"The connection was interrupted. Check your internet connection and try again.",not_found:"The requested resource could not be found.",not_connected:"You must be logged in to perform this action.",not_authorized:"You do not have permission to perform this action.",unable_to_connect_user:"Unable to connect your account. Please try again later.",user_not_found:"The requested user could not be found.",user_banned:"Your account has been banned. Contact the admin for more information.",repo_access_limited:"GitHub blocked access because the repository's organization restricts third-party OAuth apps. Ask an org owner to approve Anonymous GitHub under Settings \u2192 Third-party Access \u2192 OAuth app policy, or anonymize a personal fork instead.",repo_saml_enforcement:"The repository's organization enforces SAML single sign-on. Authorize your token for that organization (GitHub \u2192 Settings \u2192 Applications, or re-run the org's SSO sign-in), then retry. Alternatively, anonymize a personal fork.",repo_not_found:"Anonymous GitHub cannot access the source repository on GitHub. It may be private, unavailable, or require the owner to reconnect GitHub.",repo_empty:"The selected branch has no commits on GitHub. Push at least one commit, or pick a different branch, then retry.",repo_not_accessible:"Anonymous GitHub cannot access this repository. Verify the repository exists and that Anonymous GitHub has been authorized for the owning organization.",repository_archived:"This repository has been archived and its files are no longer available.",repository_expired:"The repository is expired.",invalid_status:"This action cannot be performed while the resource is in its current state.",repository_not_ready:"Anonymous GitHub is still processing the repository, it can take several minutes.",repository_not_accessible:"This repository is currently not accessible.",repo_is_updating:"Anonymous GitHub is still processing the repository, it can take several minutes.",invalid_repo:"The provided repository is not valid.",invalid_source_repository:"The repository source name is invalid; expected the form 'owner/name'.",repoId_not_defined:"A repository ID must be provided.",repoUrl_not_defined:"The repository URL needs to be defined.",source_not_provided:"A repository source must be provided.",github_rate_limit_exceeded:"GitHub temporarily blocked the request because we hit its API rate limit. Wait a few minutes and try again. If the problem persists and you contact GitHub Support, include the request ID and timestamp shown in GitHub's response (the 'X-GitHub-Request-Id' header).",rate_limited:"GitHub API rate limit reached. The repository will be available shortly \u2014 please wait a moment and refresh.",repoId_already_used:"The repository ID is already used.",invalid_repoId:"The format of the repository ID is invalid.",unsupported_source:"The repository source type is not supported.",branch_not_specified:"The branch is not specified.",branch_not_found:"The branch of the repository cannot be found.",commit_not_specified:"A commit must be specified.",commit_not_found:"The configured commit no longer exists in the source repository. It may have been force-pushed, rebased, or removed.",repo_renamed:"The source repository appears to have been renamed or moved on GitHub. Please refresh and try again \u2014 the cached name has been updated.",invalid_commit_format:"The commit hash format is invalid. It must be a hexadecimal string.",pull_request_not_found:"The requested pull request could not be found.",pull_request_expired:"This pull request has expired and is no longer available.",pull_request_not_ready:"This pull request is still being prepared. Please try again shortly.",pull_request_not_available:"This pull request is currently not available.",invalid_pullRequestId:"The pull request ID is invalid.",pullRequestId_already_used:"This pull request ID is already in use. Please choose a different one.",repository_not_specified:"A repository must be specified for this pull request.",pullRequestId_not_specified:"A pull request ID must be specified.",pullRequestId_is_not_a_number:"The source pull request ID must be a number.",options_not_provided:"Anonymization options are mandatory.",terms_not_specified:"Anonymization terms must be specified.",invalid_terms_format:"Terms are in an invalid format.",missing_content:"No content was provided to the anonymization preview.",unable_to_anonymize:"An error happened during the anonymization process. Please try later or report the issue.",non_supported_mode:"The selected anonymization mode is invalid, only download and stream are supported.",invalid_path:"The provided path is invalid or missing.",path_not_specified:"A file path must be specified.",path_not_defined:"The file path has not been resolved yet.",invalid_file_path:"The requested file path is not valid.",invalid_request:"The request is missing required fields or is malformed.",invalid_project_name:"Use a project name of up to 100 characters without line breaks or control characters.",no_file_selected:"Please select a file.",submodule_not_available:"This public submodule file is no longer available at its recorded commit.",file_not_found:"The requested file is not found.",file_not_accessible:"The requested file is not accessible.",file_not_supported:"The file type is not supported. Anonymous GitHub cannot handle it.",repository_tree_too_large:"The repository has too many pending folders to process safely. Share a smaller repository.",file_listing_too_large:"This folder has too many entries to list. Open a more specific folder or use file search.",file_too_big:"The file size exceeds the limit of Anonymous GitHub.",is_folder:"The path points to a folder.",folder_not_supported:"The path points to a folder. Please select a file.",unable_to_write_file:"Unable to write file on disk.",download_not_enabled:"Repository downloads are not enabled on this server.",unable_to_download:"The repository could not be downloaded. Please try again later.",s3_config_not_provided:"Object storage has not been configured on this server.",stats_unsupported:"Statistics are only supported in download mode.",branches_not_found:"The requested branch is not found.",readme_not_available:"No README for the repository is found.",page_not_supported_on_different_branch:"GitHub Pages is served from a different branch than the one selected. Pick the branch that GitHub Pages is configured to use.",page_not_activated:"GitHub Pages is not enabled on this repository. Enable it in the repository settings on GitHub before anonymizing.",is_removed:"This resource has been removed and is no longer available.",conf_name_missing:"A conference name is required.",conf_id_missing:"A conference ID is required.",conf_id_used:"This conference ID is already in use. Please choose a different one.",conf_start_date_missing:"A start date is required for the conference.",conf_end_date_missing:"An end date is required for the conference.",conf_start_date_invalid:"The start date must be before the end date.",conf_end_date_invalid:"The end date must be in the future.",invalid_plan:"The selected plan is not valid.",conference_not_found:"The requested conference could not be found.",conf_not_found:"The requested conference could not be found.",conf_not_activated:"The conference is not activated.",billing_missing:"Billing information is required for this plan.",billing_name_missing:"A billing name is required.",billing_email_missing:"A billing email is required.",billing_address_missing:"A billing address is required.",billing_city_missing:"A billing city is required.",billing_zip_missing:"A billing ZIP/postal code is required.",billing_country_missing:"A billing country is required.",queue_not_found:"The specified queue could not be found.",job_not_found:"The specified job could not be found in the queue.",error_retrying_job:"An error occurred while retrying the job.",gist_expired:"The gist is expired.",gist_not_ready:"Anonymous GitHub is still processing the gist, it can take several minutes.",gist_not_found:"The requested gist could not be found.",gist_not_available:"This gist is currently not available.",invalid_gistId:"The format of the gist ID is invalid.",gistId_not_specified:"A gist ID must be provided.",gistId_already_used:"The gist ID is already used.",missing_token:"An authentication token is required.",token_attempts_rate_limited:"Too many token authentication attempts. Wait before trying again.",refresh_rate_limited:"A refresh was already requested for this repository. Wait one minute before trying again.",session_required:"Sign in through your browser to manage maintenance tokens.",invalid_token_options:"Provide a token name, 1 to 20 repository IDs, and an expiration of 1 to 90 days.",token_limit_reached:"You have reached the limit of 50 API tokens. Revoke an unused token before creating another.",invalid_token_id:"The token ID is invalid.",invalid_settings:"Provide supported settings with boolean values, or a list of anonymization terms.",token_scope_forbidden:"This token does not allow this operation or repository.",authentication_unavailable:"Authentication is temporarily unavailable. Try again later.",invalid_token:"The provided authentication token is invalid.",login_failed:"Login failed. Please try again.",server_error:"An unexpected server error occurred. Please try again later.",username_not_defined:"A username must be provided.",github_user_not_found:"The specified GitHub user could not be found.",cannot_coauthor_self:"You cannot add yourself as a co-author.",storage_write_size_mismatch:"The downloaded file was smaller than expected. The upstream source may have returned an incomplete response \u2014 please try again.",storage_read_error:"An error occurred while reading the file from storage \u2014 please try again.",upstream_error:"A temporary error occurred while fetching from GitHub \u2014 please try again.",token_expired:"The repository owner needs to renew their GitHub connection before this content can be loaded.",job_is_active:"This job is currently running \u2014 wait for it to finish or remove it first.",github_app_access_required:"Allow this repository on GitHub using the read-only access button, then retry. Organization access may require administrator approval.",github_app_reconnect_required:"Reconnect your GitHub App account to restore read-only access.",github_app_disabled:"New GitHub App connections are currently unavailable.",github_oauth_required:"Connect legacy GitHub OAuth to use this feature.",github_identity_mismatch:"Use the same GitHub account that you are signed in with here.",github_app_permissions_invalid:"The GitHub App must be configured with read-only permissions.",github_unavailable:"GitHub is temporarily unavailable. Please retry.",connection_changed:"The repository connection changed. Reload and try again.",repository_busy:"Wait for the repository operation to finish before changing its connection.",invalid_connection:"Select a supported GitHub connection.",github_oauth_disabled:"Legacy OAuth sign-in is currently disabled.",invalid_auth_state:"The authorization session expired. Please start again from Anonymous GitHub.",invalid_webhook_signature:"The webhook signature is invalid.",webhook_processing_failed:"Webhook processing failed. Retry the delivery.",github_app_authorization_cancelled:"GitHub authorization was cancelled.",github_account_link_required:"Verify your existing account with your previous GitHub connection. Future sign-ins will use the GitHub App.",github_app_refresh_busy:"GitHub credentials are being renewed. Please retry shortly.",github_grant_revocation_failed:"Unable to revoke the GitHub grant. Please retry.",another_login_required:"Connect and verify another sign-in method before disconnecting OAuth.",oauth_resources_remaining:"Some resources still require OAuth. Migrate or remove them before disconnecting.",invalid_github_path:"The GitHub repository path is invalid.",repository_tree_incomplete:"The repository file tree is incomplete. Reduce its size and refresh before downloading.",billing_environment_mismatch:"The payment event does not match this billing environment.",billing_unavailable:"Payments are not available. Please try again later.",invalid_billing_signature:"The payment notification could not be verified.",billing_webhook_failed:"The payment notification could not be processed.",billing_customer_not_found:"No billing account was found.",subscription_required_for_never_expiration:"Never-expiring repositories require the owner\u2019s active monthly or annual author subscription. Choose a dated expiration or upgrade in Plans and billing.",invalid_billing_expiration:"Choose an expiration date within the next year, or select Never expire with an author subscription.",pending_payment:"Awaiting payment"},WARNINGS:{page_not_enabled_on_repo:"GitHub Pages is not enabled on this repository. Enable it in the repository's Settings \u2192 Pages on GitHub, then refresh.",page_branch_mismatch:"GitHub Pages on this repository is served from the '{{pageBranch}}' branch, but you selected '{{selectedBranch}}'. Switch the branch above to '{{pageBranch}}' to anonymize the Pages site.",folder_truncated:"This folder has more than 10,000 entries; only a partial listing is shown.",repo_truncated:"Some folders in this repository have too many files to be fully listed. Affected folders are marked with a warning icon.",submodules_not_included:"Some submodule contents could not be included. Only direct public GitHub submodules within the size limits are supported. Private, external, nested, or unavailable submodules appear as empty folders."}};function hi(e){let t=e?.data;if(typeof t=="string")try{t=JSON.parse(t)}catch{t=null}return typeof t?.error=="string"&&Object.prototype.hasOwnProperty.call(go.ERRORS,t.error)?t.error:e?.status===-1||e?.status===0?"request_error":[502,503,504].includes(e?.status)?"unreachable":"unknown_error"}var ls="XXXX",Dp=e=>{ls=e||"XXXX"},nl=(e=ls)=>{if(!e)return null;let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t+"(?:-\\d+)?","g")},ol=(e,t=ls)=>{let o=nl(t);if(!o||!e||!e.textContent.includes(t))return;let i=e.ownerDocument,s=i.createTreeWalker(e,NodeFilter.SHOW_TEXT),r=[];for(;s.nextNode();)r.push(s.currentNode);for(let a of r){let c=a.nodeValue,f=a.parentElement;if(!c.includes(t)||!f||f.closest("script, style, mark.redaction, .mermaid"))continue;let g=f.closest('code[class*="language-"]');if(g&&!g.contains(e))continue;let y=i.createDocumentFragment(),b=0;for(let h of c.matchAll(o)){y.append(c.slice(b,h.index));let E=i.createElement("mark");E.className="redaction",E.title="Redacted by Anonymous GitHub",E.textContent=h[0],y.append(E),b=h.index+h[0].length}y.append(c.slice(b)),a.replaceWith(y)}},sl=(e,t=ls)=>{if(!e||!t||!e.includes(t))return e;let o=new DOMParser().parseFromString(""+e+"","text/html");return ol(o.body,t),o.body.innerHTML};async function il(e){if(window.navigator.clipboard?.writeText){await window.navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0";let o=document.activeElement;document.body.appendChild(t);try{if(t.select(),!document.execCommand?.("copy"))throw Error("Copy unavailable")}finally{t.remove(),o?.focus()}}function Tp(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;let t=[...e.currentTarget.closest('[role="tablist"]').querySelectorAll('[role="tab"]')],o=t.indexOf(e.currentTarget),i=e.key==="Home"?0:e.key==="End"?t.length-1:(o+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;e.preventDefault(),t[i]?.focus(),t[i]?.click()}var rl=function(e,t,o,i){e.previewTabKeydown=Tp,e.headerCanUpgrade=!1,e.headerBillingPending=["success","portal"].includes(new URLSearchParams(window.location.search).get("billing"));let s=b=>{let h=(b?.grants||[]).some(E=>["author_monthly","author_annual"].includes(E.planId)&&["active","paid","past_due"].includes(E.status)&&new Date(E.until).getTime()>Date.now());e.headerCanUpgrade=!!b?.enabled&&b.checkoutEnabled!==!1&&!h&&(b.plans||[]).some(E=>["author_monthly","author_annual"].includes(E.id))};e.on("billing:updated",(b,h)=>s(h)),e.on("billing:pending",(b,h)=>{e.headerBillingPending=h}),e.openHeaderUpgrade=()=>{o.path()==="/profile"?e.emit("settings:upgrade"):o.url("/profile?upgrade=1")},e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(b){let h=e.toasts.indexOf(b);h!==-1&&e.toasts.splice(h,1)},e.addToast=function(b){return e.toasts.push(b),i(function(){e.removeToast(b)},8e3),b};let r=/^\/(r|repository|pr|gist)\//;e.path=o.url(),e.paths=o.path().substring(1).split("/"),e.isReviewerRoute=r.test(o.path()),e.darkMode=function(b){localStorage.setItem("darkMode",b),e.isDarkMode=b;let h="/css/prism-okaidia.css",E="/css/prism.css";if(b){$("body").addClass("dark-mode");let S=document.createElement("link");S.href=h,S.rel="stylesheet",document.head.append(S),$(`link[href='${E}']`).remove()}else{$("body").removeClass("dark-mode");let S=document.createElement("link");S.href=E,S.rel="stylesheet",document.head.append(S),$(`link[href='${h}']`).remove()}e.emit("dark-mode",b)},e.darkMode(localStorage.getItem("darkMode")=="true"),e.emailPromptOpen=!1,e.emailPromptAddress="",e.emailPromptBusy=!1,e.emailPromptError="";let a;e.respondToEmailPrompt=async b=>{if(!e.emailPromptBusy){e.emailPromptBusy=!0,e.emailPromptError="";try{let h=await t.post("/github/connections/email",{action:b,email:e.emailPromptAddress},{headers:{"X-CSRF-Token":e.user.emailPromptCSRF}});b==="save"&&(e.user.notificationEmail=h.data.notificationEmail),e.emailPromptOpen=!1,e.user.showEmailPrompt=!1,a?.focus()}catch(h){e.emailPromptError=h.data?.error||"Unable to save your preference. Please try again."}finally{e.emailPromptBusy=!1}}};function c(){t.get("/api/user").then(b=>{b&&(e.user=b.data),e.user?.username&&ci(t).then(h=>s(h.data)).catch(()=>{}),e.user?.emailNotificationsEnabled&&e.user.showEmailPrompt&&!e.user.notificationEmail&&(a=document.activeElement,e.emailPromptOpen=!0,i(()=>{let h=document.getElementById("email-prompt");h?.showModal?h.showModal():h?.setAttribute("open",""),document.getElementById("email-prompt-address")?.focus()},0))},()=>{e.user=null})}c();function f(){t.get("/api/options").then(b=>{b&&(e.site_options=b.data),Dp(b?.data?.ANONYMIZATION_MASK),e.emit("site-options")},()=>{e.site_options=null})}f();function g(){t.get("/api/message").then(b=>{b&&(e.generalMessage=b.data)},()=>{e.generalMessage=null})}g();function y(b,h){h&&(e.title=h.title),e.path=o.url(),e.paths=o.path().substring(1).split("/"),e.isReviewerRoute=r.test(o.path())}e.on("routeChange",y),e.on("routeUpdate",y)},al=function(e,t){let o=Zt(),i=ut(),s=()=>{let r=window.location.hash.slice(1),a=document.getElementById(r);if(!a?.classList.contains("panel-collapse"))return;$(a).collapse("show");let c=document.getElementById(a.getAttribute("aria-labelledby"));c?.setAttribute("tabindex","-1"),c?.focus({preventScroll:!0}),c?.scrollIntoView?.({block:"start"})};e.on("routeUpdate",()=>i.timeout(s,0)),o(window,"hashchange",s),i.timeout(s,0)},ll=function(e,t,o,i,s){e.settingsTab=/(?:billing|upgrade)=/.test(window.location.search)?"billing":"defaults",e.confirmDeleteAccount=!1,e.deleteUsername="",e.profilePastSubscription=()=>!e.profileAuthorGrant()&&(e.billing?.grants||[]).some(g=>["author_monthly","author_annual"].includes(g.planId)),e.showAuthorPlans=new URLSearchParams(window.location.search).get("upgrade")==="1",e.showRepositoryPass=!1,e.profilePlan="author_monthly",e.openProfileUpgrade=()=>{e.settingsTab="billing",e.showAuthorPlans=!0,Ke(()=>document.getElementById("settings-plan-comparison")?.focus())},e.on("settings:upgrade",()=>e.openProfileUpgrade()),e.profileAuthorPlans=()=>(e.billing?.plans||[]).filter(g=>["author_monthly","author_annual"].includes(g.id)),e.profileSelectedPlan=()=>e.profileAuthorPlans().find(g=>g.id===e.profilePlan)||e.profileAuthorPlans()[0],e.profilePassPlan=()=>(e.billing?.plans||[]).find(g=>g.id==="author_pass"),e.profileAuthorGrant=()=>(e.billing?.grants||[]).find(g=>["author_monthly","author_annual"].includes(g.planId)&&["active","paid","past_due"].includes(g.status)&&new Date(g.until).getTime()>Date.now()),e.profileGrantName=g=>({author_monthly:"Author monthly",author_annual:"Author annual",author_pass:"Repository pass",conference:"Conference hosting"})[g.planId]||g.planId,as(e,t,()=>s.load().then(g=>{e.quota=g},console.error)),e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,e.accountEmail="",e.emailLoading=!0,e.emailCSRFReady=!1,e.emailSaving=!1,e.emailSaved=!1,e.emailError="";let r="";e.loadAccountEmail=async()=>{e.emailLoading=!0,e.emailError="";try{let g=await t.get("/github/connections/email");e.accountEmail=g.data.notificationEmail||"",r=g.data.csrf,e.emailCSRFReady=!!r}catch{e.emailError="Unable to load your email address. Please try again."}finally{e.emailLoading=!1}},e.saveAccountEmail=async()=>{if(!(e.emailSaving||e.emailLoading||!r)){e.emailSaving=!0,e.emailSaved=!1,e.emailError="";try{let g=await t.post("/github/connections/email",{email:e.accountEmail},{headers:{"X-CSRF-Token":r}});e.accountEmail=g.data.notificationEmail,e.user&&(e.user.notificationEmail=g.data.notificationEmail),e.emailSaved=!0}catch{e.emailError="Unable to save your email address. Check the address and try again."}finally{e.emailSaving=!1}}},e.loadAccountEmail(),s.load().then(g=>{e.quota=g},console.error);let a=fi(e,["terms","options"],"profile");e.discardDraft=()=>a.discard();function c(){t.get("/api/user/default").then(g=>{let y=g.data||{};y.terms&&(e.terms=y.terms.join(` `)),e.options=Object.assign({},e.options,y.options),a.restore()})}c();let f=null;e.saveDefault=g=>{if(g&&g.preventDefault&&g.preventDefault(),e.saving)return;let y=a.checkpoint(),b={terms:e.terms.split(` -`).map(h=>h.trim()).filter(h=>h.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",b).then(()=>{a.accept(y),e.saving=!1,e.message=e.unsavedChanges?null:"Saved",f&&i.cancel(f),f=i(()=>{e.message=null},2500)},h=>{e.saving=!1;let E=h&&h.data&&h.data.error,_="Unable to save your defaults. Please try again.";Promise.all([o("ERRORS."+E),o("ERRORS.unknown_error")]).then(([m,C])=>{e.error=E&&m!==C?m:_},()=>{e.error=_})})},e.deleteAccount=()=>{e.deletingAccount||!e.confirmDeleteAccount||e.deleteUsername!==e.user?.username||(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},dl=function(e,t,o){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(i=>{o.url("/dashboard")},i=>{e.error=i.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},ul=function(e,t,o,i,s){e.user&&!e.user.status&&o.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&o.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(c){e.feature=c},e.featureHref=function(c){return c.needsUser&&!e.user?"/signin":c.href},e.featureTarget=function(c){return c.needsUser&&!e.user?"_self":c.target||void 0},e.featureKeydown=function(c,f){let g={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[c.key];if(g===void 0)return;c.preventDefault();let y=e.features.length,b=g==="first"?0:g==="last"?y-1:(f+g+y)%y;e.feature=e.features[b].key,s(()=>{let h=i.document.getElementById("feature-tab-"+e.feature);h&&h.focus()})},e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}];function r(){t.get("/api/stat/").then(c=>{e.stat=c.data,e.cards[0].total=c.data.nbRepositories,e.cards[1].total=c.data.nbUsers,e.cards[2].total=c.data.nbPageViews,e.cards[3].total=c.data.nbPullRequests})}r();function a(c){let f={series:c,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!c||c.length<2)return f;let g=new Array(c.length-1);for(let m=1;m=2){let m=g[y-2];m&&(f.pctChange=(f.deltaToday-m)/m*100)}return f.pctAbs=Math.round(Math.abs(f.pctChange)),f.isUp=f.pctChange>=0,f}e.history={repositories:a([]),users:a([]),pageViews:a([]),pullRequests:a([])},t.get("/api/stat/history?days=60").then(c=>{let f=c.data||[];e.history={repositories:a(f.map(g=>g.nbRepositories||0)),users:a(f.map(g=>g.nbUsers||0)),pageViews:a(f.map(g=>g.nbPageViews||0)),pullRequests:a(f.map(g=>g.nbPullRequests||0))}})},cl=function(e,t,o,i,s,r){let a=ut();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),a.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.quotaExpanded=!1,e.closeQuota=()=>{e.quotaExpanded=!1,Ke(()=>document.querySelector(".dashboard-quota > summary")?.focus())},Zt()(document,"click",R=>{e.quotaExpanded&&!R.target.closest?.(".dashboard-quota")&&(e.quotaExpanded=!1)}),e.filtersExpanded=!1,e.projectView="all",e.selectedProject=null,e.projectName="",e.nameSaving=!1,e.nameError="",e.nameMessage="",e.needsAttention=R=>R.status==="error"||R._broken||f(R.status)==="progress"&&R._stale,e.attentionCount=()=>e.dashboardTotals?.attention??e.items.filter(e.needsAttention).length,e.hasProjects=()=>(e.dashboardTotals?.total??e.items.length)>0,e.setProjectView=R=>{e.projectView=R,R==="attention"&&(e.filters.status.error=!0,e.filters.status.progress=!0)},e.projectDetailsId=R=>"project-details-"+encodeURIComponent(R._type+":"+(R._id||R._source||"unknown")),e.showProjectDetails=async R=>{e.selectedProject=R,e.projectName=R.projectName||"",e.nameError="",e.nameMessage="",await Ke();let j=document.getElementById(e.projectDetailsId(R));j?.focus(),j?.scrollIntoView?.({block:"nearest"})},e.closeProjectDetails=R=>{e.selectedProject=null,Ke(()=>document.querySelector(`[data-project-actions="${encodeURIComponent(R._type+":"+R._id)}"]`)?.focus())},e.saveProjectName=async R=>{if(e.nameSaving||!R._id)return;let j=e.projectName.trim();if(j.length>100){e.nameError="Use 100 characters or fewer.";return}e.nameSaving=!0,e.nameError="",e.nameMessage="";try{let ie=await t.post("/api/user/project-name",{type:R._type,id:R._id,name:j});R.projectName=ie.data.name,R._label=R.projectName||R._fallbackLabel,e.selectedProject===R&&(e.nameMessage=j?"Project name saved.":"Default project name restored."),A||(e.dashboardCursor=null,await U(),e.selectedProject===R&&(e.selectedProject=e.items.find(ve=>ve._type===R._type&&ve._id===R._id)||null))}catch{e.selectedProject===R&&(e.nameError="The project name could not be saved. Try again.")}finally{e.nameSaving=!1}},e.copyingId=null,e.copyLink=async R=>{if(!R._viewUrl||e.copyingId)return;let j=new URL(R._viewUrl,s.location.origin).href;e.copyingId=R._type+":"+R._id;try{await il(j),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:j})}finally{e.copyingId=null}},e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"In progress",error:"Error",expired:"Expired",removed:"Removed"};let c=["queue","download","downloaded","preparing","anonymizing"];function f(R){return R==="ready"||R==="error"?R:R==="expired"||R==="expiring"?"expired":R==="removed"||R==="removing"?"removed":(c.indexOf(R)>-1,"progress")}let g=7200*1e3,y="dashboard.filterPrefs",b={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},h=loadFilterPrefs(y)||{};e.typeFilter=h.typeFilter||b.typeFilter,e.filters={status:Object.assign({},b.filters.status,h.filters&&h.filters.status||{})},e.orderBy=h.orderBy||b.orderBy;let E={_name:{label:"Anonymous ID",defaultDesc:!1},_label:{label:"Project",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=E,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let R=E[e.sortField()];return R?R.label:"Custom"},e.isSortedBy=R=>e.sortField()===R,e.setSort=(R,j)=>{typeof j!="boolean"&&(j=e.isSortedBy(R)?!e.sortDesc():!!(E[R]&&E[R].defaultDesc)),e.orderBy=(j?"-":"")+R},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(y,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(y,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),r.load().then(R=>{e.quota=R},console.error);function _(R,j,ie,ve,z,J){R.pageView||(R.pageView=0),R.lastView||(R.lastView=""),R.options=R.options||{},R.options.terms=(R.options.terms||[]).filter(te=>te),R._id=j||"",R._source=ve,R._broken=!j,R._name=j||ve||"(unnamed)",R._fallbackLabel=R._type==="gist"?"Gist "+(j||ve||"without an ID"):ve||ie||R._name,R._label=R.projectName||R._fallbackLabel,R._editUrl=j?z:null,R._viewUrl=j?J:null,R._broken&&(R.status="error",R.statusMessage="incomplete_record"),R._statusKey=f(R.status);let Q=R.anonymizeDate||R.lastView;return R._stale=R._statusKey==="progress"&&!!Q&&Date.now()-new Date(Q).getTime()>g,R.status==="expired"||R.status==="expiring"?R._expiry={kind:"expired",date:R.options.expirationDate}:R.status!=="ready"?R._expiry={kind:"none"}:R.options.expirationMode==="never"||!R.options.expirationDate?R._expiry={kind:"never"}:R._expiry={kind:"date",date:R.options.expirationDate},R}function m(R){return t.get(R).then(j=>j.data||[],j=>(console.error(j),[]))}function C(){return e.loading=!0,i.all([m("/api/user/anonymized_repositories"),m("/api/user/anonymized_pull_requests"),m("/api/user/anonymized_gists")]).then(R=>{let j=R[0],ie=R[1],ve=R[2],z=[];j.forEach(J=>{J._type="repo";let Q=J.source||{};z.push(_(J,J.repoId,J.repoId,Q.fullName,"/anonymize/"+J.repoId,"/r/"+J.repoId+"/"))}),ie.forEach(J=>{J._type="pr";let Q=J.source||{};z.push(_(J,J.pullRequestId,J.pullRequestId,Q.repositoryFullName?Q.repositoryFullName+"#"+Q.pullRequestId:void 0,"/pull-request-anonymize/"+J.pullRequestId,"/pr/"+J.pullRequestId+"/"))}),ve.forEach(J=>{J._type="gist";let Q=J.source||{};z.push(_(J,J.gistId,J.gistId,Q.gistId,"/gist-anonymize/"+J.gistId,"/gist/"+J.gistId+"/"))}),e.items=z,e.loading=!1})}let N=0,A=!1;e.dashboardCursor=null,e.dashboardError="";function M(R){let j=R.source||{};return R._type==="repo"?_(R,R.repoId,R.repoId,j.fullName,"/anonymize/"+R.repoId,"/r/"+R.repoId+"/"):R._type==="pr"?_(R,R.pullRequestId,R.pullRequestId,j.repositoryFullName?j.repositoryFullName+"#"+j.pullRequestId:void 0,"/pull-request-anonymize/"+R.pullRequestId,"/pr/"+R.pullRequestId+"/"):_(R,R.gistId,R.gistId,j.gistId,"/gist-anonymize/"+R.gistId,"/gist/"+R.gistId+"/")}function U(R=!1){if(A)return C();let j=++N;return e.loading=!R,e.loadingMore=R,e.dashboardError="",t.get("/api/user/dashboard",{params:{q:e.search,type:e.typeFilter,sort:e.orderBy,statuses:Object.keys(e.filters.status).filter(ie=>e.filters.status[ie]!==!1).join(",")||"none",attention:String(e.projectView==="attention"),cursor:R?e.dashboardCursor:void 0}}).then(ie=>{if(j===N){if(!Array.isArray(ie.data?.items))return A=!0,C();e.items=(R?e.items:[]).concat(ie.data.items.map(M)),e.dashboardCursor=ie.data.cursor,e.dashboardTotals=ie.data}},ie=>{if(j===N){if(ie.status===404)return A=!0,C();e.dashboardError="Projects could not be loaded. Please try again."}}).finally(()=>{j===N&&(e.loading=!1,e.loadingMore=!1)})}e.loadMoreProjects=()=>U(!0);let q;e.watchGroup(["search","typeFilter","orderBy","projectView"],()=>{A||(q&&a.timeout.cancel(q),q=a.timeout(()=>U(),150))},!1),e.watch("filters",()=>{A||U()},!0,!1),e.on("dispose",()=>{N++}),U(),e.openItem=(R,j)=>{if(!R._viewUrl)return;let ie=j&&j.target;ie&&ie.closest&&ie.closest("a, button, .dropdown, input")||(s.location.href=R._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(R=>e.filters.status[R]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0,e.hasActiveFilters=()=>e.projectView!=="all"||e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(R=>e.filters.status[R]===!1),e.showClearFilters=()=>e.search.trim().length>0||e.typeFilter!=="all"||e.hiddenStatusCount()>1,e.clearFilters=()=>{e.projectView="all",e.typeFilter="all",e.search="",Object.keys(e.filters.status).forEach(R=>{e.filters.status[R]=!0})};function B(R,j,ie,ve){t.get("/api/repo/"+R).then(async z=>{let J=ve!==void 0&&ve!==z.data.status;for(let Q of e.items)if(Q._type==="repo"&&Q.repoId==R){J=J||Q.status!==z.data.status;let te=e.needsAttention(Q);Q.status=z.data.status,Q.statusMessage=z.data.statusMessage,Q._statusKey=f(Q.status),Q._statusKey!=="progress"&&(Q._stale=!1);let X=e.needsAttention(Q);e.dashboardTotals&&te!==X&&(e.dashboardTotals.attention=Math.max(0,e.dashboardTotals.attention+(X?1:-1)));break}if(J&&!A){e.dashboardCursor=null;let Q=e.selectedProject;await U(),Q&&e.selectedProject===Q&&(e.selectedProject=e.items.find(te=>te._type===Q._type&&te._id===Q._id)||null)}if(z.data.status=="ready"||z.data.status=="error"||z.data.status=="removed"||z.data.status=="expired"){j(z.data);return}a.timeout(()=>B(R,j,ie,z.data.status),2500)},ie)}let oe=R=>R==="repo"?"repository":R==="gist"?"gist":"pull request",ee=R=>R==="repo"?"/api/repo":R==="gist"?"/api/gist":"/api/pr";e.removeItem=R=>{let j=oe(R._type);if(confirm(`Are you sure that you want to remove the ${j} ${R._id}?`)){let ie=Fe({title:`Removing ${R._id}...`,date:new Date,body:`The ${j} ${R._id} is going to be removed.`});e.addToast(ie);let ve=`${ee(R._type)}/${R._id}`;t.delete(ve).then(()=>{R._type==="repo"?B(R._id,()=>{ie.title=`${R._id} is removed.`,ie.body=`The ${j} ${R._id} is removed.`},void 0,R.status):(ie.title=`${R._id} is removed.`,ie.body=`The ${j} ${R._id} is removed.`,U())},z=>{ie.title=`Error during the removal of ${R._id}.`,ie.body=z.body,U()})}},e.refreshItem=R=>{let j=oe(R._type),ie=Fe({title:`Refreshing ${R._id}...`,date:new Date,body:`The ${j} ${R._id} is going to be refreshed.`});e.addToast(ie);let ve=J=>{ie.title=`Error during the refresh of ${R._id}.`,ie.body=J.data?.error||J.body||"The refresh could not be completed. Please try again.",U()},z=`${ee(R._type)}/${R._id}/refresh`;t.post(z).then(()=>{R._type==="repo"?B(R._id,J=>{if(J.status!=="ready"){ve({body:J.statusMessage||`The repository is ${J.status}.`});return}ie.title=`${R._id} is refreshed.`,ie.body=`The ${j} ${R._id} is refreshed.`},ve,R.status):(ie.title=`${R._id} is refreshed.`,ie.body=`The ${j} ${R._id} is refreshed.`,U())},ve)},e.extendItem=R=>{let j=oe(R._type),ie=Fe({title:`Extending ${R._id}...`,date:new Date,body:`The expiration of ${j} ${R._id} is going to be extended by 6 months.`});e.addToast(ie);let ve=`${ee(R._type)}/${R._id}/extend`;t.post(ve).then(()=>{R._type==="repo"?B(R._id,()=>{ie.title=`${R._id} is extended.`,ie.body=`The expiration of ${j} ${R._id} is extended by 6 months.`},void 0,R.status):(ie.title=`${R._id} is extended.`,ie.body=`The expiration of ${j} ${R._id} is extended by 6 months.`,U())},z=>{ie.title=`Error during the extension of ${R._id}.`,ie.body=z.data&&z.data.error||z.body,U()})},e.itemFilter=R=>{if(e.projectView==="attention"&&!e.needsAttention(R)||e.typeFilter!=="all"&&R._type!==e.typeFilter||e.filters.status[R._statusKey]===!1)return!1;let j=e.search.trim().toLowerCase();return!!(j.length==0||R._label&&String(R._label).toLowerCase().indexOf(j)>-1||R._source&&String(R._source).toLowerCase().indexOf(j)>-1||R._id&&String(R._id).toLowerCase().indexOf(j)>-1||R.conference&&String(R.conference).toLowerCase().indexOf(j)>-1)}};var pl=function(e,t,o){let i=ut();e.repoId=o.repoId,e.reviewUrl=window.location.origin+"/r/"+encodeURIComponent(o.repoId)+"/",e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="",e.shareUrl=(window.location?.origin||"")+"/r/"+encodeURIComponent(e.repoId)+"/",e.copied=!1;let s=null;e.copyShareUrl=async()=>{try{await il(e.shareUrl),e.copied=!0,s&&i.timeout.cancel(s),s=i.timeout(()=>{e.copied=!1},2e3)}catch{e.addToast?.({title:"Copy this anonymous link",body:e.shareUrl})}};var r=null;let a=null,c=!1;function f(y){e.rateLimitResetAt=y,r&&i.interval.cancel(r);function b(){var h=Math.max(0,Math.ceil((y-Date.now())/1e3));if(h<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,i.interval.cancel(r),r=null;else{var E=Math.floor(h/60),_=h%60;e.rateLimitCountdown=E>0?E+"m "+_+"s":_+"s"}}b(),r=i.interval(b,1e3)}e.on("dispose",function(){c=!0,r&&i.interval.cancel(r),a&&i.timeout.cancel(a)});function g(y){if(!y)return y;var b=y.match(/^rate_limited:(\d+)$/);return b?(f(parseInt(b[1],10)),null):(e.rateLimitResetAt=0,y)}e.getStatus=()=>{c||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(y=>{if(!c){e.repo=y.data,y.data.rateLimitResetAt?f(y.data.rateLimitResetAt):e.repo.statusMessage=g(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var b=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(b=!1),b&&(a=i.timeout(e.getStatus,2e3))}},y=>{e.error=y.data.error})},e.getStatus()},ds=function(e,t,o,i,s,r,a){e.sourceUrl="",e.workspaceOpen=!1,e.sourceUrlError="",e.previewStatus="idle",e.sourceLoading=!1,e.mobilePane="settings";let c=window.matchMedia?.("(max-width: 767px)");e.mobileWorkspace=!!c?.matches,c?.addEventListener&&Zt()(c,"change",w=>{e.mobileWorkspace=w.matches}),e.selectMobilePane=w=>{e.mobilePane=w};let f=0,g=!1,y=new Set,b=(w,T=!1)=>!g&&w.generation===f&&w.url===e.sourceUrl.trim()&&w.connection===e.githubConnection&&(!T||w.branch===e.source.branch),h=()=>{let w={generation:f,url:e.sourceUrl.trim(),connection:e.githubConnection,branch:e.source.branch};return y.add(w),e.sourceLoading=!0,w},E=w=>{y.delete(w),g||(e.sourceLoading=[...y].some(T=>b(T)))};e.on("dispose",()=>{g=!0,f++});let _=null,m=w=>w.gistId&&!w.repo?"gist:"+w.gistId.toLowerCase():(w.owner+"/"+w.repo).toLowerCase()+(w.pullRequestId?"/pull/"+w.pullRequestId:""),C=fi(e,["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"],"anonymize:"+(s.path?.()||"")),N=null,A=null,M=null;e.hostingReview=!1,e.previewExpanded=!1,e.taskValidationError="",e.editRepository=()=>{e.mobilePane="settings",e.previewExpanded=!1,Ke(()=>document.querySelector(".anonymize-fields .is-invalid")?.focus())},e.submitRepository=w=>{if(e.taskValidationError="",!(e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingPending)){if(V()||e.anonymize?.invalid||e.sourceUrlError){e.taskValidationError="Check the highlighted fields before continuing.",e.editRepository();return}return e.hostingNeedsPayment()?e.checkoutRepository():e.anonymizeRepo(w)}},e.hostingPayment=!1,e.hostingAlternatives=!1,e.hostingPrice=w=>w.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:w.currency,minimumFractionDigits:0,maximumFractionDigits:2}).format(w.amount/100)+(w.interval==="year"?" billed annually":" billed monthly"),e.hostingPlan="author_monthly",e.hostingSaving=!1,e.selectedHostingPlan=()=>e.authorPlans().find(w=>w.id===e.hostingPlan)||e.authorPlans()[0];let U=()=>t.get("/api/user/quota").then(w=>{e.hostingQuota=w.data});as(e,t,async()=>{await U(),e.hostingQuotaBlocked=!1},{confirmedMessage:"Hosting status refreshed. Your draft is ready to continue."}),U().catch(()=>{}),e.authorPlans=()=>(e.billing?.plans||[]).filter(w=>["author_monthly","author_annual"].includes(w.id)),e.hasAuthorHosting=()=>["author_monthly","author_annual"].includes(e.billing?.allowance?.plan),e.hostingNeedsPayment=()=>!e.billing?.enabled||e.detectedType!=="repo"||e.hasAuthorHosting()||e.isUpdate&&e.role!=="owner"?!1:!!(e.options?.expirationMode==="never"&&!e._existingNever||!e.conference&&e.hostingQuotaBlocked),e.checkoutRepository=async(w=!1)=>{if(!(e.hostingSaving||e.billingBusy||!e.billing?.csrf||e.sourceLoading)){e.hostingSaving=!0,e.billingError="";try{let T=C.checkpoint(),O=JSON.stringify(T);(!A||O!==M)&&(A=(await t.post("/api/billing/draft",{path:s.path(),values:T},{headers:{"x-csrf-token":e.billing.csrf}})).data.id,M=O);let I=e.authorPlans().find(F=>F.id===e.hostingPlan)||e.authorPlans()[0];if(!w&&!I)throw new Error("No author plan available");await e.checkout(w?"author_pass":I.id,w?e.repoId:"",{draftId:A})}catch{e.billingError="Your draft could not be saved for checkout. Your form is unchanged. Please try again."}finally{e.hostingSaving=!1}}},e.useDatedHosting=()=>{e.options.expirationMode="remove"},e.discardDraft=async()=>{C.discard(),e.workspaceOpen=!!e.sourceUrl,e.error=null,e.sourceUrl?await e.urlSelected(!0):(f++,e.sourceLoading=!1,e.detectedType=null,e.details=null,e.sourceUrlError="",Se.cancel(),H.cancel(),ue.cancel(),e.previewStatus="idle")},e.githubConnection=void 0,e.githubConnections=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1;let q=()=>{let w={};for(let T of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])w[T]=e[T];sessionStorage.setItem("github-access-draft",JSON.stringify({path:s.path(),savedAt:Date.now(),draft:w}))};e.connectGistApp=()=>{q(),window.location.href="/github/app/login?returnTo="+encodeURIComponent(s.path())},e.connectGistOAuth=()=>{q(),window.location.href="/github/login?returnTo="+encodeURIComponent(s.path())},e.grantGitHubAccess=()=>{q();let w=s.path(),T=J(e.sourceUrl)||"",O=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=O+"?returnTo="+encodeURIComponent(w)+"&repository="+encodeURIComponent(T)+"&install=1"},e.chooseGitHubConnection=async w=>{e.githubConnection=w,e.readme="",e.sourceUrl&&await te()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function B(){let w=new Date;return w.setMonth(w.getMonth()+6),w}e.options.expirationDate=B();function oe(w){let T=w.getFullYear(),O=String(w.getMonth()+1).padStart(2,"0"),I=String(w.getDate()).padStart(2,"0");return`${T}-${O}-${I}`}e.minExpirationDate=oe(new Date);let ee=new Date;ee.setFullYear(ee.getFullYear()+1),e.maxExpirationDate=oe(ee),e.anonymize_readme="",e.readme="",e.html_readme="",e.isUpdate=!1,e.previousConfigurations=[],e.previousConfigurationId="";let R,j=w=>String(w||"").replace(/\/$/,"").replace(/\.git$/i,"").toLowerCase();async function ie(){if(e.isUpdate||i.repoId||i.pullRequestId||i.gistId)return;let w={generation:f,url:e.sourceUrl.trim(),connection:e.githubConnection};try{R||(R=t.get("/api/user/anonymized_repositories").then(I=>I.data));let T=await R;if(!b(w))return;let O=j(J(w.url));e.previousConfigurations=T.filter(I=>I.repoId&&I.options&&j(I.source?.fullName)===O).sort((I,F)=>(Date.parse(F.anonymizeDate)||0)-(Date.parse(I.anonymizeDate)||0)),e.previousConfigurationId=e.previousConfigurations[0]?.repoId||""}catch{R=void 0}}e.existingConfigurationUrl=()=>{let w=e.previousConfigurations.find(T=>T.repoId===e.previousConfigurationId);return w?"/anonymize/"+encodeURIComponent(w.repoId):null};function ve(w){t.get("/api/user/default").then(T=>{let O=T.data;O.terms&&(e.defaultTerms=O.terms.join(` +`).map(h=>h.trim()).filter(h=>h.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",b).then(()=>{a.accept(y),e.saving=!1,e.message=e.unsavedChanges?null:"Saved",f&&i.cancel(f),f=i(()=>{e.message=null},2500)},h=>{e.saving=!1;let E=h&&h.data&&h.data.error,S="Unable to save your defaults. Please try again.";Promise.all([o("ERRORS."+E),o("ERRORS.unknown_error")]).then(([m,C])=>{e.error=E&&m!==C?m:S},()=>{e.error=S})})},e.deleteAccount=()=>{e.deletingAccount||!e.confirmDeleteAccount||e.deleteUsername!==e.user?.username||(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},dl=function(e,t,o){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(i=>{o.url("/dashboard")},i=>{e.error=i.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},ul=function(e,t,o,i,s){e.user&&!e.user.status&&o.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&o.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(c){e.feature=c},e.featureHref=function(c){return c.needsUser&&!e.user?"/signin":c.href},e.featureTarget=function(c){return c.needsUser&&!e.user?"_self":c.target||void 0},e.featureKeydown=function(c,f){let g={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[c.key];if(g===void 0)return;c.preventDefault();let y=e.features.length,b=g==="first"?0:g==="last"?y-1:(f+g+y)%y;e.feature=e.features[b].key,s(()=>{let h=i.document.getElementById("feature-tab-"+e.feature);h&&h.focus()})},e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}];function r(){t.get("/api/stat/").then(c=>{e.stat=c.data,e.cards[0].total=c.data.nbRepositories,e.cards[1].total=c.data.nbUsers,e.cards[2].total=c.data.nbPageViews,e.cards[3].total=c.data.nbPullRequests})}r();function a(c){let f={series:c,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!c||c.length<2)return f;let g=new Array(c.length-1);for(let m=1;m=2){let m=g[y-2];m&&(f.pctChange=(f.deltaToday-m)/m*100)}return f.pctAbs=Math.round(Math.abs(f.pctChange)),f.isUp=f.pctChange>=0,f}e.history={repositories:a([]),users:a([]),pageViews:a([]),pullRequests:a([])},t.get("/api/stat/history?days=60").then(c=>{let f=c.data||[];e.history={repositories:a(f.map(g=>g.nbRepositories||0)),users:a(f.map(g=>g.nbUsers||0)),pageViews:a(f.map(g=>g.nbPageViews||0)),pullRequests:a(f.map(g=>g.nbPullRequests||0))}})},cl=function(e,t,o,i,s,r){let a=ut();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),a.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.quotaExpanded=!1,e.closeQuota=()=>{e.quotaExpanded=!1,Ke(()=>document.querySelector(".dashboard-quota > summary")?.focus())},Zt()(document,"click",R=>{e.quotaExpanded&&!R.target.closest?.(".dashboard-quota")&&(e.quotaExpanded=!1)}),e.filtersExpanded=!1,e.projectView="all",e.selectedProject=null,e.projectName="",e.nameSaving=!1,e.nameError="",e.nameMessage="",e.needsAttention=R=>R.status==="error"||R._broken||f(R.status)==="progress"&&R._stale,e.attentionCount=()=>e.dashboardTotals?.attention??e.items.filter(e.needsAttention).length,e.hasProjects=()=>(e.dashboardTotals?.total??e.items.length)>0,e.setProjectView=R=>{e.projectView=R,R==="attention"&&(e.filters.status.error=!0,e.filters.status.progress=!0)},e.projectDetailsId=R=>"project-details-"+encodeURIComponent(R._type+":"+(R._id||R._source||"unknown")),e.showProjectDetails=async R=>{e.selectedProject=R,e.projectName=R.projectName||"",e.nameError="",e.nameMessage="",await Ke();let j=document.getElementById(e.projectDetailsId(R));j?.focus(),j?.scrollIntoView?.({block:"nearest"})},e.closeProjectDetails=R=>{e.selectedProject=null,Ke(()=>document.querySelector(`[data-project-actions="${encodeURIComponent(R._type+":"+R._id)}"]`)?.focus())},e.saveProjectName=async R=>{if(e.nameSaving||!R._id)return;let j=e.projectName.trim();if(j.length>100){e.nameError="Use 100 characters or fewer.";return}e.nameSaving=!0,e.nameError="",e.nameMessage="";try{let ie=await t.post("/api/user/project-name",{type:R._type,id:R._id,name:j});R.projectName=ie.data.name,R._label=R.projectName||R._fallbackLabel,e.selectedProject===R&&(e.nameMessage=j?"Project name saved.":"Default project name restored."),A||(e.dashboardCursor=null,await U(),e.selectedProject===R&&(e.selectedProject=e.items.find(ve=>ve._type===R._type&&ve._id===R._id)||null))}catch{e.selectedProject===R&&(e.nameError="The project name could not be saved. Try again.")}finally{e.nameSaving=!1}},e.copyingId=null,e.copyLink=async R=>{if(!R._viewUrl||e.copyingId)return;let j=new URL(R._viewUrl,s.location.origin).href;e.copyingId=R._type+":"+R._id;try{await il(j),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:j})}finally{e.copyingId=null}},e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"In progress",error:"Error",expired:"Expired",removed:"Removed"};let c=["queue","download","downloaded","preparing","anonymizing"];function f(R){return R==="ready"||R==="error"?R:R==="expired"||R==="expiring"?"expired":R==="removed"||R==="removing"?"removed":(c.indexOf(R)>-1,"progress")}let g=7200*1e3,y="dashboard.filterPrefs",b={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},h=loadFilterPrefs(y)||{};e.typeFilter=h.typeFilter||b.typeFilter,e.filters={status:Object.assign({},b.filters.status,h.filters&&h.filters.status||{})},e.orderBy=h.orderBy||b.orderBy;let E={_name:{label:"Anonymous ID",defaultDesc:!1},_label:{label:"Project",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=E,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let R=E[e.sortField()];return R?R.label:"Custom"},e.isSortedBy=R=>e.sortField()===R,e.setSort=(R,j)=>{typeof j!="boolean"&&(j=e.isSortedBy(R)?!e.sortDesc():!!(E[R]&&E[R].defaultDesc)),e.orderBy=(j?"-":"")+R},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(y,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(y,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),r.load().then(R=>{e.quota=R},console.error);function S(R,j,ie,ve,z,J){R.pageView||(R.pageView=0),R.lastView||(R.lastView=""),R.options=R.options||{},R.options.terms=(R.options.terms||[]).filter(te=>te),R._id=j||"",R._source=ve,R._broken=!j,R._name=j||ve||"(unnamed)",R._fallbackLabel=R._type==="gist"?"Gist "+(j||ve||"without an ID"):ve||ie||R._name,R._label=R.projectName||R._fallbackLabel,R._editUrl=j?z:null,R._viewUrl=j?J:null,R._broken&&(R.status="error",R.statusMessage="incomplete_record"),R._statusKey=f(R.status);let Q=R.anonymizeDate||R.lastView;return R._stale=R._statusKey==="progress"&&!!Q&&Date.now()-new Date(Q).getTime()>g,R.status==="expired"||R.status==="expiring"?R._expiry={kind:"expired",date:R.options.expirationDate}:R.status!=="ready"?R._expiry={kind:"none"}:R.options.expirationMode==="never"||!R.options.expirationDate?R._expiry={kind:"never"}:R._expiry={kind:"date",date:R.options.expirationDate},R}function m(R){return t.get(R).then(j=>j.data||[],j=>(console.error(j),[]))}function C(){return e.loading=!0,i.all([m("/api/user/anonymized_repositories"),m("/api/user/anonymized_pull_requests"),m("/api/user/anonymized_gists")]).then(R=>{let j=R[0],ie=R[1],ve=R[2],z=[];j.forEach(J=>{J._type="repo";let Q=J.source||{};z.push(S(J,J.repoId,J.repoId,Q.fullName,"/anonymize/"+J.repoId,"/r/"+J.repoId+"/"))}),ie.forEach(J=>{J._type="pr";let Q=J.source||{};z.push(S(J,J.pullRequestId,J.pullRequestId,Q.repositoryFullName?Q.repositoryFullName+"#"+Q.pullRequestId:void 0,"/pull-request-anonymize/"+J.pullRequestId,"/pr/"+J.pullRequestId+"/"))}),ve.forEach(J=>{J._type="gist";let Q=J.source||{};z.push(S(J,J.gistId,J.gistId,Q.gistId,"/gist-anonymize/"+J.gistId,"/gist/"+J.gistId+"/"))}),e.items=z,e.loading=!1})}let N=0,A=!1;e.dashboardCursor=null,e.dashboardError="";function M(R){let j=R.source||{};return R._type==="repo"?S(R,R.repoId,R.repoId,j.fullName,"/anonymize/"+R.repoId,"/r/"+R.repoId+"/"):R._type==="pr"?S(R,R.pullRequestId,R.pullRequestId,j.repositoryFullName?j.repositoryFullName+"#"+j.pullRequestId:void 0,"/pull-request-anonymize/"+R.pullRequestId,"/pr/"+R.pullRequestId+"/"):S(R,R.gistId,R.gistId,j.gistId,"/gist-anonymize/"+R.gistId,"/gist/"+R.gistId+"/")}function U(R=!1){if(A)return C();let j=++N;return e.loading=!R,e.loadingMore=R,e.dashboardError="",t.get("/api/user/dashboard",{params:{q:e.search,type:e.typeFilter,sort:e.orderBy,statuses:Object.keys(e.filters.status).filter(ie=>e.filters.status[ie]!==!1).join(",")||"none",attention:String(e.projectView==="attention"),cursor:R?e.dashboardCursor:void 0}}).then(ie=>{if(j===N){if(!Array.isArray(ie.data?.items))return A=!0,C();e.items=(R?e.items:[]).concat(ie.data.items.map(M)),e.dashboardCursor=ie.data.cursor,e.dashboardTotals=ie.data}},ie=>{if(j===N){if(ie.status===404)return A=!0,C();e.dashboardError="Projects could not be loaded. Please try again."}}).finally(()=>{j===N&&(e.loading=!1,e.loadingMore=!1)})}e.loadMoreProjects=()=>U(!0);let q;e.watchGroup(["search","typeFilter","orderBy","projectView"],()=>{A||(q&&a.timeout.cancel(q),q=a.timeout(()=>U(),150))},!1),e.watch("filters",()=>{A||U()},!0,!1),e.on("dispose",()=>{N++}),U(),e.openItem=(R,j)=>{if(!R._viewUrl)return;let ie=j&&j.target;ie&&ie.closest&&ie.closest("a, button, .dropdown, input")||(s.location.href=R._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(R=>e.filters.status[R]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0,e.hasActiveFilters=()=>e.projectView!=="all"||e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(R=>e.filters.status[R]===!1),e.showClearFilters=()=>e.search.trim().length>0||e.typeFilter!=="all"||e.hiddenStatusCount()>1,e.clearFilters=()=>{e.projectView="all",e.typeFilter="all",e.search="",Object.keys(e.filters.status).forEach(R=>{e.filters.status[R]=!0})};function B(R,j,ie,ve){t.get("/api/repo/"+R).then(async z=>{let J=ve!==void 0&&ve!==z.data.status;for(let Q of e.items)if(Q._type==="repo"&&Q.repoId==R){J=J||Q.status!==z.data.status;let te=e.needsAttention(Q);Q.status=z.data.status,Q.statusMessage=z.data.statusMessage,Q._statusKey=f(Q.status),Q._statusKey!=="progress"&&(Q._stale=!1);let X=e.needsAttention(Q);e.dashboardTotals&&te!==X&&(e.dashboardTotals.attention=Math.max(0,e.dashboardTotals.attention+(X?1:-1)));break}if(J&&!A){e.dashboardCursor=null;let Q=e.selectedProject;await U(),Q&&e.selectedProject===Q&&(e.selectedProject=e.items.find(te=>te._type===Q._type&&te._id===Q._id)||null)}if(z.data.status=="ready"||z.data.status=="error"||z.data.status=="removed"||z.data.status=="expired"){j(z.data);return}a.timeout(()=>B(R,j,ie,z.data.status),2500)},ie)}let oe=R=>R==="repo"?"repository":R==="gist"?"gist":"pull request",ee=R=>R==="repo"?"/api/repo":R==="gist"?"/api/gist":"/api/pr";e.removeItem=R=>{let j=oe(R._type);if(confirm(`Are you sure that you want to remove the ${j} ${R._id}?`)){let ie=Fe({title:`Removing ${R._id}...`,date:new Date,body:`The ${j} ${R._id} is going to be removed.`});e.addToast(ie);let ve=`${ee(R._type)}/${R._id}`;t.delete(ve).then(()=>{R._type==="repo"?B(R._id,()=>{ie.title=`${R._id} is removed.`,ie.body=`The ${j} ${R._id} is removed.`},void 0,R.status):(ie.title=`${R._id} is removed.`,ie.body=`The ${j} ${R._id} is removed.`,U())},z=>{ie.title=`Error during the removal of ${R._id}.`,ie.body=z.body,U()})}},e.refreshItem=R=>{let j=oe(R._type),ie=Fe({title:`Refreshing ${R._id}...`,date:new Date,body:`The ${j} ${R._id} is going to be refreshed.`});e.addToast(ie);let ve=J=>{ie.title=`Error during the refresh of ${R._id}.`,ie.body=J.data?.error||J.body||"The refresh could not be completed. Please try again.",U()},z=`${ee(R._type)}/${R._id}/refresh`;t.post(z).then(()=>{R._type==="repo"?B(R._id,J=>{if(J.status!=="ready"){ve({body:J.statusMessage||`The repository is ${J.status}.`});return}ie.title=`${R._id} is refreshed.`,ie.body=`The ${j} ${R._id} is refreshed.`},ve,R.status):(ie.title=`${R._id} is refreshed.`,ie.body=`The ${j} ${R._id} is refreshed.`,U())},ve)},e.extendItem=R=>{let j=oe(R._type),ie=Fe({title:`Extending ${R._id}...`,date:new Date,body:`The expiration of ${j} ${R._id} is going to be extended by 6 months.`});e.addToast(ie);let ve=`${ee(R._type)}/${R._id}/extend`;t.post(ve).then(()=>{R._type==="repo"?B(R._id,()=>{ie.title=`${R._id} is extended.`,ie.body=`The expiration of ${j} ${R._id} is extended by 6 months.`},void 0,R.status):(ie.title=`${R._id} is extended.`,ie.body=`The expiration of ${j} ${R._id} is extended by 6 months.`,U())},z=>{ie.title=`Error during the extension of ${R._id}.`,ie.body=z.data&&z.data.error||z.body,U()})},e.itemFilter=R=>{if(e.projectView==="attention"&&!e.needsAttention(R)||e.typeFilter!=="all"&&R._type!==e.typeFilter||e.filters.status[R._statusKey]===!1)return!1;let j=e.search.trim().toLowerCase();return!!(j.length==0||R._label&&String(R._label).toLowerCase().indexOf(j)>-1||R._source&&String(R._source).toLowerCase().indexOf(j)>-1||R._id&&String(R._id).toLowerCase().indexOf(j)>-1||R.conference&&String(R.conference).toLowerCase().indexOf(j)>-1)}};var pl=function(e,t,o){let i=ut();e.repoId=o.repoId,e.reviewUrl=window.location.origin+"/r/"+encodeURIComponent(o.repoId)+"/",e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="",e.shareUrl=(window.location?.origin||"")+"/r/"+encodeURIComponent(e.repoId)+"/",e.copied=!1;let s=null;e.copyShareUrl=async()=>{try{await il(e.shareUrl),e.copied=!0,s&&i.timeout.cancel(s),s=i.timeout(()=>{e.copied=!1},2e3)}catch{e.addToast?.({title:"Copy this anonymous link",body:e.shareUrl})}};var r=null;let a=null,c=!1;function f(y){e.rateLimitResetAt=y,r&&i.interval.cancel(r);function b(){var h=Math.max(0,Math.ceil((y-Date.now())/1e3));if(h<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,i.interval.cancel(r),r=null;else{var E=Math.floor(h/60),S=h%60;e.rateLimitCountdown=E>0?E+"m "+S+"s":S+"s"}}b(),r=i.interval(b,1e3)}e.on("dispose",function(){c=!0,r&&i.interval.cancel(r),a&&i.timeout.cancel(a)});function g(y){if(!y)return y;var b=y.match(/^rate_limited:(\d+)$/);return b?(f(parseInt(b[1],10)),null):(e.rateLimitResetAt=0,y)}e.getStatus=()=>{c||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(y=>{if(!c){e.repo=y.data,y.data.rateLimitResetAt?f(y.data.rateLimitResetAt):e.repo.statusMessage=g(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var b=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(b=!1),b&&(a=i.timeout(e.getStatus,2e3))}},y=>{e.error=y.data.error})},e.getStatus()},ds=function(e,t,o,i,s,r,a){e.sourceUrl="",e.workspaceOpen=!1,e.sourceUrlError="",e.previewStatus="idle",e.sourceLoading=!1,e.mobilePane="settings";let c=window.matchMedia?.("(max-width: 767px)");e.mobileWorkspace=!!c?.matches,c?.addEventListener&&Zt()(c,"change",w=>{e.mobileWorkspace=w.matches}),e.selectMobilePane=w=>{e.mobilePane=w};let f=0,g=!1,y=new Set,b=(w,T=!1)=>!g&&w.generation===f&&w.url===e.sourceUrl.trim()&&w.connection===e.githubConnection&&(!T||w.branch===e.source.branch),h=()=>{let w={generation:f,url:e.sourceUrl.trim(),connection:e.githubConnection,branch:e.source.branch};return y.add(w),e.sourceLoading=!0,w},E=w=>{y.delete(w),g||(e.sourceLoading=[...y].some(T=>b(T)))};e.on("dispose",()=>{g=!0,f++});let S=null,m=w=>w.gistId&&!w.repo?"gist:"+w.gistId.toLowerCase():(w.owner+"/"+w.repo).toLowerCase()+(w.pullRequestId?"/pull/"+w.pullRequestId:""),C=fi(e,["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"],"anonymize:"+(s.path?.()||"")),N=null,A=null,M=null;e.hostingReview=!1,e.previewExpanded=!1,e.taskValidationError="",e.editRepository=()=>{e.mobilePane="settings",e.previewExpanded=!1,Ke(()=>document.querySelector(".anonymize-fields .is-invalid")?.focus())},e.submitRepository=w=>{if(e.taskValidationError="",!(e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingPending)){if(V()||e.anonymize?.invalid||e.sourceUrlError){e.taskValidationError="Check the highlighted fields before continuing.",e.editRepository();return}return e.hostingNeedsPayment()?e.checkoutRepository():e.anonymizeRepo(w)}},e.hostingPayment=!1,e.hostingAlternatives=!1,e.hostingPrice=w=>w.amount==null?"Price shown at checkout":new Intl.NumberFormat(void 0,{style:"currency",currency:w.currency,minimumFractionDigits:0,maximumFractionDigits:2}).format(w.amount/100)+(w.interval==="year"?" billed annually":" billed monthly"),e.hostingPlan="author_monthly",e.hostingSaving=!1,e.selectedHostingPlan=()=>e.authorPlans().find(w=>w.id===e.hostingPlan)||e.authorPlans()[0];let U=()=>t.get("/api/user/quota").then(w=>{e.hostingQuota=w.data});as(e,t,async()=>{await U(),e.hostingQuotaBlocked=!1},{confirmedMessage:"Hosting status refreshed. Your draft is ready to continue."}),U().catch(()=>{}),e.authorPlans=()=>(e.billing?.plans||[]).filter(w=>["author_monthly","author_annual"].includes(w.id)),e.hasAuthorHosting=()=>["author_monthly","author_annual"].includes(e.billing?.allowance?.plan),e.hostingNeedsPayment=()=>!e.billing?.enabled||e.detectedType!=="repo"||e.hasAuthorHosting()||e.isUpdate&&e.role!=="owner"?!1:!!(e.options?.expirationMode==="never"&&!e._existingNever||!e.conference&&e.hostingQuotaBlocked),e.checkoutRepository=async(w=!1)=>{if(!(e.hostingSaving||e.billingBusy||!e.billing?.csrf||e.sourceLoading)){e.hostingSaving=!0,e.billingError="";try{let T=C.checkpoint(),O=JSON.stringify(T);(!A||O!==M)&&(A=(await t.post("/api/billing/draft",{path:s.path(),values:T},{headers:{"x-csrf-token":e.billing.csrf}})).data.id,M=O);let I=e.authorPlans().find(F=>F.id===e.hostingPlan)||e.authorPlans()[0];if(!w&&!I)throw new Error("No author plan available");await e.checkout(w?"author_pass":I.id,w?e.repoId:"",{draftId:A})}catch{e.billingError="Your draft could not be saved for checkout. Your form is unchanged. Please try again."}finally{e.hostingSaving=!1}}},e.useDatedHosting=()=>{e.options.expirationMode="remove"},e.discardDraft=async()=>{C.discard(),e.workspaceOpen=!!e.sourceUrl,e.error=null,e.sourceUrl?await e.urlSelected(!0):(f++,e.sourceLoading=!1,e.detectedType=null,e.details=null,e.sourceUrlError="",Se.cancel(),H.cancel(),ue.cancel(),e.previewStatus="idle")},e.githubConnection=void 0,e.githubConnections=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1;let q=()=>{let w={};for(let T of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])w[T]=e[T];sessionStorage.setItem("github-access-draft",JSON.stringify({path:s.path(),savedAt:Date.now(),draft:w}))};e.connectGistApp=()=>{q(),window.location.href="/github/app/login?returnTo="+encodeURIComponent(s.path())},e.connectGistOAuth=()=>{q(),window.location.href="/github/login?returnTo="+encodeURIComponent(s.path())},e.grantGitHubAccess=()=>{q();let w=s.path(),T=J(e.sourceUrl)||"",O=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=O+"?returnTo="+encodeURIComponent(w)+"&repository="+encodeURIComponent(T)+"&install=1"},e.chooseGitHubConnection=async w=>{e.githubConnection=w,e.readme="",e.sourceUrl&&await te()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function B(){let w=new Date;return w.setMonth(w.getMonth()+6),w}e.options.expirationDate=B();function oe(w){let T=w.getFullYear(),O=String(w.getMonth()+1).padStart(2,"0"),I=String(w.getDate()).padStart(2,"0");return`${T}-${O}-${I}`}e.minExpirationDate=oe(new Date);let ee=new Date;ee.setFullYear(ee.getFullYear()+1),e.maxExpirationDate=oe(ee),e.anonymize_readme="",e.readme="",e.html_readme="",e.isUpdate=!1,e.previousConfigurations=[],e.previousConfigurationId="";let R,j=w=>String(w||"").replace(/\/$/,"").replace(/\.git$/i,"").toLowerCase();async function ie(){if(e.isUpdate||i.repoId||i.pullRequestId||i.gistId)return;let w={generation:f,url:e.sourceUrl.trim(),connection:e.githubConnection};try{R||(R=t.get("/api/user/anonymized_repositories").then(I=>I.data));let T=await R;if(!b(w))return;let O=j(J(w.url));e.previousConfigurations=T.filter(I=>I.repoId&&I.options&&j(I.source?.fullName)===O).sort((I,F)=>(Date.parse(F.anonymizeDate)||0)-(Date.parse(I.anonymizeDate)||0)),e.previousConfigurationId=e.previousConfigurations[0]?.repoId||""}catch{R=void 0}}e.existingConfigurationUrl=()=>{let w=e.previousConfigurations.find(T=>T.repoId===e.previousConfigurationId);return w?"/anonymize/"+encodeURIComponent(w.repoId):null};function ve(w){t.get("/api/user/default").then(T=>{let O=T.data;O.terms&&(e.defaultTerms=O.terms.join(` `)),e.options=Object.assign({},e.options,O.options),e.options.expirationDate=O.options&&O.options.expirationDate?new Date(O.options.expirationDate):B(),!i.repoId&&!i.pullRequestId&&!i.gistId&&!e.anonymize?.terms?.dirty&&(e.terms=e.defaultTerms),w&&w()})}function z(w,T,O){e.anonymize&&e.anonymize[w]&&e.anonymize[w].setValidity(T,O)}function J(w){try{let T=parseGithubUrl(w);if(T&&T.owner&&T.repo)return T.owner+"/"+T.repo}catch{}return null}e.accessRepairAllowed=!1,e.repairingGitHubAccess=!1,e.accessRepairMessage="",e.repairGitHubAccess=async()=>{if(!e.accessRepairAllowed||e.repairingGitHubAccess||!e.githubConnections?.appEnabled||!i.repoId||e.role!=="owner"||e.githubConnection!=="github-app"||J(e.sourceUrl)!==e._originalFullName)return;e.repairingGitHubAccess=!0,e.accessRepairMessage="";let w=h();try{let T=await t.get("/github/connections");if(e.githubConnections=T.data,!T.data.appEnabled)return;let O=await t.post("/github/connections/migrate",{type:"repository",id:i.repoId,connection:"github-app"},{headers:{"X-CSRF-Token":T.data.csrf}});if(!b(w))return;e.error=null,O.data.fullName&&(e._originalFullName=O.data.fullName,e.source.fullName=O.data.fullName,e.sourceUrl="https://github.com/"+O.data.fullName),e.accessRepairMessage="GitHub access repaired. Your anonymous URL and published commit are unchanged.",await e.urlSelected(!0)}catch{b(w)&&(e.accessRepairMessage="Unable to repair GitHub access. Check the App's repository permissions in Manage access, then retry. Your published snapshot has not been replaced.")}finally{e.repairingGitHubAccess=!1,E(w)}},e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,e.reconnectSource=async()=>{if(confirm("Reconnect to the repository currently at this GitHub URL? Review its branch and commit before saving. Saving will replace the published snapshot.")){e.reconnectingSource=!0,e.reconnectRepositoryId=void 0,e.source.commit="",e.source.branch="",e.readme="",e.branches=[];try{await re()}catch{}}};function Q(){return e.reconnectingSource||!e.isUpdate||!e._originalRepositoryID?void 0:J(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function te(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function X(){let w=new URLSearchParams(window.location.search).get("billingDraft");if(w){C.restore();try{let O=(await t.get("/api/billing/draft/"+encodeURIComponent(w))).data;if(O.path!==s.path())throw new Error("Wrong task");N=O.values.conference||null;for(let I of["sourceUrl","terms","repoId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(O.values,I)&&(e[I]=O.values[I]);return e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),A=O.id,M=JSON.stringify(C.checkpoint()),e.draftRestored=!0,e.hostingReview=!0,e.sourceUrl&&await te(),s.replace?.(s.path()),!0}catch{e.billingError="The checkout draft could not be restored. Retry by reloading this page; any local draft is still available."}}let T;try{T=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!T||T.path!==s.path()||Date.now()-T.savedAt>=30*6e4)return C.restore()?(e.sourceUrl&&await te(),!0):!1;C.restore();for(let O of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(T.draft,O)&&(e[O]=T.draft[O]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await te(),sessionStorage.removeItem("github-access-draft"),!0}ve(()=>{!i.repoId&&!i.pullRequestId&&!i.gistId&&a(X,0),i.repoId&&i.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=i.repoId,t.get("/api/repo/"+e.repoId).then(async w=>{e.accessRepairAllowed=!["removed","archived","preparing","queue","download","removing","expiring"].includes(w.data.status),e.githubConnection=w.data.connection||"oauth",e.sourceUrl="https://github.com/"+w.data.source.fullName,e._originalFullName=w.data.source.fullName,e.terms=w.data.options.terms.filter(T=>T).join(` -`),e.source=w.data.source,e.role=w.data.role||"owner",e._existingNever=w.data.options.expirationMode==="never",e.coauthors=w.data.coauthors||[],e._originalBranch=w.data.source.branch,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,e.repositoryID=w.data.source.repositoryID,e._originalRepositoryID=w.data.source.repositoryID,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),_=m(parseGithubUrl(e.sourceUrl)),!await X()&&(await Promise.all([re(),Ee()]),_e())},()=>{s.url("/404")})),i.pullRequestId&&i.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=i.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async w=>{if(e.githubConnection=w.data.connection||"oauth",e.sourceUrl="https://github.com/"+w.data.source.repositoryFullName+"/pull/"+w.data.source.pullRequestId,e.terms=w.data.options.terms.filter(T=>T).join(` -`),e.source=w.data.source,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),_=m(parseGithubUrl(e.sourceUrl)),!await X())try{await ze()}catch{}},()=>{s.url("/404")})),i.gistId&&i.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=i.gistId,t.get("/api/gist/"+e.gistId).then(async w=>{e.sourceUrl="https://gist.github.com/"+w.data.source.gistId,e.terms=w.data.options.terms.filter(T=>T).join(` -`),e.source=w.data.source,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),_=m(parseGithubUrl(e.sourceUrl)),!await X()&&await se()},()=>{s.url("/404")}))}),t.get("/github/connections").then(w=>{e.githubConnections=w.data,!i.repoId&&!i.pullRequestId&&!i.gistId&&e.githubConnection===void 0&&w.data.appEnabled&&w.data.appConnected&&(e.githubConnection="github-app",e.sourceUrl&&e.workspaceOpen&&te())}).catch(()=>{}),e.urlSelected=async(w=!1)=>{let T=++f;e.previousConfigurations=[],e.previousConfigurationId="";let O;try{O=parseGithubUrl(e.sourceUrl.trim())}catch{e.sourceLoading=!1,Se.cancel(),H.cancel(),ue.cancel(),e.previewStatus="idle",e.sourceUrlError=e.sourceUrl?"Please provide a valid GitHub URL.":"",z("sourceUrl","github",!1);return}let I=m(O),F=w||_===I;_=I,e.sourceUrlError="",z("sourceUrl","github",!0);let L=document.activeElement?.id==="sourceUrl-landing";e.workspaceOpen=!0,L&&a(()=>document.getElementById("sourceUrl")?.focus(),0),e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,!F&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],F||(e.source={type:"GitHubStream",branch:"",commit:""}),Se.cancel(),H.cancel(),ue.cancel(),Ue.clear(),Y.clear(),e.previewStatus="idle",e.anonymize_readme="",e.readme="",e.html_readme="",e.detectedType=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1,e._preservingDraft=F;try{O.gistId&&!O.repo?(e.detectedType="gist",e.source={gistId:O.gistId},await se()):O.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:O.owner+"/"+O.repo,pullRequestId:O.pullRequestId},await ze()):(e.detectedType="repo",ie(),await Promise.all([re(),Ee()]),_e())}catch{}finally{T===f&&(e._preservingDraft=!1)}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let w=e.branches.filter(O=>O.name==e.source.branch)[0];if(!w)return;!(!e.reconnectingSource&&e.isUpdate&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=w.commit),e.readme=w.readme,await Ee(),_e()}),e.getBranches=async w=>{let T=parseGithubUrl(e.sourceUrl),O=h();try{let I=await t.get(`/api/repo/${T.owner}/${T.repo}/branches`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&J(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:w===!0||e.reconnectingSource?"1":"0",repositoryID:Q()}});if(!b(O))return;e.branches=I.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let F=e.branches.filter(L=>L.name==e.source.branch);F.length>0&&(!(!e.reconnectingSource&&!w&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=F[0].commit),e.readme=F[0].readme,await Ee(w))}catch(I){if(!b(O))return;e.branches=[],e.sourceUnreachable=I&&(I.status===404||I.data&&I.data.error==="repo_not_found");let F=I&&I.data&&I.data.error||(I&&I.status===404?"repo_not_found":"unknown_error");r("ERRORS."+F).then(L=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:L}),e.error=L},console.error),typeof z=="function"&&z("sourceUrl","missing",!1)}finally{E(O)}};async function re(){let w=parseGithubUrl(e.sourceUrl),T=h();try{S();let O=await t.get(`/api/repo/${w.owner}/${w.repo}/`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&J(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,repositoryID:Q(),force:"1"}});if(!b(T))return;e.details=O.data,e.reconnectingSource&&(e.reconnectRepositoryId=e.details.externalId),e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches(e.reconnectingSource)}catch(O){if(!b(T))return;throw O.data&&(r("ERRORS."+O.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),G(O.data.error)),z("sourceUrl","missing",!1),O}finally{E(T)}}async function Ee(w){if(e.readme&&!w)return e.readme;let T=parseGithubUrl(e.sourceUrl),O=h();try{let I=await t.get(`/api/repo/${T.owner}/${T.repo}/readme`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&J(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:w===!0?"1":"0",branch:e.source.branch,repositoryID:Q()}});b(O,!0)&&(e.readme=I.data)}catch{b(O,!0)&&(e.readme="")}finally{E(O)}}function Te(){let w={terms:e.terms?e.terms.split(` -`):[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(w.branchName=e.source.branch);try{let T=parseGithubUrl(e.sourceUrl);w.repoName=`${T.owner}/${T.repo}`}catch{}return w}function Ae(w,T,O){let I=null,F=0,L=()=>{if(e.detectedType!==w)return;I&&a.cancel(I);let ae=++F;e.previewStatus="loading",I=a(()=>{I=null;let x=T();if(!x){e.previewStatus="idle";return}t.post("/api/anonymize-preview",x).then(le=>{ae===F&&(O(le.data,x),e.previewStatus="ready")}).catch(()=>{ae===F&&(e.previewStatus="error")})},200)};return L.cancel=()=>{F++,I&&a.cancel(I),I=null},e.on("dispose",L.cancel),L}e.retryPreview=()=>{e.detectedType==="repo"&&Se(),e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()};let Se=Ae("repo",()=>e.readme?{content:e.readme,options:Te()}:null,w=>{if(typeof w?.content!="string")throw Error("Invalid preview response");e.anonymize_readme=w.content;let T="";try{let I=parseGithubUrl(e.sourceUrl),F=e.source.branch||e.details&&e.details.defaultBranch||"main";T=`https://github.com/${I.owner}/${I.repo}/raw/${F}/`}catch{}let O=renderMD(e.anonymize_readme,T);e.html_readme=O,a(Prism.highlightAll,150)});function _e(){!e.anonymize||!e.anonymize.terms||(e.termsRegexWarning=!!e.terms&&!!e.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),Se())}async function ze(){let w=parseGithubUrl(e.sourceUrl),T=h();try{S();let O=await t.get(`/api/pr/${w.owner}/${w.repo}/${w.pullRequestId}`,{params:{connection:e.githubConnection}});if(!b(T))return;e.details=O.data,e.pullRequestId||(e.pullRequestId=w.repo+"-PR"+w.pullRequestId+"-"+generateRandomId(4))}catch(O){if(!b(T))return;throw O.data&&(r("ERRORS."+O.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),G(O.data.error)),z("sourceUrl","missing",!1),O}finally{E(T)}}let Ue=Fe(new Map);function Ie(){let w=new Set,T=e.details&&e.details.pullRequest;if(!T)return w;typeof T.title=="string"&&w.add(T.title),typeof T.body=="string"&&w.add(T.body),typeof T.diff=="string"&&w.add(T.diff);let O=T.comments||[];for(let I of O)typeof I.author=="string"&&w.add(I.author),typeof I.body=="string"&&w.add(I.body);return w}let H=Ae("pr",()=>{let w=Ie(),T=Array.from(w);return T.length===0?null:{contents:T,options:Te()}},(w,T)=>{if(!Array.isArray(w?.contents)||w.contents.length!==T.contents.length||w.contents.some(F=>typeof F!="string"))throw Error("Invalid preview response");let O=T.contents,I=new Map;for(let F=0;FUe.set(L,F))});e.anonymizePrContent=function(w){return w&&(Ue.has(w)?Ue.get(w):"")};async function se(){let w=parseGithubUrl(e.sourceUrl),T=h();try{S(),e.gistOAuthRequired=!1,e.gistAppRequired=!1;let O=await t.get(`/api/gist/source/${w.gistId}`);if(!b(T))return;e.details=O.data,e.gistId||(e.gistId="gist-"+w.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(O){if(!b(T))return;if(O.data?.error==="github_app_reconnect_required"){e.gistAppRequired=!0,z("sourceUrl","missing",!1);return}if(O.data?.error==="github_oauth_required"){e.gistOAuthRequired=!0,z("sourceUrl","missing",!1);return}throw O.data&&(r("ERRORS."+O.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),G(O.data.error)),z("sourceUrl","missing",!1),O}finally{E(T)}}let Y=Fe(new Map);function Z(){let w=new Set,T=e.details&&e.details.gist;if(!T)return w;typeof T.description=="string"&&w.add(T.description),typeof T.ownerLogin=="string"&&w.add(T.ownerLogin);let O=T.files||[];for(let F of O)typeof F.filename=="string"&&w.add(F.filename),typeof F.content=="string"&&w.add(F.content);let I=T.comments||[];for(let F of I)typeof F.author=="string"&&w.add(F.author),typeof F.body=="string"&&w.add(F.body);return w}let ue=Ae("gist",()=>{let w=Z(),T=Array.from(w);return T.length===0?null:{contents:T,options:Te()}},(w,T)=>{if(!Array.isArray(w?.contents)||w.contents.length!==T.contents.length||w.contents.some(F=>typeof F!="string"))throw Error("Invalid preview response");let O=T.contents,I=new Map;for(let F=0;FY.set(L,F)),be()});e.anonymizeGistContent=function(w){return w&&(Y.has(w)?Y.get(w):"")},e.previewGistFiles=[];function be(){let w=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=w.map(T=>({filename:e.anonymizeGistContent(T.filename),content:e.anonymizeGistContent(T.content),language:T.language}))}e.watch("details.gist.files",be,!0),e.watch("terms",be);function k(){let w=e.conference;if(e.conference_data=null,!w)return;let T=w===N||e.isUpdate&&w===e._originalConference;w!==N&&(N=null),t.get("/api/conferences/"+w).then(O=>{e.conference===w&&(e.conference_data=O.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!T&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===w&&(e.conference_data=null)})}function S(){z("repoId","used",!0),z("repoId","format",!0),z("pullRequestId","used",!0),z("pullRequestId","format",!0),z("gistId","used",!0),z("gistId","format",!0),z("sourceUrl","used",!0),z("sourceUrl","missing",!0),z("sourceUrl","access",!0),z("sourceUrl","github",!0),z("commit","exists",!0),z("conference","activated",!0),z("terms","format",!0),e.termsRegexWarning=!1}function V(){if(e.detectedType==="repo"&&e.options.expirationMode==="never")return!1;let w=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||w&&w.invalid?(w&&w.setDirty&&w.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function G(w){let T=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(w){case"repoId_already_used":z(T,"used",!1);break;case"invalid_repoId":z(T,"format",!1);break;case"options_not_provided":z(T,"format",!1);break;case"repo_already_anonymized":z("sourceUrl","used",!1);break;case"invalid_terms_format":z("terms","format",!1);break;case"repo_not_found":z("sourceUrl","missing",!1);break;case"repo_not_accessible":z("sourceUrl","access",!1);break;case"commit_not_found":z("commit","exists",!1);break;case"conf_not_activated":z("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let w=(e.coauthorSearch||"").trim();if(e.coauthorError="",w.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:w}}).then(T=>{let O=new Set((e.coauthors||[]).map(I=>(I.username||"").toLowerCase()));e.coauthorResults=(T.data||[]).filter(I=>!O.has((I.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(w,T)=>{T&&T.preventDefault(),!(!w||!w.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:w.username}).then(O=>{e.coauthors=O.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},O=>{let I=O&&O.data&&O.data.error||"unknown_error";e.coauthorError=I})},e.removeCoauthor=w=>{!w||!w.username||confirm("Remove co-author "+w.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(w.username)).then(T=>{e.coauthors=T.data||[]},T=>{let O=T&&T.data&&T.data.error||"unknown_error";e.coauthorError=O})},e.anonymizeRepo=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(e.reconnectingSource&&!e.reconnectRepositoryId)return;if(V()){e.editRepository();return}if(e.anonymize?.invalid||e.sourceUrlError){e.editRepository(),e.error="Please correct the highlighted fields before saving.";return}if(e.hostingNeedsPayment()&&e.options.expirationMode==="never"){e.hostingReview=!0,Ke(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}));return}let T=w.currentTarget||w.target.closest?.("button")||w.target;T.disabled=!0;let O=parseGithubUrl(e.sourceUrl),I={repoId:e.repoId,terms:e.terms.trim().split(` -`).filter(L=>L),connection:e.githubConnection,fullName:`${O.owner}/${O.repo}`,repository:e.sourceUrl,reconnectRepositoryId:e.reconnectRepositoryId,options:e.options,source:e.source,conference:e.conference};e.details&&(I.options.pageSource=e.details.pageSource),S();let F=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(F,I,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/status/"+e.repoId},L=>{L.data&&(r("ERRORS."+L.data.error).then(ae=>{e.error=ae},console.error),G(L.data.error),["quota_exceeded","subscription_required_for_never_expiration"].includes(L.data.error)&&(L.data.error==="subscription_required_for_never_expiration"&&(e._existingNever=!1),e.hostingQuotaBlocked=!0,e.hostingReview=!0,Ke(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}))))}).finally(()=>{T.disabled=!1})},e.anonymizeGist=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(V())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let T=w.currentTarget||w.target.closest?.("button")||w.target;T.disabled=!0;let O=parseGithubUrl(e.sourceUrl),I={gistId:e.gistId,terms:e.terms.trim().split(` -`).filter(L=>L),source:{gistId:O.gistId},options:e.options,conference:e.conference};S();let F=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(F,I,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/gist/"+e.gistId},L=>{L.data&&(r("ERRORS."+L.data.error).then(ae=>{e.error=ae},console.error),G(L.data.error))}).finally(()=>{T.disabled=!1})},e.anonymizePullRequest=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(V())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let T=w.currentTarget||w.target.closest?.("button")||w.target;T.disabled=!0;let O=parseGithubUrl(e.sourceUrl),I={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(` -`).filter(L=>L),source:{repositoryFullName:`${O.owner}/${O.repo}`,pullRequestId:O.pullRequestId},options:e.options,conference:e.conference};S();let F=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(F,I,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/pr/"+e.pullRequestId},L=>{L.data&&(r("ERRORS."+L.data.error).then(ae=>{e.error=ae},console.error),G(L.data.error))}).finally(()=>{T.disabled=!1})},e.watch("conference",()=>{k()}),e.watch("terms",()=>{e.detectedType==="repo"&&_e(),e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()}),e.watch("options.image",()=>{e.detectedType==="repo"&&_e(),e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()}),e.watch("options.link",()=>{e.detectedType==="repo"&&_e(),e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()}),e.watch("details",()=>{e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()},!0)},mi=function(e,t,o,i,s,r){let a=ut();window.Prism?.hooks&&!window.Prism.redactionHook&&(window.Prism.hooks.add("complete",z=>ol(z.element)),window.Prism.redactionHook=!0);let c=Zt();e.on("dark-mode",(z,J)=>{e.aceOption&&(J?e.aceOption.theme="nord_dark":e.aceOption.theme="chrome")});let f=0,g=!1;e.on("dispose",()=>{g=!0,f++,y&&y.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,c(document,"keydown",function(z){if((z.metaKey||z.ctrlKey)&&z.key==="k"){z.preventDefault();var J=document.querySelector(".tree-search-input");J&&(J.focus(),J.select())}});var y=null;e.onFileSearchChange=function(){y&&(y.resolve(),y=null);let z=e.fileSearchQuery;if(!z||z.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let J=r.defer();y=J,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(z)}`,{timeout:J.promise}).then(function(Q){if(!(g||y!==J)){y=null,e.fileSearchLoading=!1;var te={};e.files.forEach(function(Z){te[(Z.path||"")+"/"+Z.name]=!0});for(var X=[],re={},Ee=0;Ee0&&e.files.push.apply(e.files,X);for(var Ie=[],H=0;H0&&e.files.push.apply(e.files,Ie),e.fileSearchResults=Q.data}},function(){!g&&y===J&&(y=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})};let b={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},h=["license","txt"],E=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],_=["wav","mp3","ogg","wma","flac","aac","m4a"],m=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.on("routeUpdate",function(z,J){if(e.repoId!=i.repoId)return ve();if((i.path||"")!=e.filePath){e.filePath=i.path||"",e.paths=e.filePath.split("/").filter(Q=>Q&&Q.trim().length>0),ie();for(let Q=0;Q0?e.paths.slice(0,Q).join("/"):"";e.files.some(re=>re.path===te)||e.getFiles(te)}}});function C(){if(e.paths[0]!="")return;let z=["readme.md","readme.txt","readme.org","readme.1st","readme"],J={};for(let te of e.files)te.name.toLowerCase().indexOf("readme")>-1&&(J[te.name.toLowerCase()]=te.name);let Q=null;for(let te of z)if(J[te]){Q=te;break}if(!Q&&Object.keys(J).length>0&&(Q=Object.keys(J)[0]),Q){let te=o.url();te[te.length-1]!="/"&&(te+="/"),o.url(te+encodePathForUrl(J[Q]))}}e.fileCounts=null;let N=0,A=new Set,M=!1;e.getFiles=function(z){let J=e.repoId,Q=N;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(z)}&v=${e.options.lastUpdateDate}`).then(function(te){if(g||J!==e.repoId||Q!==N)return[];let X=z||"";return e.files=e.files.filter(re=>re.path!==X),e.files.push(...te.data),U(X,Q),te.data},function(te){if(g||J!==e.repoId||Q!==N)return[];e.type="error",e.content=hi(te),e.files=[]})};function U(z,J){if(M||A.has(z))return;A.add(z);let Q=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts?path=${encodeURIComponent(z)}`).then(function(te){g||Q!==e.repoId||J!==N||(e.fileCounts={...e.fileCounts,...te.data})},function(){g||Q!==e.repoId||J!==N||(M=!0)})}function q(){return e.files.filter(z=>z.name==e.paths[e.paths.length-1]&&z.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var B=null;e.on("dispose",function(){B&&a.interval.cancel(B)});function oe(z){if(g)return;let J=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(Q=>{if(!(g||J!==e.repoId)){if(e.options=Q.data,e.options.url){window.location=e.options.url;return}z&&z(Q.data)}},Q=>{if(!(g||J!==e.repoId)){var te=Q.data||{};if(te.error==="rate_limited"&&te.resetAt){let re=function(){var Ee=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(Ee<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,B&&(a.interval.cancel(B),B=null),oe(z);else{var Te=Math.floor(Ee/60),Ae=Ee%60;e.rateLimitCountdown=Te>0?Te+"m "+Ae+"s":Ae+"s"}};var X=re;e.type="rate_limited",e.rateLimitResetAt=te.resetAt,B&&a.interval.cancel(B),re(),B=a.interval(re,1e3)}else te.error==="repository_not_ready"?(e.type="loading",a.timeout(function(){oe(z)},3e3)):(e.type="error",e.content=hi(Q))}})}e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};function ee(z){return b[z]?b[z]:z}function R(z){return z=="pdf"?"pdf":z=="html"||z=="htm"?"html-doc":z=="md"?"md":z=="org"?"org":z=="ipynb"?"IPython":h.indexOf(z)>-1?"text":E.indexOf(z)>-1?"image":m.indexOf(z)>-1?"media":_.indexOf(z)>-1?"audio":"code"}function j(z,J){let Q=f;if(!z){e.type="error",e.content="no_file_selected";return}let te=e.type;e.type="loading",e.content="loading";let X=J&&J.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(z)}?v=`+X,{transformResponse:re=>re}).then(re=>{if(!(g||Q!==f)){if(e.type=te,e.content=re.data,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(re.data,o.url()+"/../"),e.type="html"),e.type=="org"){let Te=contentAbs2Relative(re.data);var Ee=new Org.Parser().parse(Te).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(Ee.toString()),e.type="html"}e.type=="code"&&re.headers("content-type")=="application/octet-stream"&&(e.type="binary",e.content="binary"),a.timeout(()=>{Prism.highlightAll()},50)}},re=>{g||Q!==f||(e.type="error",e.content=hi(re))})}function ie(){f++,e.content="",e.file=q();let z="0";e.file&&e.file.sha&&(z=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${z}`;let J=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);e.fileBaseUrl=`/api/repo/${e.repoId}/file/${J?encodePathForUrl(J):""}`,e.showSource=!1,e.allowScripts=!1;let Q=e.filePath.toLowerCase(),te=Q.lastIndexOf(".");if(te>-1&&(Q=Q.substring(te+1)),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:13,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!0,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:ee(Q),onLoad:function(X){let re=ace.require("ace/range").Range,Ee=null;function Te(Y,Z){Ee!==null&&(X.session.removeMarker(Ee),Ee=null),Y!=null&&(Ee=X.session.addMarker(new re(Y,0,Z,1),"highlighted-line","fullLine"))}function Ae(Y){let Z=window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!Z){Te(null);return}let ue=parseInt(Z[1])-1,be=Z[2]?parseInt(Z[2])-1:ue;Te(ue,be),Y&&a.timeout(()=>{X.scrollToLine(ue,!0,!0,function(){})},100)}Ae(!0);let Se=null;X.on("guttermousedown",function(Y){let Z=Y.getDocumentPosition().row,ue=Y.domEvent&&Y.domEvent.shiftKey,be=Z,k=Z;ue&&Se!==null?(be=Math.min(Se,Z),k=Math.max(Se,Z)):Se=Z;let S=be===k?`#L${be+1}`:`#L${be+1}-L${k+1}`,V=window.location.pathname+window.location.search+S;window.history.replaceState(null,"",V),Te(be,k),Y.stop()});let _e=c(window,"hashchange",()=>Ae(!1));X.setFontSize(e.aceOption.fontSize),X.setReadOnly(e.aceOption.readOnly),X.setKeyboardHandler(e.aceOption.keyBinding),X.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),X.setOption("displayIndentGuides",!0),X.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(X.renderer.$cursorLayer.element.style.display="none"),X.setHighlightGutterLine(e.aceOption.highlightGutterLine),X.setShowInvisibles(e.aceOption.showInvisibles),X.setDisplayIndentGuides(e.aceOption.showIndentGuides),X.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),X.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),X.session.setUseSoftTabs(e.aceOption.useSoftTab),X.session.setTabSize(e.aceOption.tabSize);let ze=window.matchMedia("(max-width: 991px)"),Ue=()=>X.session.setUseWrapMode(e.aceOption.useWrapMode&&ze.matches);Ue(),ze.addEventListener?.("change",Ue),X.setBehavioursEnabled(e.aceOption.enableBehaviours),X.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets);let Ie=[],H=()=>{Ie.forEach(ue=>X.session.removeMarker(ue)),Ie=[];let Y=nl();if(!Y)return;X.session.getDocument().getAllLines().forEach((ue,be)=>{for(let k of ue.matchAll(Y))Ie.push(X.session.addMarker(new re(be,k.index,be,k.index+k[0].length),"ace_redaction","text"))})};H(),X.session.on("change",()=>a.timeout(H,0));let se=e.on("site-options",H);return()=>{_e(),se(),ze.removeEventListener?.("change",Ue)}}},e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=R(Q),e.type=="pdf"){e.content="pdf";return}j(e.filePath,e.file)}e.isSourceAccessError=()=>["repo_not_found","token_expired","github_app_access_required","github_app_reconnect_required","repo_saml_enforcement","repo_access_limited"].includes(e.content),e.retryContent=()=>ve();function ve(){f++,e.files=[],e.content=null,e.fileCounts=null,N++,A=new Set,M=!1,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=i.repoId,e.type="loading",e.filePath=i.path||"",e.paths=e.filePath.split("/");let z=e.repoId;oe(function(J){var Q=r.resolve();for(let te=0;te0?e.paths.slice(0,te).join("/"):"";Q=Q.then(function(){return e.getFiles(X)}).then(function(){if(e.type==="error")return r.reject("error")})}Q.then(function(){g||z!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(C(),ie()))})})}ve()},fl=function(e,t,o,i,s){async function r(f){t.get(`/api/pr/${e.pullRequestId}/options`).then(g=>{if(e.options=g.data,e.options.url){window.location=e.options.url;return}f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}async function a(f){t.get(`/api/pr/${e.pullRequestId}/content`).then(g=>{e.details=g.data,e.tabState={active:g.data.diff?"diff":"comments"},f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}function c(){e.pullRequestId=i.pullRequestId,e.type="loading",r(f=>{a()})}c()},hl=function(e,t,o,i,s){async function r(f){t.get(`/api/gist/${e.gistId}/options`).then(g=>{if(e.options=g.data,e.options.url){window.location=e.options.url;return}f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}async function a(f){t.get(`/api/gist/${e.gistId}/content`).then(g=>{e.details=g.data;let y=g.data&&g.data.files&&g.data.files.length;e.tabState={active:y?"files":"comments"},f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}function c(){e.gistId=i.gistId,e.type="loading",r(()=>{a()})}c()},ml=function(e,t,o){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.loading=!0,e.error="",e.search="";let i="conferences.filterPrefs",s={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},r=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},s.filters.status,r.filters&&r.filters.status||{})},e.orderBy=r.orderBy||s.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(a){if(!a.removing&&confirm(`Are you sure that you want to remove the conference ${a.name}? All the repositories linked to this conference will expire.`)){a.removing=!0;let c=Fe({title:`Removing ${a.name}...`,date:new Date,body:`The conference ${a.name} is going to be removed.`});e.addToast(c),t.delete(`/api/conferences/${a.conferenceID}`).then(()=>{c.title=`${a.name} is removed.`,c.body=`The conference ${a.name} is removed.`,e.loadConferences()}).catch(()=>{c.title="Unable to remove conference",c.body="Please try again. The conference has not been removed."}).finally(()=>{a.removing=!1})}},e.loadConferences=()=>(e.loading=!0,e.error="",t.get("/api/conferences/").then(a=>{e.conferences=a.data||[]},a=>{e.error="Unable to load your conferences. Please try again."}).finally(()=>{e.loading=!1})),e.loadConferences(),e.conferenceFilter=a=>{if(e.filters.status[a.status]==!1)return!1;let c=e.search.trim().toLowerCase();return!!(!c||(a.name||"").toLowerCase().includes(c)||(a.conferenceID||"").toLowerCase().includes(c))}},vi=function(e,t,o,i){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.plans=[],e.editionMode=!1,e.saving=!1,e.error="";function s(){return t.get("/api/conferences/"+i.conferenceId).then(y=>{e.options={...e.options,...y.data,billing:y.data.billing||{}},e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}i.conferenceId&&(e.editionMode=!0,s());function r(){t.get("/api/conferences/plans").then(y=>{e.plans=y.data,e.plan=e.plans.filter(b=>b.id==e.options.plan.planID)[0]})}r();let a=new Date;a.setDate(1),a.setMonth(a.getMonth()+1);let c=new Date(a);c.setTime(a.getTime()+179*864e5),e.options={billing:{},startDate:a,endDate:c,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(y=>y.id==e.options.plan.planID)[0]});function f(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function g(y){switch(y){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){if(e.saving)return;e.saving=!0,e.error="";let y=JSON.parse(JSON.stringify(e.options)),b=Fe({title:`Creating ${y.name}...`,date:new Date,body:`The conference ${y.conferenceID} is in creation.`});e.editionMode&&(b.title=`Updating ${y.name}...`,b.body=`The conference '${y.conferenceID}' is updating.`),e.addToast(b),f(),t.post("/api/conferences/"+(e.editionMode?y.conferenceID:""),y).then(()=>{e.editionMode?(b.title=`${y.name} updated`,b.body=`The conference '${y.conferenceID}' is updated.`):(b.title=`${y.name} created`,b.body=`The conference '${y.conferenceID}' is created.`),o.url("/conference/"+y.conferenceID)},h=>{g(h.data?.error),e.error="Unable to save the conference. Please correct any highlighted fields and try again.",e.removeToast(b)}).finally(()=>{e.saving=!1})}},vl=function(e,t,o,i){as(e,t,()=>s(),{confirmedMessage:"Payment status checked. Your conference is ready for submissions once payment is confirmed."}),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,expired:!1,removed:!1}},e.orderBy="-anonymizeDate",e.repoFiler=r=>{if(e.filters.status[r.status]==!1)return!1;let a=e.search.trim().toLowerCase();return!!(!a||(r.source?.fullName||"").toLowerCase().includes(a)||(r.repoId||"").toLowerCase().includes(a))};function s(){t.get("/api/conferences/"+i.conferenceId).then(r=>{e.conference=r.data})}s()},gl=function(e,t){e.notificationEmail="",e.emailSaved=!1,e.saveNotificationEmail=async()=>{e.busy=!0,e.emailSaved=!1,e.connectionError="";try{let o=await t.post("/github/connections/email",{email:e.notificationEmail},{headers:{"X-CSRF-Token":e.connections.csrf}});e.notificationEmail=o.data.notificationEmail,e.user&&(e.user.notificationEmail=o.data.notificationEmail),e.emailSaved=!0}catch(o){e.connectionError=o.data?.error||"Unable to save email address."}finally{e.busy=!1}},e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(o=>{e.connections=o.data,e.notificationEmail=o.data.notificationEmail||""}).catch(o=>{e.connectionError=o.data?.error||"Unable to load connections."}),e.changeConnection=async(o,i,s)=>{e.busy=!0,e.connectionError="";try{let r=await t.post("/github/connections/migrate",{type:o.type,id:o.id,connection:i,preview:s},{headers:{"X-CSRF-Token":e.connections.csrf}});s?o.eligible=r.data.eligible:await e.loadConnections()}catch(r){e.connectionError=r.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(o){e.connectionError=o.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()},yl=function(e,t){e.accountRecovery=!1,t.get("/github/account-recovery").then(o=>{e.accountRecovery=o.data.required}).catch(()=>{})};var bl=function(e,t,o){let i=ut(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let r=_=>{if(_.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){_.preventDefault();let m=document.querySelector('.admin-filter-toolbar input[type="search"]');m&&m.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=_=>{_==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[_]="",e.query.page=1},e.chips=[];let a=()=>{let _=[];e.query.owner&&_.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&_.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=_};e.showStatusMessage=_=>{let m=_.statusMessage||"(no message)";window.prompt(`Status message for ${_.repoId} (${_.status}):`,m)},e.fetchGithubInfo=_=>{let m=window.open("","_blank");m&&m.document.write("
Loading GitHub info for "+_.repoId+"...
"),t.get("/api/admin/repos/"+_.repoId+"/github").then(C=>{m&&(m.document.open(),m.document.write('
'+JSON.stringify(C.data,null,2).replace(/[<>]/g,N=>N==="<"?"<":">")+"
"),m.document.close())},C=>{let N=C&&C.data?JSON.stringify(C.data,null,2):String(C);m&&(m.document.body.innerHTML='
'+N+"
")})},e.statusCountFor=_=>{let m=(e.statusCounts||[]).find(C=>C._id===_);return m?m.count:0},e.statusStorageFor=_=>{let m=(e.statusCounts||[]).find(C=>C._id===_);return m?m.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=_=>{e.query.sort===_?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=_,e.query.direction="desc"),e.query.page=1},e.sortIcon=_=>e.query.sort===_?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.repos.filterPrefs",f={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},g=loadFilterPrefs(c)||{};e.query=Object.assign({},f,g,{page:1,search:""});let y=o.search();y.owner&&(e.query.owner=y.owner),y.conference&&(e.query.conference=y.conference),y.search&&(e.query.search=y.search);let b="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let _=window.prompt("Preset name:");if(!_)return;let m=Object.assign({},e.query);delete m.page,e.presets=(e.presets||[]).filter(C=>C.name!==_),e.presets.push({name:_,query:m}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=_=>{Object.assign(e.query,_.query,{page:1})},e.deletePreset=_=>{e.presets=(e.presets||[]).filter(m=>m.name!==_.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(_=>{e.selected[_.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(_=>e.selected[_.repoId]),e.bulkRefresh=()=>{let _=e.selectedRepos();_.length&&confirm(`Force refresh ${_.length} repositories?`)&&_.forEach(m=>e.updateRepository(m))},e.bulkRemoveCache=()=>{let _=e.selectedRepos();_.length&&confirm(`Purge cache for ${_.length} repositories?`)&&_.forEach(m=>e.removeCache(m))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let _=new URLSearchParams(Object.entries(e.query).filter(([,m])=>m!==""&&m!==!1&&m!=null));_.set("format","csv"),_.set("limit","10000"),window.open("/api/admin/repos?"+_.toString(),"_blank")},e.removeCache=_=>{confirm("Remove cached files for "+_.repoId+"?")&&t.delete("/api/admin/repos/"+_.repoId).then(()=>h(),m=>console.error(m))},e.removeRepository=_=>{confirm("Remove repository "+_.repoId+"?")&&t.delete("/api/repo/"+_.repoId+"/").then(()=>h(),m=>console.error(m))},e.updateRepository=_=>{let m=Fe({title:`Refreshing ${_.repoId}...`,date:new Date,body:`The repository ${_.repoId} is going to be refreshed.`});e.toasts.push(m),t.post(`/api/repo/${_.repoId}/refresh`).then(C=>{C.data.status=="ready"?m.title=`${_.repoId} is refreshed.`:m.title=`Refreshing of ${_.repoId}.`},C=>{m.title=`Error during the refresh of ${_.repoId}.`,m.body=C.body})},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(_=>{e.total=_.data.total,e.totalPage=Math.ceil(_.data.total/e.query.limit),e.repositories=_.data.results,e.statusCounts=_.data.statusCounts||[],e.totalSize=_.data.totalSize||0,e.allSelected=!1},_=>{e.fetchError=_&&_.data&&_.data.error||"Failed to load repositories",console.error(_)})}h();let E=null;e.watch("query",()=>{i.timeout.cancel(E),E=i.timeout(h,500);let{page:_,search:m,...C}=e.query;saveFilterPrefs(c,C),a()},!0),a()},wl=function(e,t,o){let i=ut(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let r=h=>{if(h.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){h.preventDefault();let E=document.querySelector('.admin-filter-toolbar input[type="search"]');E&&E.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=h=>{h==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[h]="",e.query.page=1},e.chips=[];let a=()=>{let h=[];e.query.role&&h.push({key:"role",label:"Role",value:e.query.role}),e.chips=h};e.statusCountFor=h=>{let E=(e.statusCounts||[]).find(_=>_._id===h);return E?E.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.query.page=1},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.users.filterPrefs",f={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},g=loadFilterPrefs(c)||{};e.query=Object.assign({},f,g,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(h=>{e.selected[h.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(h=>e.selected[h.username]),e.banUser=h=>{confirm(`Ban user ${h.username}?`)&&t.post(`/api/admin/users/${h.username}/ban`).then(y,E=>console.error(E))},e.activateUser=h=>{t.post(`/api/admin/users/${h.username}/activate`).then(y,E=>console.error(E))},e.bulkBan=()=>{let h=e.selectedUsers();h.length&&confirm(`Ban ${h.length} users?`)&&h.forEach(E=>e.banUser(E))},e.exportCsv=()=>{let h=new URLSearchParams(Object.entries(e.query).filter(([,E])=>E!==""&&E!==!1&&E!=null));h.set("format","csv"),h.set("limit","10000"),window.open("/api/admin/users?"+h.toString(),"_blank")},e.fetchError=null;function y(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(h=>{e.total=h.data.total,e.totalPage=Math.ceil(h.data.total/e.query.limit),e.users=h.data.results,e.statusCounts=h.data.statusCounts||[],e.allSelected=!1},h=>{e.fetchError=h&&h.data&&h.data.error||"Failed to load users",console.error(h)})}y();let b=null;e.watch("query",()=>{i.timeout.cancel(b),b=i.timeout(y,500);let{page:h,search:E,..._}=e.query;saveFilterPrefs(c,_),a()},!0),a()},kl=function(e,t,o,i){let s=ut();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let r="admin.user.filterPrefs",a={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},c=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},a.filters.status,c.filters&&c.filters.status||{})},e.query={sort:c.sort||a.sort,direction:c.direction||a.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=h=>(e.repositories||[]).filter(E=>E.status===h).length,e.repoFiler=h=>e.filters.status[h.status]==!1?!1:!!(e.search.trim().length==0||h.source.fullName.indexOf(e.search)>-1||h.repoId.indexOf(e.search)>-1||h.statusMessage&&h.statusMessage.indexOf(e.search)>-1||h.conference&&h.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(h=>{e.selected[h.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(h=>e.selected[h.repoId]),e.bulkRefresh=()=>{let h=e.selectedRepos();h.length&&confirm(`Force refresh ${h.length} repositories?`)&&h.forEach(E=>e.updateRepository(E))},e.bulkRemoveCache=()=>{let h=e.selectedRepos();h.length&&confirm(`Purge cache for ${h.length} repositories?`)&&h.forEach(E=>e.removeCache(E))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let h=e.filteredRepositories||e.repositories,_=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),m=h.map(A=>[A.repoId,A.status,A.statusMessage||"",A.pageView||0,A.anonymizeDate||"",A.source&&A.source.fullName||"",A.conference||"",A.size&&A.size.storage||0].map(M=>{let U=String(M??"");return/[",\n\r]/.test(U)?'"'+U.replace(/"/g,'""')+'"':U}).join(",")),C=new Blob([_+` +`),e.source=w.data.source,e.role=w.data.role||"owner",e._existingNever=w.data.options.expirationMode==="never",e.coauthors=w.data.coauthors||[],e._originalBranch=w.data.source.branch,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,e.repositoryID=w.data.source.repositoryID,e._originalRepositoryID=w.data.source.repositoryID,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),S=m(parseGithubUrl(e.sourceUrl)),!await X()&&(await Promise.all([re(),Ee()]),_e())},()=>{s.url("/404")})),i.pullRequestId&&i.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=i.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async w=>{if(e.githubConnection=w.data.connection||"oauth",e.sourceUrl="https://github.com/"+w.data.source.repositoryFullName+"/pull/"+w.data.source.pullRequestId,e.terms=w.data.options.terms.filter(T=>T).join(` +`),e.source=w.data.source,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),S=m(parseGithubUrl(e.sourceUrl)),!await X())try{await ze()}catch{}},()=>{s.url("/404")})),i.gistId&&i.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=i.gistId,t.get("/api/gist/"+e.gistId).then(async w=>{e.sourceUrl="https://gist.github.com/"+w.data.source.gistId,e.terms=w.data.options.terms.filter(T=>T).join(` +`),e.source=w.data.source,e.options=Object.assign({},e.options,w.data.options),e.conference=w.data.conference,e._originalConference=w.data.conference,w.data.options.expirationDate&&(e.options.expirationDate=new Date(w.data.options.expirationDate)),S=m(parseGithubUrl(e.sourceUrl)),!await X()&&await se()},()=>{s.url("/404")}))}),t.get("/github/connections").then(w=>{e.githubConnections=w.data,!i.repoId&&!i.pullRequestId&&!i.gistId&&e.githubConnection===void 0&&w.data.appEnabled&&w.data.appConnected&&(e.githubConnection="github-app",e.sourceUrl&&e.workspaceOpen&&te())}).catch(()=>{}),e.urlSelected=async(w=!1)=>{let T=++f;e.previousConfigurations=[],e.previousConfigurationId="";let O;try{O=parseGithubUrl(e.sourceUrl.trim())}catch{e.sourceLoading=!1,Se.cancel(),H.cancel(),ue.cancel(),e.previewStatus="idle",e.sourceUrlError=e.sourceUrl?"Please provide a valid GitHub URL.":"",z("sourceUrl","github",!1);return}let I=m(O),F=w||S===I;S=I,e.sourceUrlError="",z("sourceUrl","github",!0);let L=document.activeElement?.id==="sourceUrl-landing";e.workspaceOpen=!0,L&&a(()=>document.getElementById("sourceUrl")?.focus(),0),e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,!F&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],F||(e.source={type:"GitHubStream",branch:"",commit:""}),Se.cancel(),H.cancel(),ue.cancel(),Ue.clear(),Y.clear(),e.previewStatus="idle",e.anonymize_readme="",e.readme="",e.html_readme="",e.detectedType=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1,e._preservingDraft=F;try{O.gistId&&!O.repo?(e.detectedType="gist",e.source={gistId:O.gistId},await se()):O.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:O.owner+"/"+O.repo,pullRequestId:O.pullRequestId},await ze()):(e.detectedType="repo",ie(),await Promise.all([re(),Ee()]),_e())}catch{}finally{T===f&&(e._preservingDraft=!1)}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let w=e.branches.filter(O=>O.name==e.source.branch)[0];if(!w)return;!(!e.reconnectingSource&&e.isUpdate&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=w.commit),e.readme=w.readme,await Ee(),_e()}),e.getBranches=async w=>{let T=parseGithubUrl(e.sourceUrl),O=h();try{let I=await t.get(`/api/repo/${T.owner}/${T.repo}/branches`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&J(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:w===!0||e.reconnectingSource?"1":"0",repositoryID:Q()}});if(!b(O))return;e.branches=I.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let F=e.branches.filter(L=>L.name==e.source.branch);F.length>0&&(!(!e.reconnectingSource&&!w&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=F[0].commit),e.readme=F[0].readme,await Ee(w))}catch(I){if(!b(O))return;e.branches=[],e.sourceUnreachable=I&&(I.status===404||I.data&&I.data.error==="repo_not_found");let F=I&&I.data&&I.data.error||(I&&I.status===404?"repo_not_found":"unknown_error");r("ERRORS."+F).then(L=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:L}),e.error=L},console.error),typeof z=="function"&&z("sourceUrl","missing",!1)}finally{E(O)}};async function re(){let w=parseGithubUrl(e.sourceUrl),T=h();try{_();let O=await t.get(`/api/repo/${w.owner}/${w.repo}/`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&J(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,repositoryID:Q(),force:"1"}});if(!b(T))return;e.details=O.data,e.reconnectingSource&&(e.reconnectRepositoryId=e.details.externalId),e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches(e.reconnectingSource)}catch(O){if(!b(T))return;throw O.data&&(r("ERRORS."+O.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),G(O.data.error)),z("sourceUrl","missing",!1),O}finally{E(T)}}async function Ee(w){if(e.readme&&!w)return e.readme;let T=parseGithubUrl(e.sourceUrl),O=h();try{let I=await t.get(`/api/repo/${T.owner}/${T.repo}/readme`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&i.repoId&&J(e.sourceUrl)===e._originalFullName?i.repoId:void 0,connection:e.githubConnection,force:w===!0?"1":"0",branch:e.source.branch,repositoryID:Q()}});b(O,!0)&&(e.readme=I.data)}catch{b(O,!0)&&(e.readme="")}finally{E(O)}}function Te(){let w={terms:e.terms?e.terms.split(` +`):[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(w.branchName=e.source.branch);try{let T=parseGithubUrl(e.sourceUrl);w.repoName=`${T.owner}/${T.repo}`}catch{}return w}function Ae(w,T,O){let I=null,F=0,L=()=>{if(e.detectedType!==w)return;I&&a.cancel(I);let ae=++F;e.previewStatus="loading",I=a(()=>{I=null;let x=T();if(!x){e.previewStatus="idle";return}t.post("/api/anonymize-preview",x).then(le=>{ae===F&&(O(le.data,x),e.previewStatus="ready")}).catch(()=>{ae===F&&(e.previewStatus="error")})},200)};return L.cancel=()=>{F++,I&&a.cancel(I),I=null},e.on("dispose",L.cancel),L}e.retryPreview=()=>{e.detectedType==="repo"&&Se(),e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()};let Se=Ae("repo",()=>e.readme?{content:e.readme,options:Te()}:null,w=>{if(typeof w?.content!="string")throw Error("Invalid preview response");e.anonymize_readme=w.content;let T="";try{let I=parseGithubUrl(e.sourceUrl),F=e.source.branch||e.details&&e.details.defaultBranch||"main";T=`https://github.com/${I.owner}/${I.repo}/raw/${F}/`}catch{}let O=renderMD(e.anonymize_readme,T);e.html_readme=O,a(Prism.highlightAll,150)});function _e(){!e.anonymize||!e.anonymize.terms||(e.termsRegexWarning=!!e.terms&&!!e.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),Se())}async function ze(){let w=parseGithubUrl(e.sourceUrl),T=h();try{_();let O=await t.get(`/api/pr/${w.owner}/${w.repo}/${w.pullRequestId}`,{params:{connection:e.githubConnection}});if(!b(T))return;e.details=O.data,e.pullRequestId||(e.pullRequestId=w.repo+"-PR"+w.pullRequestId+"-"+generateRandomId(4))}catch(O){if(!b(T))return;throw O.data&&(r("ERRORS."+O.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),G(O.data.error)),z("sourceUrl","missing",!1),O}finally{E(T)}}let Ue=Fe(new Map);function Ie(){let w=new Set,T=e.details&&e.details.pullRequest;if(!T)return w;typeof T.title=="string"&&w.add(T.title),typeof T.body=="string"&&w.add(T.body),typeof T.diff=="string"&&w.add(T.diff);let O=T.comments||[];for(let I of O)typeof I.author=="string"&&w.add(I.author),typeof I.body=="string"&&w.add(I.body);return w}let H=Ae("pr",()=>{let w=Ie(),T=Array.from(w);return T.length===0?null:{contents:T,options:Te()}},(w,T)=>{if(!Array.isArray(w?.contents)||w.contents.length!==T.contents.length||w.contents.some(F=>typeof F!="string"))throw Error("Invalid preview response");let O=T.contents,I=new Map;for(let F=0;FUe.set(L,F))});e.anonymizePrContent=function(w){return w&&(Ue.has(w)?Ue.get(w):"")};async function se(){let w=parseGithubUrl(e.sourceUrl),T=h();try{_(),e.gistOAuthRequired=!1,e.gistAppRequired=!1;let O=await t.get(`/api/gist/source/${w.gistId}`);if(!b(T))return;e.details=O.data,e.gistId||(e.gistId="gist-"+w.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(O){if(!b(T))return;if(O.data?.error==="github_app_reconnect_required"){e.gistAppRequired=!0,z("sourceUrl","missing",!1);return}if(O.data?.error==="github_oauth_required"){e.gistOAuthRequired=!0,z("sourceUrl","missing",!1);return}throw O.data&&(r("ERRORS."+O.data.error).then(I=>{e.addToast({title:"Error",date:new Date,body:I}),e.error=I},console.error),G(O.data.error)),z("sourceUrl","missing",!1),O}finally{E(T)}}let Y=Fe(new Map);function Z(){let w=new Set,T=e.details&&e.details.gist;if(!T)return w;typeof T.description=="string"&&w.add(T.description),typeof T.ownerLogin=="string"&&w.add(T.ownerLogin);let O=T.files||[];for(let F of O)typeof F.filename=="string"&&w.add(F.filename),typeof F.content=="string"&&w.add(F.content);let I=T.comments||[];for(let F of I)typeof F.author=="string"&&w.add(F.author),typeof F.body=="string"&&w.add(F.body);return w}let ue=Ae("gist",()=>{let w=Z(),T=Array.from(w);return T.length===0?null:{contents:T,options:Te()}},(w,T)=>{if(!Array.isArray(w?.contents)||w.contents.length!==T.contents.length||w.contents.some(F=>typeof F!="string"))throw Error("Invalid preview response");let O=T.contents,I=new Map;for(let F=0;FY.set(L,F)),be()});e.anonymizeGistContent=function(w){return w&&(Y.has(w)?Y.get(w):"")},e.previewGistFiles=[];function be(){let w=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=w.map(T=>({filename:e.anonymizeGistContent(T.filename),content:e.anonymizeGistContent(T.content),language:T.language}))}e.watch("details.gist.files",be,!0),e.watch("terms",be);function k(){let w=e.conference;if(e.conference_data=null,!w)return;let T=w===N||e.isUpdate&&w===e._originalConference;w!==N&&(N=null),t.get("/api/conferences/"+w).then(O=>{e.conference===w&&(e.conference_data=O.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!T&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===w&&(e.conference_data=null)})}function _(){z("repoId","used",!0),z("repoId","format",!0),z("pullRequestId","used",!0),z("pullRequestId","format",!0),z("gistId","used",!0),z("gistId","format",!0),z("sourceUrl","used",!0),z("sourceUrl","missing",!0),z("sourceUrl","access",!0),z("sourceUrl","github",!0),z("commit","exists",!0),z("conference","activated",!0),z("terms","format",!0),e.termsRegexWarning=!1}function V(){if(e.detectedType==="repo"&&e.options.expirationMode==="never")return!1;let w=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||w&&w.invalid?(w&&w.setDirty&&w.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function G(w){let T=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(w){case"repoId_already_used":z(T,"used",!1);break;case"invalid_repoId":z(T,"format",!1);break;case"options_not_provided":z(T,"format",!1);break;case"repo_already_anonymized":z("sourceUrl","used",!1);break;case"invalid_terms_format":z("terms","format",!1);break;case"repo_not_found":z("sourceUrl","missing",!1);break;case"repo_not_accessible":z("sourceUrl","access",!1);break;case"commit_not_found":z("commit","exists",!1);break;case"conf_not_activated":z("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let w=(e.coauthorSearch||"").trim();if(e.coauthorError="",w.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:w}}).then(T=>{let O=new Set((e.coauthors||[]).map(I=>(I.username||"").toLowerCase()));e.coauthorResults=(T.data||[]).filter(I=>!O.has((I.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(w,T)=>{T&&T.preventDefault(),!(!w||!w.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:w.username}).then(O=>{e.coauthors=O.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},O=>{let I=O&&O.data&&O.data.error||"unknown_error";e.coauthorError=I})},e.removeCoauthor=w=>{!w||!w.username||confirm("Remove co-author "+w.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(w.username)).then(T=>{e.coauthors=T.data||[]},T=>{let O=T&&T.data&&T.data.error||"unknown_error";e.coauthorError=O})},e.anonymizeRepo=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(e.reconnectingSource&&!e.reconnectRepositoryId)return;if(V()){e.editRepository();return}if(e.anonymize?.invalid||e.sourceUrlError){e.editRepository(),e.error="Please correct the highlighted fields before saving.";return}if(e.hostingNeedsPayment()&&e.options.expirationMode==="never"){e.hostingReview=!0,Ke(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}));return}let T=w.currentTarget||w.target.closest?.("button")||w.target;T.disabled=!0;let O=parseGithubUrl(e.sourceUrl),I={repoId:e.repoId,terms:e.terms.trim().split(` +`).filter(L=>L),connection:e.githubConnection,fullName:`${O.owner}/${O.repo}`,repository:e.sourceUrl,reconnectRepositoryId:e.reconnectRepositoryId,options:e.options,source:e.source,conference:e.conference};e.details&&(I.options.pageSource=e.details.pageSource),_();let F=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(F,I,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/status/"+e.repoId},L=>{L.data&&(r("ERRORS."+L.data.error).then(ae=>{e.error=ae},console.error),G(L.data.error),["quota_exceeded","subscription_required_for_never_expiration"].includes(L.data.error)&&(L.data.error==="subscription_required_for_never_expiration"&&(e._existingNever=!1),e.hostingQuotaBlocked=!0,e.hostingReview=!0,Ke(()=>document.getElementById("repository-hosting")?.scrollIntoView({block:"center"}))))}).finally(()=>{T.disabled=!1})},e.anonymizeGist=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(V())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let T=w.currentTarget||w.target.closest?.("button")||w.target;T.disabled=!0;let O=parseGithubUrl(e.sourceUrl),I={gistId:e.gistId,terms:e.terms.trim().split(` +`).filter(L=>L),source:{gistId:O.gistId},options:e.options,conference:e.conference};_();let F=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(F,I,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/gist/"+e.gistId},L=>{L.data&&(r("ERRORS."+L.data.error).then(ae=>{e.error=ae},console.error),G(L.data.error))}).finally(()=>{T.disabled=!1})},e.anonymizePullRequest=w=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(V())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let T=w.currentTarget||w.target.closest?.("button")||w.target;T.disabled=!0;let O=parseGithubUrl(e.sourceUrl),I={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(` +`).filter(L=>L),source:{repositoryFullName:`${O.owner}/${O.repo}`,pullRequestId:O.pullRequestId},options:e.options,conference:e.conference};_();let F=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(F,I,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/pr/"+e.pullRequestId},L=>{L.data&&(r("ERRORS."+L.data.error).then(ae=>{e.error=ae},console.error),G(L.data.error))}).finally(()=>{T.disabled=!1})},e.watch("conference",()=>{k()}),e.watch("terms",()=>{e.detectedType==="repo"&&_e(),e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()}),e.watch("options.image",()=>{e.detectedType==="repo"&&_e(),e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()}),e.watch("options.link",()=>{e.detectedType==="repo"&&_e(),e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()}),e.watch("details",()=>{e.detectedType==="pr"&&H(),e.detectedType==="gist"&&ue()},!0)},mi=function(e,t,o,i,s,r){let a=ut();window.Prism?.hooks&&!window.Prism.redactionHook&&(window.Prism.hooks.add("complete",z=>ol(z.element)),window.Prism.redactionHook=!0);let c=Zt();e.on("dark-mode",(z,J)=>{e.aceOption&&(J?e.aceOption.theme="nord_dark":e.aceOption.theme="chrome")});let f=0,g=!1;e.on("dispose",()=>{g=!0,f++,y&&y.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,c(document,"keydown",function(z){if((z.metaKey||z.ctrlKey)&&z.key==="k"){z.preventDefault();var J=document.querySelector(".tree-search-input");J&&(J.focus(),J.select())}});var y=null;e.onFileSearchChange=function(){y&&(y.resolve(),y=null);let z=e.fileSearchQuery;if(!z||z.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let J=r.defer();y=J,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(z)}`,{timeout:J.promise}).then(function(Q){if(!(g||y!==J)){y=null,e.fileSearchLoading=!1;var te={};e.files.forEach(function(Z){te[(Z.path||"")+"/"+Z.name]=!0});for(var X=[],re={},Ee=0;Ee0&&e.files.push.apply(e.files,X);for(var Ie=[],H=0;H0&&e.files.push.apply(e.files,Ie),e.fileSearchResults=Q.data}},function(){!g&&y===J&&(y=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})};let b={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},h=["license","txt"],E=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],S=["wav","mp3","ogg","wma","flac","aac","m4a"],m=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.on("routeUpdate",function(z,J){if(e.repoId!=i.repoId)return ve();if((i.path||"")!=e.filePath){e.filePath=i.path||"",e.paths=e.filePath.split("/").filter(Q=>Q&&Q.trim().length>0),ie();for(let Q=0;Q0?e.paths.slice(0,Q).join("/"):"";e.files.some(re=>re.path===te)||e.getFiles(te)}}});function C(){if(e.paths[0]!="")return;let z=["readme.md","readme.txt","readme.org","readme.1st","readme"],J={};for(let te of e.files)te.name.toLowerCase().indexOf("readme")>-1&&(J[te.name.toLowerCase()]=te.name);let Q=null;for(let te of z)if(J[te]){Q=te;break}if(!Q&&Object.keys(J).length>0&&(Q=Object.keys(J)[0]),Q){let te=o.url();te[te.length-1]!="/"&&(te+="/"),o.url(te+encodePathForUrl(J[Q]))}}e.fileCounts=null;let N=0,A=new Set,M=!1;e.getFiles=function(z){let J=e.repoId,Q=N;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(z)}&v=${e.options.lastUpdateDate}`).then(function(te){if(g||J!==e.repoId||Q!==N)return[];let X=z||"";return e.files=e.files.filter(re=>re.path!==X),e.files.push(...te.data),U(X,Q),te.data},function(te){if(g||J!==e.repoId||Q!==N)return[];e.type="error",e.content=hi(te),e.files=[]})};function U(z,J){if(M||A.has(z))return;A.add(z);let Q=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts?path=${encodeURIComponent(z)}`).then(function(te){g||Q!==e.repoId||J!==N||(e.fileCounts={...e.fileCounts,...te.data})},function(){g||Q!==e.repoId||J!==N||(M=!0)})}function q(){return e.files.filter(z=>z.name==e.paths[e.paths.length-1]&&z.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var B=null;e.on("dispose",function(){B&&a.interval.cancel(B)});function oe(z){if(g)return;let J=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(Q=>{if(!(g||J!==e.repoId)){if(e.options=Q.data,e.options.url){window.location=e.options.url;return}z&&z(Q.data)}},Q=>{if(!(g||J!==e.repoId)){var te=Q.data||{};if(te.error==="rate_limited"&&te.resetAt){let re=function(){var Ee=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(Ee<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,B&&(a.interval.cancel(B),B=null),oe(z);else{var Te=Math.floor(Ee/60),Ae=Ee%60;e.rateLimitCountdown=Te>0?Te+"m "+Ae+"s":Ae+"s"}};var X=re;e.type="rate_limited",e.rateLimitResetAt=te.resetAt,B&&a.interval.cancel(B),re(),B=a.interval(re,1e3)}else te.error==="repository_not_ready"?(e.type="loading",a.timeout(function(){oe(z)},3e3)):(e.type="error",e.content=hi(Q))}})}e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};function ee(z){return b[z]?b[z]:z}function R(z){return z=="pdf"?"pdf":z=="html"||z=="htm"?"html-doc":z=="md"?"md":z=="org"?"org":z=="ipynb"?"IPython":h.indexOf(z)>-1?"text":E.indexOf(z)>-1?"image":m.indexOf(z)>-1?"media":S.indexOf(z)>-1?"audio":"code"}function j(z,J){let Q=f;if(!z){e.type="error",e.content="no_file_selected";return}let te=e.type;e.type="loading",e.content="loading";let X=J&&J.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(z)}?v=`+X,{transformResponse:re=>re}).then(re=>{if(!(g||Q!==f)){if(e.type=te,e.content=re.data,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(re.data,o.url()+"/../"),e.type="html"),e.type=="org"){let Te=contentAbs2Relative(re.data);var Ee=new Org.Parser().parse(Te).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(Ee.toString()),e.type="html"}e.type=="code"&&re.headers("content-type")=="application/octet-stream"&&(e.type="binary",e.content="binary"),a.timeout(()=>{Prism.highlightAll()},50)}},re=>{g||Q!==f||(e.type="error",e.content=hi(re))})}function ie(){f++,e.content="",e.file=q();let z="0";e.file&&e.file.sha&&(z=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${z}`;let J=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);e.fileBaseUrl=`/api/repo/${e.repoId}/file/${J?encodePathForUrl(J):""}`,e.showSource=!1,e.allowScripts=!1;let Q=e.filePath.toLowerCase(),te=Q.lastIndexOf(".");if(te>-1&&(Q=Q.substring(te+1)),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:13,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!0,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:ee(Q),onLoad:function(X){let re=ace.require("ace/range").Range,Ee=null;function Te(Y,Z){Ee!==null&&(X.session.removeMarker(Ee),Ee=null),Y!=null&&(Ee=X.session.addMarker(new re(Y,0,Z,1),"highlighted-line","fullLine"))}function Ae(Y){let Z=window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!Z){Te(null);return}let ue=parseInt(Z[1])-1,be=Z[2]?parseInt(Z[2])-1:ue;Te(ue,be),Y&&a.timeout(()=>{X.scrollToLine(ue,!0,!0,function(){})},100)}Ae(!0);let Se=null;X.on("guttermousedown",function(Y){let Z=Y.getDocumentPosition().row,ue=Y.domEvent&&Y.domEvent.shiftKey,be=Z,k=Z;ue&&Se!==null?(be=Math.min(Se,Z),k=Math.max(Se,Z)):Se=Z;let _=be===k?`#L${be+1}`:`#L${be+1}-L${k+1}`,V=window.location.pathname+window.location.search+_;window.history.replaceState(null,"",V),Te(be,k),Y.stop()});let _e=c(window,"hashchange",()=>Ae(!1));X.setFontSize(e.aceOption.fontSize),X.setReadOnly(e.aceOption.readOnly),X.setKeyboardHandler(e.aceOption.keyBinding),X.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),X.setOption("displayIndentGuides",!0),X.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(X.renderer.$cursorLayer.element.style.display="none"),X.setHighlightGutterLine(e.aceOption.highlightGutterLine),X.setShowInvisibles(e.aceOption.showInvisibles),X.setDisplayIndentGuides(e.aceOption.showIndentGuides),X.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),X.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),X.session.setUseSoftTabs(e.aceOption.useSoftTab),X.session.setTabSize(e.aceOption.tabSize);let ze=window.matchMedia("(max-width: 991px)"),Ue=()=>X.session.setUseWrapMode(e.aceOption.useWrapMode&&ze.matches);Ue(),ze.addEventListener?.("change",Ue),X.setBehavioursEnabled(e.aceOption.enableBehaviours),X.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets);let Ie=[],H=()=>{Ie.forEach(ue=>X.session.removeMarker(ue)),Ie=[];let Y=nl();if(!Y)return;X.session.getDocument().getAllLines().forEach((ue,be)=>{for(let k of ue.matchAll(Y))Ie.push(X.session.addMarker(new re(be,k.index,be,k.index+k[0].length),"ace_redaction","text"))})};H(),X.session.on("change",()=>a.timeout(H,0));let se=e.on("site-options",H);return()=>{_e(),se(),ze.removeEventListener?.("change",Ue)}}},e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=R(Q),e.type=="pdf"){e.content="pdf";return}j(e.filePath,e.file)}e.isSourceAccessError=()=>["repo_not_found","token_expired","github_app_access_required","github_app_reconnect_required","repo_saml_enforcement","repo_access_limited"].includes(e.content),e.retryContent=()=>ve();function ve(){f++,e.files=[],e.content=null,e.fileCounts=null,N++,A=new Set,M=!1,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=i.repoId,e.type="loading",e.filePath=i.path||"",e.paths=e.filePath.split("/");let z=e.repoId;oe(function(J){var Q=r.resolve();for(let te=0;te0?e.paths.slice(0,te).join("/"):"";Q=Q.then(function(){return e.getFiles(X)}).then(function(){if(e.type==="error")return r.reject("error")})}Q.then(function(){g||z!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(C(),ie()))})})}ve()},fl=function(e,t,o,i,s){async function r(f){t.get(`/api/pr/${e.pullRequestId}/options`).then(g=>{if(e.options=g.data,e.options.url){window.location=e.options.url;return}f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}async function a(f){t.get(`/api/pr/${e.pullRequestId}/content`).then(g=>{e.details=g.data,e.tabState={active:g.data.diff?"diff":"comments"},f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}function c(){e.pullRequestId=i.pullRequestId,e.type="loading",r(f=>{a()})}c()},hl=function(e,t,o,i,s){async function r(f){t.get(`/api/gist/${e.gistId}/options`).then(g=>{if(e.options=g.data,e.options.url){window.location=e.options.url;return}f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}async function a(f){t.get(`/api/gist/${e.gistId}/content`).then(g=>{e.details=g.data;let y=g.data&&g.data.files&&g.data.files.length;e.tabState={active:y?"files":"comments"},f&&f(g.data)},g=>{e.type="error",e.content=g.data.error})}function c(){e.gistId=i.gistId,e.type="loading",r(()=>{a()})}c()},ml=function(e,t,o){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.loading=!0,e.error="",e.search="";let i="conferences.filterPrefs",s={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},r=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},s.filters.status,r.filters&&r.filters.status||{})},e.orderBy=r.orderBy||s.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(a){if(!a.removing&&confirm(`Are you sure that you want to remove the conference ${a.name}? All the repositories linked to this conference will expire.`)){a.removing=!0;let c=Fe({title:`Removing ${a.name}...`,date:new Date,body:`The conference ${a.name} is going to be removed.`});e.addToast(c),t.delete(`/api/conferences/${a.conferenceID}`).then(()=>{c.title=`${a.name} is removed.`,c.body=`The conference ${a.name} is removed.`,e.loadConferences()}).catch(()=>{c.title="Unable to remove conference",c.body="Please try again. The conference has not been removed."}).finally(()=>{a.removing=!1})}},e.loadConferences=()=>(e.loading=!0,e.error="",t.get("/api/conferences/").then(a=>{e.conferences=a.data||[]},a=>{e.error="Unable to load your conferences. Please try again."}).finally(()=>{e.loading=!1})),e.loadConferences(),e.conferenceFilter=a=>{if(e.filters.status[a.status]==!1)return!1;let c=e.search.trim().toLowerCase();return!!(!c||(a.name||"").toLowerCase().includes(c)||(a.conferenceID||"").toLowerCase().includes(c))}},vi=function(e,t,o,i){e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.plans=[],e.editionMode=!1,e.saving=!1,e.error="";function s(){return t.get("/api/conferences/"+i.conferenceId).then(y=>{e.options={...e.options,...y.data,billing:y.data.billing||{}},e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}i.conferenceId&&(e.editionMode=!0,s());function r(){t.get("/api/conferences/plans").then(y=>{e.plans=y.data,e.plan=e.plans.filter(b=>b.id==e.options.plan.planID)[0]})}r();let a=new Date;a.setDate(1),a.setMonth(a.getMonth()+1);let c=new Date(a);c.setTime(a.getTime()+179*864e5),e.options={billing:{},startDate:a,endDate:c,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(y=>y.id==e.options.plan.planID)[0]});function f(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function g(y){switch(y){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){if(e.saving)return;e.saving=!0,e.error="";let y=JSON.parse(JSON.stringify(e.options)),b=Fe({title:`Creating ${y.name}...`,date:new Date,body:`The conference ${y.conferenceID} is in creation.`});e.editionMode&&(b.title=`Updating ${y.name}...`,b.body=`The conference '${y.conferenceID}' is updating.`),e.addToast(b),f(),t.post("/api/conferences/"+(e.editionMode?y.conferenceID:""),y).then(()=>{e.editionMode?(b.title=`${y.name} updated`,b.body=`The conference '${y.conferenceID}' is updated.`):(b.title=`${y.name} created`,b.body=`The conference '${y.conferenceID}' is created.`),o.url("/conference/"+y.conferenceID)},h=>{g(h.data?.error),e.error="Unable to save the conference. Please correct any highlighted fields and try again.",e.removeToast(b)}).finally(()=>{e.saving=!1})}},vl=function(e,t,o,i){as(e,t,()=>s(),{confirmedMessage:"Payment status checked. Your conference is ready for submissions once payment is confirmed."}),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,expired:!1,removed:!1}},e.orderBy="-anonymizeDate",e.repoFiler=r=>{if(e.filters.status[r.status]==!1)return!1;let a=e.search.trim().toLowerCase();return!!(!a||(r.source?.fullName||"").toLowerCase().includes(a)||(r.repoId||"").toLowerCase().includes(a))};function s(){t.get("/api/conferences/"+i.conferenceId).then(r=>{e.conference=r.data})}s()},gl=function(e,t){e.notificationEmail="",e.emailSaved=!1,e.saveNotificationEmail=async()=>{e.busy=!0,e.emailSaved=!1,e.connectionError="";try{let o=await t.post("/github/connections/email",{email:e.notificationEmail},{headers:{"X-CSRF-Token":e.connections.csrf}});e.notificationEmail=o.data.notificationEmail,e.user&&(e.user.notificationEmail=o.data.notificationEmail),e.emailSaved=!0}catch(o){e.connectionError=o.data?.error||"Unable to save email address."}finally{e.busy=!1}},e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(o=>{e.connections=o.data,e.notificationEmail=o.data.notificationEmail||""}).catch(o=>{e.connectionError=o.data?.error||"Unable to load connections."}),e.changeConnection=async(o,i,s)=>{e.busy=!0,e.connectionError="";try{let r=await t.post("/github/connections/migrate",{type:o.type,id:o.id,connection:i,preview:s},{headers:{"X-CSRF-Token":e.connections.csrf}});s?o.eligible=r.data.eligible:await e.loadConnections()}catch(r){e.connectionError=r.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(o){e.connectionError=o.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()},yl=function(e,t){e.accountRecovery=!1,t.get("/github/account-recovery").then(o=>{e.accountRecovery=o.data.required}).catch(()=>{})};var bl=function(e,t,o){let i=ut(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let r=S=>{if(S.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){S.preventDefault();let m=document.querySelector('.admin-filter-toolbar input[type="search"]');m&&m.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=S=>{S==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[S]="",e.query.page=1},e.chips=[];let a=()=>{let S=[];e.query.owner&&S.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&S.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=S};e.showStatusMessage=S=>{let m=S.statusMessage||"(no message)";window.prompt(`Status message for ${S.repoId} (${S.status}):`,m)},e.fetchGithubInfo=S=>{let m=window.open("","_blank");m&&m.document.write("
Loading GitHub info for "+S.repoId+"...
"),t.get("/api/admin/repos/"+S.repoId+"/github").then(C=>{m&&(m.document.open(),m.document.write('
'+JSON.stringify(C.data,null,2).replace(/[<>]/g,N=>N==="<"?"<":">")+"
"),m.document.close())},C=>{let N=C&&C.data?JSON.stringify(C.data,null,2):String(C);m&&(m.document.body.innerHTML='
'+N+"
")})},e.statusCountFor=S=>{let m=(e.statusCounts||[]).find(C=>C._id===S);return m?m.count:0},e.statusStorageFor=S=>{let m=(e.statusCounts||[]).find(C=>C._id===S);return m?m.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=S=>{e.query.sort===S?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=S,e.query.direction="desc"),e.query.page=1},e.sortIcon=S=>e.query.sort===S?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.repos.filterPrefs",f={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},g=loadFilterPrefs(c)||{};e.query=Object.assign({},f,g,{page:1,search:""});let y=o.search();y.owner&&(e.query.owner=y.owner),y.conference&&(e.query.conference=y.conference),y.search&&(e.query.search=y.search);let b="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let S=window.prompt("Preset name:");if(!S)return;let m=Object.assign({},e.query);delete m.page,e.presets=(e.presets||[]).filter(C=>C.name!==S),e.presets.push({name:S,query:m}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=S=>{Object.assign(e.query,S.query,{page:1})},e.deletePreset=S=>{e.presets=(e.presets||[]).filter(m=>m.name!==S.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(S=>{e.selected[S.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(S=>e.selected[S.repoId]),e.bulkRefresh=()=>{let S=e.selectedRepos();S.length&&confirm(`Force refresh ${S.length} repositories?`)&&S.forEach(m=>e.updateRepository(m))},e.bulkRemoveCache=()=>{let S=e.selectedRepos();S.length&&confirm(`Purge cache for ${S.length} repositories?`)&&S.forEach(m=>e.removeCache(m))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let S=new URLSearchParams(Object.entries(e.query).filter(([,m])=>m!==""&&m!==!1&&m!=null));S.set("format","csv"),S.set("limit","10000"),window.open("/api/admin/repos?"+S.toString(),"_blank")},e.removeCache=S=>{confirm("Remove cached files for "+S.repoId+"?")&&t.delete("/api/admin/repos/"+S.repoId).then(()=>h(),m=>console.error(m))},e.removeRepository=S=>{confirm("Remove repository "+S.repoId+"?")&&t.delete("/api/repo/"+S.repoId+"/").then(()=>h(),m=>console.error(m))},e.updateRepository=S=>{let m=Fe({title:`Refreshing ${S.repoId}...`,date:new Date,body:`The repository ${S.repoId} is going to be refreshed.`});e.toasts.push(m),t.post(`/api/repo/${S.repoId}/refresh`).then(C=>{C.data.status=="ready"?m.title=`${S.repoId} is refreshed.`:m.title=`Refreshing of ${S.repoId}.`},C=>{m.title=`Error during the refresh of ${S.repoId}.`,m.body=C.body})},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(S=>{e.total=S.data.total,e.totalPage=Math.ceil(S.data.total/e.query.limit),e.repositories=S.data.results,e.statusCounts=S.data.statusCounts||[],e.totalSize=S.data.totalSize||0,e.allSelected=!1},S=>{e.fetchError=S&&S.data&&S.data.error||"Failed to load repositories",console.error(S)})}h();let E=null;e.watch("query",()=>{i.timeout.cancel(E),E=i.timeout(h,500);let{page:S,search:m,...C}=e.query;saveFilterPrefs(c,C),a()},!0),a()},wl=function(e,t,o){let i=ut(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let r=h=>{if(h.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){h.preventDefault();let E=document.querySelector('.admin-filter-toolbar input[type="search"]');E&&E.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=h=>{h==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[h]="",e.query.page=1},e.chips=[];let a=()=>{let h=[];e.query.role&&h.push({key:"role",label:"Role",value:e.query.role}),e.chips=h};e.statusCountFor=h=>{let E=(e.statusCounts||[]).find(S=>S._id===h);return E?E.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.query.page=1},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.users.filterPrefs",f={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},g=loadFilterPrefs(c)||{};e.query=Object.assign({},f,g,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(h=>{e.selected[h.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(h=>e.selected[h.username]),e.banUser=h=>{confirm(`Ban user ${h.username}?`)&&t.post(`/api/admin/users/${h.username}/ban`).then(y,E=>console.error(E))},e.activateUser=h=>{t.post(`/api/admin/users/${h.username}/activate`).then(y,E=>console.error(E))},e.bulkBan=()=>{let h=e.selectedUsers();h.length&&confirm(`Ban ${h.length} users?`)&&h.forEach(E=>e.banUser(E))},e.exportCsv=()=>{let h=new URLSearchParams(Object.entries(e.query).filter(([,E])=>E!==""&&E!==!1&&E!=null));h.set("format","csv"),h.set("limit","10000"),window.open("/api/admin/users?"+h.toString(),"_blank")},e.fetchError=null;function y(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(h=>{e.total=h.data.total,e.totalPage=Math.ceil(h.data.total/e.query.limit),e.users=h.data.results,e.statusCounts=h.data.statusCounts||[],e.allSelected=!1},h=>{e.fetchError=h&&h.data&&h.data.error||"Failed to load users",console.error(h)})}y();let b=null;e.watch("query",()=>{i.timeout.cancel(b),b=i.timeout(y,500);let{page:h,search:E,...S}=e.query;saveFilterPrefs(c,S),a()},!0),a()},kl=function(e,t,o,i){let s=ut();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let r="admin.user.filterPrefs",a={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},c=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},a.filters.status,c.filters&&c.filters.status||{})},e.query={sort:c.sort||a.sort,direction:c.direction||a.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=h=>(e.repositories||[]).filter(E=>E.status===h).length,e.repoFiler=h=>e.filters.status[h.status]==!1?!1:!!(e.search.trim().length==0||h.source.fullName.indexOf(e.search)>-1||h.repoId.indexOf(e.search)>-1||h.statusMessage&&h.statusMessage.indexOf(e.search)>-1||h.conference&&h.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(h=>{e.selected[h.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(h=>e.selected[h.repoId]),e.bulkRefresh=()=>{let h=e.selectedRepos();h.length&&confirm(`Force refresh ${h.length} repositories?`)&&h.forEach(E=>e.updateRepository(E))},e.bulkRemoveCache=()=>{let h=e.selectedRepos();h.length&&confirm(`Purge cache for ${h.length} repositories?`)&&h.forEach(E=>e.removeCache(E))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let h=e.filteredRepositories||e.repositories,S=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),m=h.map(A=>[A.repoId,A.status,A.statusMessage||"",A.pageView||0,A.anonymizeDate||"",A.source&&A.source.fullName||"",A.conference||"",A.size&&A.size.storage||0].map(M=>{let U=String(M??"");return/[",\n\r]/.test(U)?'"'+U.replace(/"/g,'""')+'"':U}).join(",")),C=new Blob([S+` `+m.join(` -`)],{type:"text/csv"}),N=document.createElement("a");N.href=URL.createObjectURL(C),N.download=i.username+"-repositories.csv",N.click()},e.showStatusMessage=h=>{let E=h.statusMessage||"(no message)";window.prompt(`Status message for ${h.repoId} (${h.status}):`,E)},e.fetchGithubInfo=h=>{let E=window.open("","_blank");E&&E.document.write("
Loading GitHub info for "+h.repoId+"...
"),t.get("/api/admin/repos/"+h.repoId+"/github").then(_=>{E&&(E.document.open(),E.document.write('
'+JSON.stringify(_.data,null,2).replace(/[<>]/g,m=>m==="<"?"<":">")+"
"),E.document.close())},_=>{let m=_&&_.data?JSON.stringify(_.data,null,2):String(_);E&&(E.document.body.innerHTML='
'+m+"
")})};function f(h){t.get("/api/admin/users/"+h+"/repos",{}).then(E=>{e.repositories=E.data},E=>{console.error(E)})}function g(h){t.get("/api/admin/users/"+h,{}).then(E=>{e.userInfo=E.data},E=>{console.error(E)})}g(i.username),f(i.username),e.banUser=()=>{confirm(`Ban user ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/ban`).then(()=>g(i.username),h=>console.error(h))},e.activateUser=()=>{t.post(`/api/admin/users/${i.username}/activate`).then(()=>g(i.username),h=>console.error(h))},e.promoteUser=()=>{confirm(`Promote ${i.username} to admin?`)&&t.post(`/api/admin/users/${i.username}/promote`).then(()=>g(i.username),h=>console.error(h))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/demote`).then(()=>g(i.username),h=>console.error(h))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function y(){t.get("/api/admin/tokens").then(h=>{e.tokens=h.data||[]},h=>{h.status!==401&&h.status!==403&&console.error(h)})}y(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(h=>{e.tokenForm.plaintext=h.data.token,e.tokenForm.name="",y()},h=>console.error(h))},e.revokeToken=h=>{confirm(`Revoke token "${h.name}"?`)&&t.delete("/api/admin/tokens/"+h.id).then(()=>y(),E=>console.error(E))},e.removeCache=h=>{confirm("Remove cached files for "+h.repoId+"?")&&t.delete("/api/admin/repos/"+h.repoId).then(()=>f(i.username),E=>console.error(E))},e.removeRepository=h=>{confirm("Remove repository "+h.repoId+"?")&&t.delete("/api/repo/"+h.repoId+"/").then(()=>f(i.username),E=>console.error(E))},e.updateRepository=h=>{let E=Fe({title:`Refreshing ${h.repoId}...`,date:new Date,body:`The repository ${h.repoId} is going to be refreshed.`});e.toasts.push(E),t.post(`/api/repo/${h.repoId}/refresh`).then(_=>{_.data.status=="ready"?E.title=`${h.repoId} is refreshed.`:E.title=`Refreshing of ${h.repoId}.`},_=>{E.title=`Error during the refresh of ${h.repoId}.`,E.body=_.body})},e.getGitHubRepositories=h=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(E=>{e.userInfo.repositories=E.data})};let b=null;e.watch("query",()=>{s.timeout.cancel(b),b=s.timeout(()=>{f(i.username)},500)},!0)},El=function(e,t,o){let i=ut(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let r=_=>{if(_.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){_.preventDefault();let m=document.querySelector('.admin-filter-toolbar input[type="search"]');m&&m.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=_=>{_==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[_]="",e.query.page=1},e.chips=[];let a=()=>{let _=[];(e.query.dateFrom||e.query.dateTo)&&_.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=_};e.statusCountFor=_=>{let m=(e.statusCounts||[]).find(C=>C._id===_);return m?m.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=_=>{e.query.sort===_?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=_,e.query.direction="desc"),e.query.page=1},e.sortIcon=_=>e.query.sort===_?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.conferences.filterPrefs",f={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},g=loadFilterPrefs(c)||{};e.query=Object.assign({},f,g,{page:1,search:""});let y=o.search();y.search&&(e.query.search=y.search);let b="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let _=window.prompt("Preset name:");if(!_)return;let m=Object.assign({},e.query);delete m.page,e.presets=(e.presets||[]).filter(C=>C.name!==_),e.presets.push({name:_,query:m}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=_=>{Object.assign(e.query,_.query,{page:1})},e.deletePreset=_=>{e.presets=(e.presets||[]).filter(m=>m.name!==_.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.removeConference=_=>{confirm("Remove conference "+_.conferenceID+"?")&&t.delete("/api/admin/conferences/"+_.conferenceID).then(()=>h(),m=>console.error(m))},e.exportCsv=()=>{let _=new URLSearchParams(Object.entries(e.query).filter(([,m])=>m!==""&&m!==!1&&m!=null));_.set("format","csv"),_.set("limit","10000"),window.open("/api/admin/conferences?"+_.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(_=>{e.total=_.data.total,e.totalPage=Math.ceil(_.data.total/e.query.limit),e.conferences=_.data.results,e.statusCounts=_.data.statusCounts||[]},_=>{e.fetchError=_&&_.data&&_.data.error||"Failed to load conferences",console.error(_)})}h();let E=null;e.watch("query",()=>{i.timeout.cancel(E),E=i.timeout(h,500);let{page:_,search:m,...C}=e.query;saveFilterPrefs(c,C),a()},!0),a()},Cl=function(e,t,o,i,s){let r=ut();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(m=>e.stateFilter[m._state]),e.jobProgressPct=m=>m&&m.progress&&typeof m.progress=="object"&&typeof m.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(m.progress.percent))):typeof m.progress=="number"?Math.max(0,Math.min(100,Math.round(m.progress))):null,e.jobDuration=m=>{if(!m.processedOn)return"-";let N=(m.finishedOn||Date.now())-m.processedOn;return N<1e3?N+"ms":(N/1e3).toFixed(1)+"s"},e.metricsPoints=[],e.selectQueue=m=>{e.selectedQueue=m,a(),c()},e.setRange=m=>{e.range=m,c()};function a(){let m={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:m}).then(C=>{e.queueList=C.data.queues||[],e.jobs=C.data.jobs||[],e.selectedStats=e.queueList.find(N=>N.key===e.selectedQueue)||e.queueList[0]||null},C=>console.error(C))}function c(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(m=>{e.metricsPoints=m.data.points||[],s(h,0)},m=>console.error(m))}a(),c();let f=i(()=>{e.query.autoRefresh&&(a(),c())},15e3);e.on("dispose",()=>i.cancel(f)),e.refreshNow=function(){a(),c()};function g(m){let C=m&&m.data&&(m.data.message||m.data.error)||"Request failed";e.actionError=C,s(()=>{e.actionError=null},5e3),console.error(m)}e.actionError=null,e.removeJob=m=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${m.id}`).then(a,g)},e.retryJob=m=>{t.post(`/api/admin/queue/${e.selectedQueue}/${m.id}`).then(a,g)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(a,m=>console.error(m))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(a,m=>console.error(m))},e.togglePause=()=>{let m=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${m}`).then(a,C=>console.error(C))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(a,m=>console.error(m))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(a,m=>console.error(m))};let y=null;e.watch("query.search",()=>{r.timeout.cancel(y),y=r.timeout(a,350)}),e.expanded={},e.toggleJob=m=>{e.expanded[m.id]=!e.expanded[m.id]},e.humanTime=m=>{if(!m)return"";let C=new Date(m);return C.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+C.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=m=>{if(!m)return"";var C=Math.max(0,Math.ceil((m-Date.now())/1e3));if(C<=0)return"resuming soon";var N=Math.floor(C/60),A=C%60;return"in "+(N>0?N+"m "+A+"s":A+"s")};function b(m){if(m<=0)return{ticks:[0],niceMax:1};let C=Math.pow(10,Math.floor(Math.log10(m))),N=C;m/N<2?N=C/2:m/N>5&&(N=C*2);let A=Math.ceil(m/N)*N,M=[];for(let U=0;U<=A;U+=N)M.push(U);return{ticks:M,niceMax:A}}function h(){var m=document.getElementById("q-throughput-chart");if(!m)return;var C=m.getContext("2d"),N=window.devicePixelRatio||1,A=m.parentElement.getBoundingClientRect(),M=44,U=50,q=20,B=A.width-40,oe=180,ee=B-M-U,R=oe-q;m.width=B*N,m.height=oe*N,m.style.width=B+"px",m.style.height=oe+"px",C.setTransform(N,0,0,N,0,0);var j=document.body.classList.contains("dark-mode"),ie="#8A857C",ve=j?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",z=j?"#A7B2FF":"#3B4AD6",J=j?"rgba(167,178,255,0.12)":"rgba(59,74,214,0.08)",Q=j?"#F08A82":"#B42318",te=j?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",X=j?"#F5C842":"#B8860B",re=e.metricsPoints||[];if(re.length===0){C.fillStyle=ie,C.font="12px monospace",C.textAlign="center",C.fillText("No metrics data yet",B/2,oe/2),E=null;return}var Ee=re.map(function(O){return O.completed}),Te=re.map(function(O){return O.failed}),Ae=re.map(function(O){return O.avgMs}),Se=re.length,_e=ee/(Se-1||1),ze=Math.max(1,Math.max.apply(null,Ee),Math.max.apply(null,Te)),Ue=b(ze),Ie=Math.max.apply(null,Ae),H=Ie>0?b(Ie):{ticks:[0],niceMax:1},se=function(O){return R-O/Ue.niceMax*(R-10)},Y=function(O){return R-O/H.niceMax*(R-10)},Z=function(O){return M+O*_e};C.textAlign="right",C.textBaseline="middle",C.font="10px monospace",Ue.ticks.forEach(function(O){var I=se(O);C.strokeStyle=ve,C.lineWidth=1,C.beginPath(),C.moveTo(M,I),C.lineTo(B-U,I),C.stroke(),C.fillStyle=ie,C.fillText(O>=1e3?(O/1e3).toFixed(1)+"k":String(O),M-6,I)}),Ie>0&&(C.textAlign="left",H.ticks.forEach(function(O){var I=Y(O);C.fillStyle=X,C.fillText(O>=1e3?(O/1e3).toFixed(1)+"s":O+"ms",B-U+6,I)}));var ue=Date.now(),be=Math.min(6,Se);C.textAlign="center",C.textBaseline="top";for(var k=0;k0&&(C.beginPath(),Ae.forEach(function(O,I){var F=Z(I),L=Y(O);if(I===0)C.moveTo(F,L);else{var ae=(Z(I-1)+F)/2;C.bezierCurveTo(ae,Y(Ae[I-1]),ae,L,F,L)}}),C.strokeStyle=X,C.lineWidth=1,C.setLineDash([4,3]),C.stroke(),C.setLineDash([])),E={pts:re,maxLen:Se,marginLeft:M,step:_e,totalW:B,toX:Z}}var E=null;function _(){var m=document.getElementById("q-throughput-chart");if(!(!m||m._tipBound)){m._tipBound=!0;var C=document.getElementById("q-chart-tooltip"),N=document.getElementById("q-chart-crosshair");m.addEventListener("mousemove",function(A){if(!(!E||!C||!N)){var M=E,U=m.getBoundingClientRect(),q=A.clientX-U.left,B=Math.round((q-M.marginLeft)/M.step);if(B<0||B>=M.maxLen){C.style.display="none",N.style.display="none";return}var oe=M.pts[B],ee=Date.now(),R=Math.round((ee-oe.ts)/6e4),j;if(R<=0)j="now";else if(R<60)j=R+"m ago";else if(R<1440){var ie=Math.floor(R/60),ve=R%60;j=ie+"h"+(ve?" "+ve+"m":"")+" ago"}else j=Math.round(R/1440)+"d ago";var z='
'+j+'
● completed: '+oe.completed+'/min
● failed: '+oe.failed+"/min
";if(oe.avgMs>0){var J=oe.avgMs>=1e3?(oe.avgMs/1e3).toFixed(1)+"s":oe.avgMs+"ms";z+='
● avg time: '+J+"
"}C.innerHTML=z;var Q=M.toX(B),te=C.offsetWidth,X=Q+10;X+te>M.totalW&&(X=Q-te-10),C.style.display="block",C.style.left=X+"px",C.style.top="8px",N.style.display="block",N.style.left=Q+"px"}}),m.addEventListener("mouseleave",function(){C&&(C.style.display="none"),N&&(N.style.display="none")})}}e.watch("metricsPoints",function(){s(_,50)})},Sl=function(e,t,o,i){let s=ut();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=N=>{if(!N)return"";let A=new Date(N).getTime();if(isNaN(A))return N;let M=Math.max(0,Date.now()-A),U=Math.floor(M/1e3);if(U<5)return"just now";if(U<60)return`${U}s ago`;let q=Math.floor(U/60);if(q<60)return`${q}m ago`;let B=Math.floor(q/60);if(B<24)return`${B}h ago`;let oe=Math.floor(B/24);return oe<7?`${oe}d ago`:new Date(N).toLocaleDateString()},e.absTime=N=>{if(!N)return"";let A=new Date(N);return isNaN(A.getTime())?N:A.toLocaleString()},e.absTimeShort=N=>{if(!N)return"";let A=new Date(N);return isNaN(A.getTime())?N:A.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let r=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function a(N,A){let M=N&&(N.httpStatus||N.status)||null;if(typeof M=="number"){if(M>=500)return"error";if(M===401||M===403||M===404)return"info";if(M>=400)return"warn"}return A==="error"?"error":A==="warn"?"warn":"info"}function c(N){let A=(N.raw||[]).find(B=>B&&typeof B=="object"&&!Array.isArray(B));if(A){A.message&&r.test(A.message)?(N.displayMessage=A.message,N.displayContext=N.message):A.code&&r.test(String(A.code))?(N.displayMessage=String(A.code),N.displayContext=N.message):A.name&&A.name!=="AnonymousError"&&A.name!=="Error"?(N.displayMessage=A.name,N.displayContext=A.message||N.message):N.displayMessage=N.message,N._status=A.httpStatus||A.status||null,N._url=A.url||null,N._method=A.method||null,N._repoId=A.repoId||A.detail||null,N._detail=A.detail&&A.detail!==N._repoId?A.detail:null;let B=typeof A.stack=="string"?A.stack:null;for(var M=[A.cause,A.err].filter(Boolean),U=0;!B&&U{R==null||R===""||M.push([ee,R])};U("name",A&&A.name),U("code",N.displayMessage||A&&A.message),N._bucket&&U("kind",N._bucket),U("httpStatus",A&&A.httpStatus),A&&A.status&&!A.httpStatus&&U("status",A.status),U("module",N.module);let q=A&&A.detail;if(typeof q=="string"){let ee=q.trim();if(ee[0]==="{"||ee[0]==="[")try{q=JSON.parse(q)}catch{}}if(U("detail",q),U("repoId",A&&A.repoId),U("filePath",A&&A.filePath),U("upstreamStatus",A&&A.upstreamStatus),U("upstreamBody",A&&A.upstreamBody),U("url",N._url),U("err",A&&A.err),U("cause",A&&!A.err&&A.cause),U("ts",N.ts),!M.length)return JSON.stringify(N,null,2);let B=M.reduce((ee,R)=>Math.max(ee,R[0].length),0),oe=["{"];return M.forEach(([ee,R],j)=>{let ve=` ${`"${ee}":`.padEnd(B+3," ")} `,z=j{let E=h.statusMessage||"(no message)";window.prompt(`Status message for ${h.repoId} (${h.status}):`,E)},e.fetchGithubInfo=h=>{let E=window.open("","_blank");E&&E.document.write("
Loading GitHub info for "+h.repoId+"...
"),t.get("/api/admin/repos/"+h.repoId+"/github").then(S=>{E&&(E.document.open(),E.document.write('
'+JSON.stringify(S.data,null,2).replace(/[<>]/g,m=>m==="<"?"<":">")+"
"),E.document.close())},S=>{let m=S&&S.data?JSON.stringify(S.data,null,2):String(S);E&&(E.document.body.innerHTML='
'+m+"
")})};function f(h){t.get("/api/admin/users/"+h+"/repos",{}).then(E=>{e.repositories=E.data},E=>{console.error(E)})}function g(h){t.get("/api/admin/users/"+h,{}).then(E=>{e.userInfo=E.data},E=>{console.error(E)})}g(i.username),f(i.username),e.banUser=()=>{confirm(`Ban user ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/ban`).then(()=>g(i.username),h=>console.error(h))},e.activateUser=()=>{t.post(`/api/admin/users/${i.username}/activate`).then(()=>g(i.username),h=>console.error(h))},e.promoteUser=()=>{confirm(`Promote ${i.username} to admin?`)&&t.post(`/api/admin/users/${i.username}/promote`).then(()=>g(i.username),h=>console.error(h))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/demote`).then(()=>g(i.username),h=>console.error(h))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function y(){t.get("/api/admin/tokens").then(h=>{e.tokens=h.data||[]},h=>{h.status!==401&&h.status!==403&&console.error(h)})}y(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(h=>{e.tokenForm.plaintext=h.data.token,e.tokenForm.name="",y()},h=>console.error(h))},e.revokeToken=h=>{confirm(`Revoke token "${h.name}"?`)&&t.delete("/api/admin/tokens/"+h.id).then(()=>y(),E=>console.error(E))},e.removeCache=h=>{confirm("Remove cached files for "+h.repoId+"?")&&t.delete("/api/admin/repos/"+h.repoId).then(()=>f(i.username),E=>console.error(E))},e.removeRepository=h=>{confirm("Remove repository "+h.repoId+"?")&&t.delete("/api/repo/"+h.repoId+"/").then(()=>f(i.username),E=>console.error(E))},e.updateRepository=h=>{let E=Fe({title:`Refreshing ${h.repoId}...`,date:new Date,body:`The repository ${h.repoId} is going to be refreshed.`});e.toasts.push(E),t.post(`/api/repo/${h.repoId}/refresh`).then(S=>{S.data.status=="ready"?E.title=`${h.repoId} is refreshed.`:E.title=`Refreshing of ${h.repoId}.`},S=>{E.title=`Error during the refresh of ${h.repoId}.`,E.body=S.body})},e.getGitHubRepositories=h=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(E=>{e.userInfo.repositories=E.data})};let b=null;e.watch("query",()=>{s.timeout.cancel(b),b=s.timeout(()=>{f(i.username)},500)},!0)},El=function(e,t,o){let i=ut(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let r=S=>{if(S.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){S.preventDefault();let m=document.querySelector('.admin-filter-toolbar input[type="search"]');m&&m.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=S=>{S==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[S]="",e.query.page=1},e.chips=[];let a=()=>{let S=[];(e.query.dateFrom||e.query.dateTo)&&S.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=S};e.statusCountFor=S=>{let m=(e.statusCounts||[]).find(C=>C._id===S);return m?m.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=S=>{e.query.sort===S?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=S,e.query.direction="desc"),e.query.page=1},e.sortIcon=S=>e.query.sort===S?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.conferences.filterPrefs",f={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},g=loadFilterPrefs(c)||{};e.query=Object.assign({},f,g,{page:1,search:""});let y=o.search();y.search&&(e.query.search=y.search);let b="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let S=window.prompt("Preset name:");if(!S)return;let m=Object.assign({},e.query);delete m.page,e.presets=(e.presets||[]).filter(C=>C.name!==S),e.presets.push({name:S,query:m}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=S=>{Object.assign(e.query,S.query,{page:1})},e.deletePreset=S=>{e.presets=(e.presets||[]).filter(m=>m.name!==S.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.removeConference=S=>{confirm("Remove conference "+S.conferenceID+"?")&&t.delete("/api/admin/conferences/"+S.conferenceID).then(()=>h(),m=>console.error(m))},e.exportCsv=()=>{let S=new URLSearchParams(Object.entries(e.query).filter(([,m])=>m!==""&&m!==!1&&m!=null));S.set("format","csv"),S.set("limit","10000"),window.open("/api/admin/conferences?"+S.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(S=>{e.total=S.data.total,e.totalPage=Math.ceil(S.data.total/e.query.limit),e.conferences=S.data.results,e.statusCounts=S.data.statusCounts||[]},S=>{e.fetchError=S&&S.data&&S.data.error||"Failed to load conferences",console.error(S)})}h();let E=null;e.watch("query",()=>{i.timeout.cancel(E),E=i.timeout(h,500);let{page:S,search:m,...C}=e.query;saveFilterPrefs(c,C),a()},!0),a()},Cl=function(e,t,o,i,s){let r=ut();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(m=>e.stateFilter[m._state]),e.jobProgressPct=m=>m&&m.progress&&typeof m.progress=="object"&&typeof m.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(m.progress.percent))):typeof m.progress=="number"?Math.max(0,Math.min(100,Math.round(m.progress))):null,e.jobDuration=m=>{if(!m.processedOn)return"-";let N=(m.finishedOn||Date.now())-m.processedOn;return N<1e3?N+"ms":(N/1e3).toFixed(1)+"s"},e.metricsPoints=[],e.selectQueue=m=>{e.selectedQueue=m,a(),c()},e.setRange=m=>{e.range=m,c()};function a(){let m={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:m}).then(C=>{e.queueList=C.data.queues||[],e.jobs=C.data.jobs||[],e.selectedStats=e.queueList.find(N=>N.key===e.selectedQueue)||e.queueList[0]||null},C=>console.error(C))}function c(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(m=>{e.metricsPoints=m.data.points||[],s(h,0)},m=>console.error(m))}a(),c();let f=i(()=>{e.query.autoRefresh&&(a(),c())},15e3);e.on("dispose",()=>i.cancel(f)),e.refreshNow=function(){a(),c()};function g(m){let C=m&&m.data&&(m.data.message||m.data.error)||"Request failed";e.actionError=C,s(()=>{e.actionError=null},5e3),console.error(m)}e.actionError=null,e.removeJob=m=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${m.id}`).then(a,g)},e.retryJob=m=>{t.post(`/api/admin/queue/${e.selectedQueue}/${m.id}`).then(a,g)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(a,m=>console.error(m))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(a,m=>console.error(m))},e.togglePause=()=>{let m=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${m}`).then(a,C=>console.error(C))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(a,m=>console.error(m))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(a,m=>console.error(m))};let y=null;e.watch("query.search",()=>{r.timeout.cancel(y),y=r.timeout(a,350)}),e.expanded={},e.toggleJob=m=>{e.expanded[m.id]=!e.expanded[m.id]},e.humanTime=m=>{if(!m)return"";let C=new Date(m);return C.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+C.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=m=>{if(!m)return"";var C=Math.max(0,Math.ceil((m-Date.now())/1e3));if(C<=0)return"resuming soon";var N=Math.floor(C/60),A=C%60;return"in "+(N>0?N+"m "+A+"s":A+"s")};function b(m){if(m<=0)return{ticks:[0],niceMax:1};let C=Math.pow(10,Math.floor(Math.log10(m))),N=C;m/N<2?N=C/2:m/N>5&&(N=C*2);let A=Math.ceil(m/N)*N,M=[];for(let U=0;U<=A;U+=N)M.push(U);return{ticks:M,niceMax:A}}function h(){var m=document.getElementById("q-throughput-chart");if(!m)return;var C=m.getContext("2d"),N=window.devicePixelRatio||1,A=m.parentElement.getBoundingClientRect(),M=44,U=50,q=20,B=A.width-40,oe=180,ee=B-M-U,R=oe-q;m.width=B*N,m.height=oe*N,m.style.width=B+"px",m.style.height=oe+"px",C.setTransform(N,0,0,N,0,0);var j=document.body.classList.contains("dark-mode"),ie="#8A857C",ve=j?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",z=j?"#A7B2FF":"#3B4AD6",J=j?"rgba(167,178,255,0.12)":"rgba(59,74,214,0.08)",Q=j?"#F08A82":"#B42318",te=j?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",X=j?"#F5C842":"#B8860B",re=e.metricsPoints||[];if(re.length===0){C.fillStyle=ie,C.font="12px monospace",C.textAlign="center",C.fillText("No metrics data yet",B/2,oe/2),E=null;return}var Ee=re.map(function(O){return O.completed}),Te=re.map(function(O){return O.failed}),Ae=re.map(function(O){return O.avgMs}),Se=re.length,_e=ee/(Se-1||1),ze=Math.max(1,Math.max.apply(null,Ee),Math.max.apply(null,Te)),Ue=b(ze),Ie=Math.max.apply(null,Ae),H=Ie>0?b(Ie):{ticks:[0],niceMax:1},se=function(O){return R-O/Ue.niceMax*(R-10)},Y=function(O){return R-O/H.niceMax*(R-10)},Z=function(O){return M+O*_e};C.textAlign="right",C.textBaseline="middle",C.font="10px monospace",Ue.ticks.forEach(function(O){var I=se(O);C.strokeStyle=ve,C.lineWidth=1,C.beginPath(),C.moveTo(M,I),C.lineTo(B-U,I),C.stroke(),C.fillStyle=ie,C.fillText(O>=1e3?(O/1e3).toFixed(1)+"k":String(O),M-6,I)}),Ie>0&&(C.textAlign="left",H.ticks.forEach(function(O){var I=Y(O);C.fillStyle=X,C.fillText(O>=1e3?(O/1e3).toFixed(1)+"s":O+"ms",B-U+6,I)}));var ue=Date.now(),be=Math.min(6,Se);C.textAlign="center",C.textBaseline="top";for(var k=0;k0&&(C.beginPath(),Ae.forEach(function(O,I){var F=Z(I),L=Y(O);if(I===0)C.moveTo(F,L);else{var ae=(Z(I-1)+F)/2;C.bezierCurveTo(ae,Y(Ae[I-1]),ae,L,F,L)}}),C.strokeStyle=X,C.lineWidth=1,C.setLineDash([4,3]),C.stroke(),C.setLineDash([])),E={pts:re,maxLen:Se,marginLeft:M,step:_e,totalW:B,toX:Z}}var E=null;function S(){var m=document.getElementById("q-throughput-chart");if(!(!m||m._tipBound)){m._tipBound=!0;var C=document.getElementById("q-chart-tooltip"),N=document.getElementById("q-chart-crosshair");m.addEventListener("mousemove",function(A){if(!(!E||!C||!N)){var M=E,U=m.getBoundingClientRect(),q=A.clientX-U.left,B=Math.round((q-M.marginLeft)/M.step);if(B<0||B>=M.maxLen){C.style.display="none",N.style.display="none";return}var oe=M.pts[B],ee=Date.now(),R=Math.round((ee-oe.ts)/6e4),j;if(R<=0)j="now";else if(R<60)j=R+"m ago";else if(R<1440){var ie=Math.floor(R/60),ve=R%60;j=ie+"h"+(ve?" "+ve+"m":"")+" ago"}else j=Math.round(R/1440)+"d ago";var z='
'+j+'
● completed: '+oe.completed+'/min
● failed: '+oe.failed+"/min
";if(oe.avgMs>0){var J=oe.avgMs>=1e3?(oe.avgMs/1e3).toFixed(1)+"s":oe.avgMs+"ms";z+='
● avg time: '+J+"
"}C.innerHTML=z;var Q=M.toX(B),te=C.offsetWidth,X=Q+10;X+te>M.totalW&&(X=Q-te-10),C.style.display="block",C.style.left=X+"px",C.style.top="8px",N.style.display="block",N.style.left=Q+"px"}}),m.addEventListener("mouseleave",function(){C&&(C.style.display="none"),N&&(N.style.display="none")})}}e.watch("metricsPoints",function(){s(S,50)})},Sl=function(e,t,o,i){let s=ut();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=N=>{if(!N)return"";let A=new Date(N).getTime();if(isNaN(A))return N;let M=Math.max(0,Date.now()-A),U=Math.floor(M/1e3);if(U<5)return"just now";if(U<60)return`${U}s ago`;let q=Math.floor(U/60);if(q<60)return`${q}m ago`;let B=Math.floor(q/60);if(B<24)return`${B}h ago`;let oe=Math.floor(B/24);return oe<7?`${oe}d ago`:new Date(N).toLocaleDateString()},e.absTime=N=>{if(!N)return"";let A=new Date(N);return isNaN(A.getTime())?N:A.toLocaleString()},e.absTimeShort=N=>{if(!N)return"";let A=new Date(N);return isNaN(A.getTime())?N:A.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let r=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function a(N,A){let M=N&&(N.httpStatus||N.status)||null;if(typeof M=="number"){if(M>=500)return"error";if(M===401||M===403||M===404)return"info";if(M>=400)return"warn"}return A==="error"?"error":A==="warn"?"warn":"info"}function c(N){let A=(N.raw||[]).find(B=>B&&typeof B=="object"&&!Array.isArray(B));if(A){A.message&&r.test(A.message)?(N.displayMessage=A.message,N.displayContext=N.message):A.code&&r.test(String(A.code))?(N.displayMessage=String(A.code),N.displayContext=N.message):A.name&&A.name!=="AnonymousError"&&A.name!=="Error"?(N.displayMessage=A.name,N.displayContext=A.message||N.message):N.displayMessage=N.message,N._status=A.httpStatus||A.status||null,N._url=A.url||null,N._method=A.method||null,N._repoId=A.repoId||A.detail||null,N._detail=A.detail&&A.detail!==N._repoId?A.detail:null;let B=typeof A.stack=="string"?A.stack:null;for(var M=[A.cause,A.err].filter(Boolean),U=0;!B&&U{R==null||R===""||M.push([ee,R])};U("name",A&&A.name),U("code",N.displayMessage||A&&A.message),N._bucket&&U("kind",N._bucket),U("httpStatus",A&&A.httpStatus),A&&A.status&&!A.httpStatus&&U("status",A.status),U("module",N.module);let q=A&&A.detail;if(typeof q=="string"){let ee=q.trim();if(ee[0]==="{"||ee[0]==="[")try{q=JSON.parse(q)}catch{}}if(U("detail",q),U("repoId",A&&A.repoId),U("filePath",A&&A.filePath),U("upstreamStatus",A&&A.upstreamStatus),U("upstreamBody",A&&A.upstreamBody),U("url",N._url),U("err",A&&A.err),U("cause",A&&!A.err&&A.cause),U("ts",N.ts),!M.length)return JSON.stringify(N,null,2);let B=M.reduce((ee,R)=>Math.max(ee,R[0].length),0),oe=["{"];return M.forEach(([ee,R],j)=>{let ve=` ${`"${ee}":`.padEnd(B+3," ")} `,z=jX===0?te:Q+te).join(` `)}else typeof R=="number"||typeof R=="boolean"?J=String(R):J=JSON.stringify(R);oe.push(`${ve}${J}${z}`)}),oe.push("}"),oe.join(` -`)}function g(N){let A=[],M="",U=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,q=0,B;for(;B=U.exec(N);)M+=N.slice(q,B.index),q=U.lastIndex,A.push({key:B[1],op:B[2]||"=",val:B[3]});return M+=N.slice(q),{filters:A,free:M.trim().toLowerCase()}}function y(N,A){for(let M of A.filters){let U=(B,oe,ee)=>{let R=parseFloat(B),j=parseFloat(oe);return ee==="="?String(B)===String(oe):ee==="!="?String(B)!==String(oe):ee===">="?R>=j:ee==="<="?R<=j:ee===">"?R>j:ee==="<"?RA&&q._bucket!==A?!1:y(q,N)),U=e.query.group;if(U){let q=ee=>U==="module"?ee.module:ee.displayMessage||ee.message||"_",B=new Map;for(let ee of M){let R=q(ee);if(B.has(R)){let j=B.get(R);j.count++,j._related.push(ee),new Date(ee.ts)>new Date(j.ts)&&(j.ts=ee.ts,j._url=ee._url,j._status=ee._status),new Date(ee.ts)new Date(R.ts).getTime()>=oe).length;M=Array.from(B.values())}else M=M.map((q,B)=>(q._key="row:"+B+":"+q.ts,q._related=[q],q._firstSeen=q.ts,q._lastHourCount=0,q.count=1,q));e.query.sort==="count"?M.sort((q,B)=>B.count-q.count||new Date(B.ts)-new Date(q.ts)):M.sort((q,B)=>new Date(B.ts)-new Date(q.ts)),e.visible=M}function h(N){let A=N?e.entries.length:0,M=N?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:A,limit:M}}).then(U=>{let q=(U.data.entries||[]).map(c);e.entries=N?e.entries.concat(q):q,e.available=!!U.data.available,e.cap=U.data.max||e.cap,e.total=U.data.total||e.entries.length,b()},U=>console.error(U))}e.loadMore=()=>h(!0),e.canLoadMore=()=>e.entries.length{let A=N.data||{},M=A.prev24h?Math.round((A.last24h-A.prev24h)/A.prev24h*100):0;e.stats={last24h:A.last24h||0,prev24h:A.prev24h||0,delta:M,severity:A.severity||{error:0,warn:0,info:0},unique:A.unique||{error:0,warn:0,info:0},buckets:A.buckets||[],dropped:A.dropped||0}},N=>console.error(N))}function _(){h(),E()}e.barPx=(N,A)=>{let M=e.stats.buckets||[],U=0;for(let ee of M)U=Math.max(U,(ee.error||0)+(ee.warn||0)+(ee.info||0));if(!U)return 0;let q=(N.error||0)+(N.warn||0)+(N.info||0);if(!q)return 0;let B=Math.round(q/U*60),oe=N[A]||0;return Math.round(oe/q*B)},e.bucketTitle=N=>`${new Date(N.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${N.error||0} err \xB7 ${N.warn||0} warn \xB7 ${N.info||0} info`,e.toggle=N=>{e.expanded[N._key]=!e.expanded[N._key]},e.setBucket=N=>{e.query.bucket=N},e.refreshNow=_,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(_,N=>console.error(N))},e.exportCsv=()=>{let N=["ts","level","module","displayMessage","_status","_url","_repoId"],A=[N.join(",")];for(let B of e.visible)A.push(N.map(oe=>{let ee=B[oe]==null?"":String(B[oe]);return/[",\n]/.test(ee)?`"${ee.replace(/"/g,'""')}"`:ee}).join(","));let M=new Blob([A.join(` -`)],{type:"text/csv;charset=utf-8"}),U=URL.createObjectURL(M),q=document.createElement("a");q.href=U,q.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(q),q.click(),document.body.removeChild(q),URL.revokeObjectURL(U)};function m(N){e.copyHint=`${N} copied`,s.timeout(()=>{e.copyHint=""},1500)}e.copyJson=N=>{navigator.clipboard.writeText(N._detailJson).then(()=>m("JSON"))},e.copyCurl=N=>{if(!N._url)return;let M=`curl -X ${N._method||"GET"} '${window.location.origin}${N._url}'`;navigator.clipboard.writeText(M).then(()=>m("curl"))},_();let C=i(()=>{e.query.autoRefresh&&_()},15e3);e.on("dispose",()=>i.cancel(C)),e.watch("query.search",b),e.watch("query.bucket",b),e.watch("query.sort",b),e.watch("query.group",b)},_l=function(e,t,o,i){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null){o.url("/");return}e.data=null,e.loading=!0,e.error=null,e.performance=null,e.performanceMinutes=15,e.performanceTab="routes",e.cacheReport=null,e.cacheError=null,e.cacheMinutes=60,e.cacheTraffic="all";var s=!1;e.loadCache=function(){if(!s){s=!0;var m=e.cacheMinutes;t.get("/api/admin/cache",{params:{minutes:m}}).then(function(C){m===e.cacheMinutes&&(e.cacheReport=C.data,e.cacheError=C.data.available?null:C.data.reason||"Cache monitoring is unavailable.")},function(){e.cacheError="Could not refresh cache monitoring. Displayed values may be stale."}).finally(function(){s=!1,m!==e.cacheMinutes&&e.loadCache()})}},e.cacheRows=function(){return(e.cacheReport?.rows||[]).filter(function(m){return e.cacheTraffic==="all"||m.traffic===e.cacheTraffic})},e.cacheRate=function(m,C){var N=e.cacheRows(),A=function(q){return N.filter(function(B){return B.name===q}).reduce(function(B,oe){return B+oe[C]},0)},M=A(m+"_hit"),U=A(m+"_miss");return M+U?(100*M/(M+U)).toFixed(1)+"%":"No samples"},e.cacheEventName=function(m){return m.replaceAll("_"," ")},e.cacheP95=function(m){var C=0,N=e.cacheReport?.latencyBucketsMs||[];if(!m.count)return"No samples";if(!m.ms)return"Not timed";for(var A=0;A<=N.length;A++)if(C+=m["b"+A]||0,C>=Math.ceil(m.count*.95))return A 10 s";return"No samples"},e.performanceError=null,e.formatMs=function(m){return m==null?"":m<1e3?m+" ms":+(m/1e3).toFixed(1)+" s"},e.latencyBound=function(m,C){return m.count?m[C]==null?"> 60 s":"\u2264 "+e.formatMs(m[C]):"No samples"},e.firstByteBound=function(m){return e.latencyBound({count:m.firstByteCount,p95UpperMs:m.firstByteP95UpperMs},"p95UpperMs")},e.sampleAge=function(m){return Math.max(0,Math.round((Date.now()-m.sampledAt)/1e3))},e.peakRss=function(m){return(e.performance.runtimeSeries||[]).filter(function(C){return C.instance===m.instance}).reduce(function(C,N){return Math.max(C,N.rss)},m.memory.rss)},e.performanceWarning=function(m){return e.sampleAge(m)>45||m.droppedBatches||m.droppedMetrics||m.sockets?.closeWait>0||m.eventLoop.p95Ms>100||m.memoryLimitBytes&&m.memory.rss>m.memoryLimitBytes*.8};var r=!1;e.loadPerformance=function(){var m=e.performanceMinutes;e.performance?.windowMinutes&&e.performance.windowMinutes!==m&&(e.performance=null),!r&&(r=!0,t.get("/api/admin/performance",{params:{minutes:m}}).then(function(C){m===e.performanceMinutes&&(e.performance=C.data,e.performanceError=C.data.available?null:"Performance monitoring is unavailable. Request history may be incomplete.")},function(){m===e.performanceMinutes&&(e.performanceError="Could not refresh performance monitoring. Displayed samples may be stale.")}).finally(function(){r=!1,m!==e.performanceMinutes&&e.loadPerformance()}))};function a(m){if(m==null)return"\u2014";for(var C=["B","KB","MB","GB","TB"],N=0,A=m;A>=1024&&N0?1:0)+" "+C[N]}e.humanBytes=a;function c(m){if(!m)return"\u2014";var C=Math.floor(m/86400),N=Math.floor(m%86400/3600),A=Math.floor(m%3600/60);return C>0?C+"d "+(N<10?"0":"")+N+"h":N>0?N+"h "+(A<10?"0":"")+A+"m":A+"m"}e.humanDuration=c;function f(m){return m==null?"\u2014":m>=1e6?(m/1e6).toFixed(1)+"M":m>=1e3?(m/1e3).toFixed(1)+"K":String(m)}e.humanNum=f,e.queueTotal=function(m){return m?(m.waiting||0)+(m.active||0)+(m.delayed||0)+(m.failed||0):0},e.statusCount=function(m){if(!e.data||!e.data.repos)return 0;for(var C=e.data.repos.statusBreakdown||[],N=0;Nb[N])&&(b[N]=C[N]),(h[N]==null||C[N]Ci(e,t)},{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>gl(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>yl(e,t.http)},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>ul(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>cl(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ds(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ds(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ds(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>pl(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ml(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vi(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vi(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vl(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>al(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ll(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dl(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>fl(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>hl(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>mi(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>mi(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>_l(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>bl(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>wl(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>kl(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>El(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Cl(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Sl(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var Pp={class:"container py-4",style:{"max-width":"48rem","overflow-wrap":"anywhere"}},Ip={key:0},Vp={key:1,role:"alert"},qp={key:2,role:"status"},Mp={key:0},Up={key:1},$p=["disabled"],Lp=["disabled"],Fp=["disabled"],Bp={key:5,class:"mt-4","aria-labelledby":"review-policy-title"},Hp={id:"review-policy-title"},zp={key:0,role:"alert"},jp=["disabled"],Gp=["disabled"],Wp=["disabled"],Kp={key:6,role:"status"};function Rl(e,t){return l(),d("section",Pp,[t[12]||(t[12]=n("a",{href:"/"},"Anonymous GitHub",-1)),t[13]||(t[13]=n("h1",{class:"mt-3"},"Approve artifact access",-1)),t[14]||(t[14]=n("p",null,"This records your approval as the repository owner or an authorized coauthor.",-1)),e.user?.username?p("v-if",!0):(l(),d("p",Ip,[...t[6]||(t[6]=[v("Sign in first, then reopen the artifact link from your submission. ",-1),n("a",{href:"/signin"},"Sign in",-1)])])),e.error?(l(),d("p",Vp,u(e.error),1)):p("v-if",!0),e.saved?(l(),d("p",qp,[t[7]||(t[7]=v("Consent recorded. ",-1)),e.handoffEnabled?(l(),d("span",Mp,"Continue to review to finish linking.")):(l(),d("span",Up,"Artifact linking is not complete. Return to your submission to check its status."))])):p("v-if",!0),e.saved&&e.handoffEnabled?(l(),d("button",{key:3,class:"btn btn-primary",type:"button",onClick:t[0]||(t[0]=(...o)=>e.continueReview&&e.continueReview(...o)),disabled:e.busy},"Continue to review",8,$p)):p("v-if",!0),e.user?.username&&!e.saved?(l(),d("form",{key:4,onSubmit:t[2]||(t[2]=de((...o)=>e.loadPreview&&e.loadPreview(...o),["prevent"]))},[t[8]||(t[8]=n("label",{for:"review-repository"},"Anonymous repository ID",-1)),D(n("input",{id:"review-repository",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=o=>e.repositoryId=o),maxlength:"128",autocomplete:"off",disabled:e.busy||e.uncertain,"aria-describedby":"review-repository-help"},null,8,Lp),[[wt,e.repositoryId]]),t[9]||(t[9]=n("p",{id:"review-repository-help"},"Use the ID after /r/ in the anonymous repository URL.",-1)),n("button",{type:"submit",class:"btn btn-primary",disabled:e.busy||e.uncertain},"Preview access and retention",8,Fp)],32)):p("v-if",!0),e.preview&&!e.saved?(l(),d("section",Bp,[n("h2",Hp,u(e.preview.repositoryName),1),n("p",null,"Access: "+u(e.preview.policy.access==="anonymous-link"?"Anyone with the anonymous link":"Restricted review access")+".",1),n("p",null,"Retain until "+u(e.preview.policy.retainUntil)+". Policy version "+u(e.preview.policy.version)+".",1),e.expired?(l(),d("p",zp,"This preview expired. Open a new artifact link from your submission.")):p("v-if",!0),n("div",null,[n("label",null,[D(n("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=o=>e.acceptAccess=o),disabled:e.busy||e.uncertain||e.expired},null,8,jp),[[xs,e.acceptAccess]]),t[10]||(t[10]=v(" I approve the access policy above.",-1))])]),n("div",null,[n("label",null,[D(n("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=o=>e.acceptRetention=o),disabled:e.busy||e.uncertain||e.expired},null,8,Gp),[[xs,e.acceptRetention]]),t[11]||(t[11]=v(" I approve retention until the date above.",-1))])]),n("button",{class:"btn btn-primary",type:"button",onClick:t[5]||(t[5]=(...o)=>e.confirmConsent&&e.confirmConsent(...o)),disabled:e.busy||e.expired||!e.acceptAccess||!e.acceptRetention},u(e.uncertain?"Retry confirmation":"Confirm consent"),9,Wp)])):p("v-if",!0),e.busy?(l(),d("p",Kp,"Waiting for the server\u2026")):p("v-if",!0)])}var Yp={class:"container paper-page connections-page"},Jp={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Qp={key:1,role:"status"},Xp=["disabled"],Zp={key:3},xp={key:0,class:"connection-resources"},ef=["disabled"],tf=["disabled"],nf={key:0,role:"status"},of={class:"connections-grid"},sf={key:0},rf={class:"connection-title"},af={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},lf={class:"connection-actions"},df={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},uf={key:1,class:"connection-installations"},cf={key:0},pf=["href"],ff={class:"sr-only"},hf=["disabled"],mf={class:"connection-title"},vf={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},gf={key:1,class:"connection-revoke"},yf={key:0},bf=["disabled"],wf={class:"connection-resources"},kf={class:"connection-title"},Ef={class:"connection-count"},Cf={key:0,class:"connection-empty"},Sf={class:"connection-resource-name"},_f={key:0,class:"connection-resource-actions"},Nf=["disabled","onClick"],Rf=["disabled","onClick"],Df={key:1,class:"connection-help",role:"status"},Tf=["disabled","onClick"];function Dl(e,t){return l(),d("div",Yp,[t[25]||(t[25]=fe('
My work / GitHub connections

GitHub connections

Manage how GitHub shares your code. Your anonymizations and URLs stay the same.

',2)),e.connectionError?(l(),d("p",Jp,u(e.connectionError),1)):p("v-if",!0),!e.connections&&!e.connectionError?(l(),d("p",Qp,"Loading your connections\u2026")):p("v-if",!0),!e.connections&&e.connectionError?(l(),d("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=o=>e.loadConnections())},"Try again",8,Xp)):p("v-if",!0),e.connections?(l(),d("div",Zp,[e.connections.emailNotificationsEnabled?(l(),d("section",xp,[t[6]||(t[6]=n("h2",null,"Email alerts",-1)),t[7]||(t[7]=n("p",null,"We will email you if your GitHub connection stops working or a repository becomes inaccessible. Your address is never shown on anonymous pages.",-1)),n("form",{onSubmit:t[2]||(t[2]=de(o=>e.saveNotificationEmail(),["prevent"]))},[t[5]||(t[5]=n("label",{for:"notification-email"},"Email address",-1)),D(n("input",{id:"notification-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[1]||(t[1]=o=>e.notificationEmail=o),disabled:e.busy},null,8,ef),[[wt,e.notificationEmail]]),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.busy},"Save email address",8,tf),e.emailSaved?(l(),d("p",nf,"Email address saved.")):p("v-if",!0)],32)])):p("v-if",!0),n("div",of,[e.connections.appEnabled?(l(),d("section",sf,[t[13]||(t[13]=n("div",{class:"connection-top"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",{class:"connection-badge"},"Recommended")],-1)),n("div",rf,[t[8]||(t[8]=n("h2",null,"GitHub App",-1)),n("span",{class:P(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},u(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[14]||(t[14]=n("p",null,"Read-only access to gists and the repositories you choose.",-1)),e.connections.appError?(l(),d("p",af,u(e.connections.appError)+". Reconnect to restore access.",1)):p("v-if",!0),n("div",lf,[e.connections.appConnected&&!e.connections.appError?(l(),d("a",df,[...t[9]||(t[9]=[v("Manage repository access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),n("a",{class:P(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},u(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3)]),t[15]||(t[15]=n("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(l(),d("ul",uf,[(l(!0),d(K,null,ne(e.connections.installations,o=>(l(),d("li",{key:o.id},[n("div",null,[n("strong",null,u(o.account),1),o.suspended?(l(),d("span",cf," \xB7 Suspended")):p("v-if",!0)]),n("a",{target:"_self",href:"/github/app/install?installationId="+o.id},[t[10]||(t[10]=v("Manage access ",-1)),n("span",ff,"for "+u(o.account),1),t[11]||(t[11]=v(" \u2192",-1))],8,pf)]))),128))])):p("v-if",!0),n("button",{class:"connection-link",disabled:e.busy,onClick:t[3]||(t[3]=o=>e.loadConnections())},[...t[12]||(t[12]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Refresh access",-1)])],8,hf)])):p("v-if",!0),n("section",null,[t[18]||(t[18]=n("div",{class:"connection-top"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),n("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),n("div",mf,[t[16]||(t[16]=n("h2",null,"GitHub OAuth",-1)),n("span",{class:P(["connection-status",{"is-connected":e.connections.oauthConnected}])},u(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[19]||(t[19]=n("p",null,"For existing OAuth anonymizations.",-1)),t[20]||(t[20]=n("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(l(),d("a",vf,u(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):p("v-if",!0),e.connections.oauthConnected?(l(),d("div",gf,[e.connections.gistCount?(l(),d("p",yf,u(e.connections.gistCount)+" gist(s) use your GitHub App connection when available.",1)):p("v-if",!0),t[17]||(t[17]=n("p",null,"Switch all dependent repositories before revoking access. Gists can use your GitHub App connection.",-1)),e.connections.appConnected?(l(),d("button",{key:1,class:"connection-link connection-danger",disabled:e.busy||e.connections.resources.some(o=>o.connection==="oauth"),onClick:t[4]||(t[4]=o=>e.disconnectOAuth())},"Revoke OAuth access",8,bf)):p("v-if",!0)])):p("v-if",!0)])]),n("section",wf,[n("div",kf,[t[21]||(t[21]=n("h2",null,"Repository connections",-1)),n("span",Ef,u(e.connections.resources?.length||0)+" resources",1)]),t[23]||(t[23]=n("p",null,"Check access, then switch each resource to the GitHub App. After reinstalling the App, reconnect existing resources here to keep their anonymous URLs and published snapshots.",-1)),e.connections.resources?.length?p("v-if",!0):(l(),d("div",Cf,[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("div",null,[n("h3",null,"No repository connections yet"),n("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),n("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(l(!0),d(K,null,ne(e.connections.resources,o=>(l(),d("div",{class:"connection-resource",key:o.type+o.id},[n("div",Sf,[n("strong",null,u(o.name||o.id),1),n("small",null,u(o.type)+" \xB7 "+u(o.id),1)]),n("span",{class:P(["connection-badge",{"connection-badge-muted":o.connection==="oauth"}])},u(o.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),!["archived","removed","preparing","queue","removing","expiring"].includes(o.status)&&(o.status!=="download"||o.type==="pull-request"&&(!o.statusDate||new Date(o.statusDate).getTime()<=Date.now()-3e5))&&e.connections.appEnabled&&e.connections.appConnected?(l(),d("div",_f,[n("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:i=>e.changeConnection(o,"github-app",!0)},"Check read-only access",8,Nf),o.eligible?(l(),d("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:i=>e.changeConnection(o,"github-app",!1)},u(o.connection==="github-app"?"Reconnect read-only access":"Switch to read-only access"),9,Rf)):p("v-if",!0),o.eligible===!1?(l(),d("span",Df,"Access unavailable. Allow this repository on GitHub, then check again.")):p("v-if",!0)])):p("v-if",!0),!["archived","removed","preparing","queue","removing","expiring"].includes(o.status)&&(o.status!=="download"||o.type==="pull-request"&&(!o.statusDate||new Date(o.statusDate).getTime()<=Date.now()-3e5))&&o.connection==="github-app"&&e.connections.oauthConnected?(l(),d("button",{key:1,class:"connection-link",disabled:e.busy,onClick:i=>e.changeConnection(o,"oauth",!1)},"Use OAuth",8,Tf)):p("v-if",!0)]))),128)),t[24]||(t[24]=n("p",{class:"connection-footnote"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),v(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):p("v-if",!0)])}var Af={class:"container paper-page auth-page"},Of={class:"auth-layout"},Pf={class:"auth-options"},If={key:0},Vf={key:0,class:"btn btn-ink auth-continue",target:"_self",href:"/github/login?recover=1"},qf={key:1},Mf={key:1},Uf={key:2,class:"auth-legacy"},$f={key:3,role:"status"};function Tl(e,t){return l(),d("div",Af,[t[5]||(t[5]=n("a",{class:"auth-back",href:"/"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-left"})]),v(" Anonymous GitHub")],-1)),n("div",Of,[t[4]||(t[4]=fe('
Your research, ready for review

Your code.
Your identity,
protected.
Sign in to GitHub

Sign in to create and manage your anonymizations.

',1)),n("div",Pf,[e.accountRecovery?(l(),d("section",If,[t[0]||(t[0]=n("h2",null,"Verify your existing account",-1)),t[1]||(t[1]=n("p",null,"We found an existing account. Verify it with your previous GitHub connection to keep your anonymizations. Future sign-ins will use the GitHub App.",-1)),e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("a",Vf,"Verify with previous GitHub connection")):(l(),d("p",qf,"Account verification is currently unavailable. Please try again later."))])):p("v-if",!0),e.site_options?.GITHUB_APP_ENABLED&&!e.accountRecovery?(l(),d("section",Mf,[...t[2]||(t[2]=[fe('
Read-only access

Continue with GitHub

Connect through the GitHub App with read-only repository access.

  • You choose which repositories to share
  • No permission to write to your code
Sign in with GitHub Your existing anonymizations and connections stay with your account.',6)])])):p("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(l(),d("section",Uf,[...t[3]||(t[3]=[n("div",{class:"connection-title"},[n("h2",null,"Continue with GitHub")],-1),n("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),n("a",{class:"connection-link",target:"_self",href:"/github/login"},[v("Sign in with GitHub "),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-right"})])],-1)])])):p("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(l(),d("p",$f,"GitHub sign-in is currently unavailable. Please try again later.")):p("v-if",!0)])])])}var Lf={class:"paper-empty"};function Al(e,t){return l(),d("div",Lf,[...t[0]||(t[0]=[fe('
Error \xB7 404

This link
isn\u2019t here.

The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.

',1)])])}var Ff={class:"container paper-page admin-page"},Bf={class:"admin-summary"},Hf={class:"summary-total"},zf=["aria-pressed"],jf={class:"count"},Gf=["aria-pressed"],Wf={class:"count"},Kf=["aria-pressed"],Yf={class:"count"},Jf=["aria-pressed"],Qf={class:"count"},Xf=["aria-pressed"],Zf={class:"count"},xf={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},eh={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},th={class:"admin-filter-row"},nh={class:"search-wrap"},oh={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},sh={key:0,class:"admin-search-hint"},ih={class:"admin-filter-inline","aria-label":"Pagination"},rh=["disabled"],ah={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},lh=["disabled"],dh={key:0,class:"admin-filter-row"},uh={class:"admin-active-chips"},ch={class:"key"},ph=["onClick"],fh={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},hh={class:"paper-table-head",role:"row"},mh={role:"columnheader"},vh={role:"columnheader"},gh={role:"columnheader"},yh={class:"paper-table-row",role:"row"},bh={class:"cell-anon",role:"cell"},wh={class:"anon-text"},kh=["textContent","href"],Eh={class:"anon-sub"},Ch={class:"cell-status",role:"cell"},Sh=["textContent"],_h={class:"cell-views num",role:"cell"},Nh=["textContent","href"],Rh={class:"cell-expires",role:"cell"},Dh={class:"cell-actions",role:"cell"},Th={class:"dropdown"},Ah={class:"dropdown-menu dropdown-menu-right"},Oh=["href"],Ph=["href"],Ih=["href"],Vh=["onClick"],qh={key:0,class:"paper-table-empty"},Mh={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},Uh={style:{"font-size":"12px",color:"var(--ink-muted)"}},$h={key:0,class:"pagination-compact"},Lh=["disabled"],Fh=["max"],Bh=["disabled"],Hh={class:"admin-filter-inline"},zh={class:"form-control form-control-sm"};function Ol(e,t){let o=ge("field"),i=ge("form");return l(),d("div",Ff,[t[47]||(t[47]=fe('
Admin \xA0/\xA0 Conferences

Conferences

',3)),n("div",Bf,[n("span",Hf,u(e.total>=0?e.fmt.number(e.total):"\u2026"),1),n("button",{type:"button",class:P(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[13]||(t[13]=v("Ready ",-1)),n("span",jf,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,zf),n("button",{type:"button",class:P(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[14]||(t[14]=v("Preparing ",-1)),n("span",Wf,u(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,Gf),n("button",{type:"button",class:P(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[15]||(t[15]=v("Errored ",-1)),n("span",Yf,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,Kf),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[16]||(t[16]=v("Expired ",-1)),n("span",Qf,u(e.fmt?.number(e.statusCountFor("expired"))),1)],10,Jf),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[17]||(t[17]=v("Removed ",-1)),n("span",Zf,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,Xf)]),e.fetchError?(l(),d("div",xf,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",eh,[n("div",th,[n("div",nh,[D(n("input",oh,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",sh,"/"))]),t[22]||(t[22]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export",-1)])]),n("span",ih,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,rh),n("span",ah,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,lh)])]),e.chips?.length?(l(),d("div",dh,[n("div",uh,[(l(!0),d(K,null,ne(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",ch,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,ph)]))),128))])])):p("v-if",!0)])),[[i,e.viewState]]),n("div",fh,[n("div",hh,[n("div",mh,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="name"}]),onClick:t[8]||(t[8]=s=>e.sortBy("name"))},[t[25]||(t[25]=v("Conference ",-1)),e.sortIcon("name")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("name")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[24]||(t[24]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",vh,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[9]||(t[9]=s=>e.sortBy("status"))},[t[27]||(t[27]=v("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[26]||(t[26]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[30]||(t[30]=n("div",{role:"columnheader",class:"num"},"Repos",-1)),n("div",gh,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[10]||(t[10]=s=>e.sortBy("startDate"))},[t[29]||(t[29]=v("Window ",-1)),e.sortIcon("startDate")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("startDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[31]||(t[31]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(K,null,ne(e.filteredConferences,(s,r)=>(l(),d("div",yh,[n("div",bh,[t[33]||(t[33]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",wh,[n("a",{class:"repo-name",textContent:u(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,kh),n("div",Eh,[n("span",null,u(s?.conferenceID),1),t[32]||(t[32]=v("\xA0\xB7\xA0",-1)),n("span",null,u(e.fmt?.number(s?.price||0))+" \u20AC",1)])])]),n("div",Ch,[n("span",{class:P(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,Sh)]),n("div",_h,[t[34]||(t[34]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:"Show repositories in this conference",textContent:u(e.fmt?.number(s?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+s?.conferenceID)},null,8,Nh)]),n("div",Rh,[t[35]||(t[35]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v(" "+u(e.fmt?.date(s?.startDate))+" \u2013 "+u(e.fmt?.date(s?.endDate)),1)]),n("div",Dh,[n("div",Th,[t[41]||(t[41]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",Ah,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[36]||(t[36]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit",-1)])],8,Oh),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View",-1)])],8,Ph),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+s?.conferenceID)},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),v(" View repositories",-1)])],8,Ih),t[40]||(t[40]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeConference(s),["prevent"])},[...t[39]||(t[39]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove",-1)])],8,Vh),[[W,s?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(l(),d("div",qh,[...t[42]||(t[42]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No conferences match the current filters.",-1)])])):p("v-if",!0)]),n("div",Mh,[n("span",Uh,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",$h,[n("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),v(" Previous",-1)])],8,Lh),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,Fh),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[44]||(t[44]=[v("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Bh)])):p("v-if",!0),n("span",Hh,[t[46]||(t[46]=n("label",null,"Per page",-1)),D((l(),d("select",zh,[...t[45]||(t[45]=[fe('',5)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var jh={class:"container paper-page admin-page errors-page"},Gh={class:"errors-header"},Wh={class:"errors-actions"},Kh={class:"kpi-grid"},Yh={class:"kpi-card"},Jh={class:"kpi-value"},Qh={key:0},Xh={key:1},Zh={class:"kpi-card kpi-error"},xh={class:"kpi-value"},em={class:"kpi-sub"},tm={class:"kpi-card kpi-warn"},nm={class:"kpi-value"},om={class:"kpi-sub"},sm={class:"kpi-card kpi-info"},im={class:"kpi-value"},rm={class:"kpi-sub"},am={class:"kpi-value"},lm={class:"kpi-sub"},dm={key:0,class:"dropped-warn"},um={class:"volume-chart"},cm={class:"volume-bars"},pm=["title"],fm={class:"errors-toolbar","aria-label":"Error filters"},hm={class:"seg-tabs"},mm={class:"search-wrap"},vm={type:"search",class:"form-control",placeholder:"code:repo_not_found module:route status:>=400",autocomplete:"off"},gm={key:0,class:"filter-count"},ym={class:"select-wrap"},bm={class:"form-control form-control-sm"},wm={class:"select-wrap"},km={class:"form-control form-control-sm"},Em={class:"autoref"},Cm={type:"checkbox"},Sm={key:0,class:"admin-empty"},_m={key:1,class:"errors-pager"},Nm={key:2,class:"errors-list"},Rm=["onClick"],Dm={class:"col-when"},Tm={class:"when-rel"},Am={class:"when-abs"},Om={class:"col-sev"},Pm={class:"sev-label"},Im={class:"col-mod"},Vm={class:"pill pill-module"},qm={class:"col-msg"},Mm={class:"msg-code"},Um={key:0,class:"msg-context"},$m={key:1,class:"msg-detail"},Lm={key:2,class:"msg-url"},Fm={class:"col-count"},Bm={key:0,class:"count-pill"},Hm={key:1,class:"count-pill count-pill-muted"},zm={class:"col-status"},jm={key:0,class:"errors-row-detail"},Gm={class:"detail-tabs"},Wm=["onClick"],Km=["onClick"],Ym=["onClick"],Jm={class:"detail-body"},Qm={class:"detail-main"},Xm={key:0},Zm={key:1,class:"stack-pre"},xm={key:2,class:"related-list"},ev={class:"when-abs"},tv={class:"msg-url"},nv={class:"detail-actions"},ov=["onClick"],sv=["onClick"],iv={key:0,class:"copy-hint"},rv={class:"detail-aside"},av={class:"aside-block"},lv=["title"],dv={class:"aside-block"},uv=["title"],cv={class:"aside-block"},pv={class:"aside-value"},fv={key:0,class:"aside-sub"},hv={key:0,class:"aside-block"},mv=["href"],vv={key:1,class:"aside-block"},gv={class:"aside-value mono"};function Pl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",jh,[t[32]||(t[32]=n("div",{class:"paper-crumbs"},[v("Admin \xA0/\xA0 "),n("span",{class:"here"},"Errors")],-1)),n("header",Gh,[t[10]||(t[10]=n("h1",{class:"paper-page-title"},"Errors",-1)),n("div",Wh,[n("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=s=>e.exportCsv())},[...t[8]||(t[8]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export CSV",-1)])]),n("button",{class:"btn btn-sm btn-danger-soft",type:"button",onClick:t[1]||(t[1]=s=>e.clearAll())},[...t[9]||(t[9]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Clear all",-1)])])])]),t[33]||(t[33]=fe('',1)),n("section",Kh,[n("div",Yh,[t[11]||(t[11]=n("div",{class:"kpi-label"},"Last 24h",-1)),n("div",Jh,u(e.stats?.last24h),1),n("div",{class:P(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h?(l(),d("span",Qh,u(e.stats?.delta>0?"+":"")+u(e.stats?.delta)+"% vs yesterday",1)):p("v-if",!0),e.stats?.prev24h?p("v-if",!0):(l(),d("span",Xh,"no prior baseline"))],2)]),n("div",Zh,[t[12]||(t[12]=n("div",{class:"kpi-label"},"Errors (5xx)",-1)),n("div",xh,u(e.stats?.severity?.error),1),n("div",em,u(e.stats?.unique?.error)+" unique",1)]),n("div",tm,[t[13]||(t[13]=n("div",{class:"kpi-label"},"Warnings (4xx)",-1)),n("div",nm,u(e.stats?.severity?.warn),1),n("div",om,u(e.stats?.unique?.warn)+" unique",1)]),n("div",sm,[t[14]||(t[14]=n("div",{class:"kpi-label"},"Info (auth, 404)",-1)),n("div",im,u(e.stats?.severity?.info),1),n("div",rm,u(e.stats?.unique?.info)+" unique",1)]),n("div",{class:P(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[15]||(t[15]=n("div",{class:"kpi-label"},"Captured",-1)),n("div",am,u(e.total),1),n("div",lm,[v(" cap "+u(e.cap)+" \xB7 "+u(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(l(),d("span",dm," \xB7 "+u(e.stats?.dropped)+" dropped",1)):p("v-if",!0)])],2)]),n("section",um,[t[16]||(t[16]=fe('
Volume \xB7 24h \xB7 1h bucketserror warn info
',1)),n("div",cm,[(l(!0),d(K,null,ne(e.stats?.buckets,(s,r)=>(l(),d("div",{class:"volume-bar",key:r,title:e.bucketTitle(s)},[n("span",{class:"seg seg-error",style:qe({height:e.barPx(s,"error")+"px"})},null,4),n("span",{class:"seg seg-warn",style:qe({height:e.barPx(s,"warn")+"px"})},null,4),n("span",{class:"seg seg-info",style:qe({height:e.barPx(s,"info")+"px"})},null,4)],8,pm))),128))])]),D((l(),d("form",fm,[n("div",hm,[n("button",{type:"button",class:P({active:e.query?.bucket===""}),onClick:t[2]||(t[2]=s=>e.setBucket(""))},"All",2),n("button",{type:"button",class:P({active:e.query?.bucket==="error"}),onClick:t[3]||(t[3]=s=>e.setBucket("error"))},"5xx",2),n("button",{type:"button",class:P({active:e.query?.bucket==="warn"}),onClick:t[4]||(t[4]=s=>e.setBucket("warn"))},"4xx",2),n("button",{type:"button",class:P({active:e.query?.bucket==="info"}),onClick:t[5]||(t[5]=s=>e.setBucket("info"))},"Info",2)]),n("div",mm,[t[17]||(t[17]=n("svg",{class:"ui-icon search-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)),D(n("input",vm,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(l(),d("span",gm,u(e.parsedFilterCount)+" filter"+u(e.parsedFilterCount>1?"s":""),1)):p("v-if",!0)]),n("div",ym,[t[19]||(t[19]=n("label",null,"Sort",-1)),D((l(),d("select",bm,[...t[18]||(t[18]=[n("option",{value:"recent"},"Most recent",-1),n("option",{value:"count"},"Most frequent",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.sort=s},value:e.query?.sort,form:null,options:{}}]])]),n("div",wm,[t[21]||(t[21]=n("label",null,"Group",-1)),D((l(),d("select",km,[...t[20]||(t[20]=[n("option",{value:""},"Off",-1),n("option",{value:"code"},"By code",-1),n("option",{value:"module"},"By module",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.group=s},value:e.query?.group,form:null,options:{}}]])]),n("label",Em,[D(n("input",Cm,null,512),[[o,{state:e.viewState,set:s=>{e.query.autoRefresh=s},value:e.query?.autoRefresh,form:null,options:{}}]]),t[22]||(t[22]=v(" Auto-refresh ",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[6]||(t[6]=s=>e.refreshNow()),"aria-label":"Refresh"},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])),[[i,e.viewState]]),e.visible?.length?p("v-if",!0):(l(),d("div",Sm,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(l(),d("div",_m,[n("span",null,"Showing "+u(e.entries?.length)+" of "+u(e.total)+" captured",1),n("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=s=>e.loadMore())},"Load older")])):p("v-if",!0),e.visible?.length?(l(),d("div",Nm,[t[31]||(t[31]=fe('
WhenSeverityModuleMessageCountStatus
',1)),(l(!0),d(K,null,ne(e.visible,(s,r)=>(l(),d("div",{class:P(["errors-row",{open:e.expanded[s?._key]}]),key:s?._key},[n("div",{class:"errors-row-main",onClick:a=>e.toggle(s)},[n("div",Dm,[n("div",Tm,u(e.relTime(s?.ts)),1),n("div",Am,u(e.absTimeShort(s?.ts)),1)]),n("div",Om,[n("span",{class:P(["sev-dot","sev-"+s?._bucket])},null,2),n("span",Pm,u(e.fmt?.title(s?._bucket)),1)]),n("div",Im,[n("span",Vm,u(s?.module),1)]),n("div",qm,[n("strong",Mm,u(s?.displayMessage),1),s?.displayContext&&s?.displayContext!==s?.displayMessage?(l(),d("span",Um,u(s?.displayContext),1)):p("v-if",!0),s?._detail?(l(),d("span",$m,u(s?._detail),1)):p("v-if",!0),s?._url?(l(),d("div",Lm,u(s?._url),1)):p("v-if",!0)]),n("div",Fm,[s?.count>1?(l(),d("span",Bm,"\xD7"+u(s?.count),1)):p("v-if",!0),s?.count===1?(l(),d("span",Hm,"\xD71")):p("v-if",!0)]),n("div",zm,[s?._status?(l(),d("span",{key:0,class:P(["status-pill","status-"+s?._bucket])},u(s?._status),3)):p("v-if",!0)])],8,Rm),e.expanded[s?._key]?(l(),d("div",jm,[n("div",Gm,[n("button",{type:"button",class:P({active:e.detailTab[s?._key]==="raw"||!e.detailTab[s?._key]}),onClick:a=>e.detailTab[s._key]="raw"},"Raw",10,Wm),s?._stack?(l(),d("button",{key:0,type:"button",class:P({active:e.detailTab[s?._key]==="stack"}),onClick:a=>e.detailTab[s._key]="stack"},"Stack",10,Km)):p("v-if",!0),s?.count>1?(l(),d("button",{key:1,type:"button",class:P({active:e.detailTab[s?._key]==="related"}),onClick:a=>e.detailTab[s._key]="related"},"Related ("+u(s?.count)+")",11,Ym)):p("v-if",!0)]),n("div",Jm,[n("div",Qm,[(e.detailTab[s?._key]||"raw")==="raw"?(l(),d("pre",Xm,u(s?._detailJson),1)):p("v-if",!0),e.detailTab[s?._key]==="stack"?(l(),d("pre",Zm,u(s?._stack),1)):p("v-if",!0),e.detailTab[s?._key]==="related"?(l(),d("div",xm,[(l(!0),d(K,null,ne(s?._related,(a,c)=>(l(),d("div",{class:"related-row",key:c},[n("span",ev,u(e.absTimeShort(a?.ts)),1),n("span",tv,u(a?._url),1),a?._status?(l(),d("span",{key:0,class:P(["status-pill","status-"+a?._bucket])},u(a?._status),3)):p("v-if",!0)]))),128))])):p("v-if",!0),n("div",nv,[n("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:a=>e.copyCurl(s)},[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),v(" Copy curl",-1)])],8,ov),n("button",{class:"btn btn-sm",type:"button",onClick:a=>e.copyJson(s)},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-clipboard"})],-1),v(" Copy JSON",-1)])],8,sv),e.copyHint?(l(),d("span",iv,u(e.copyHint),1)):p("v-if",!0)])]),n("aside",rv,[n("div",av,[t[26]||(t[26]=n("div",{class:"aside-label"},"First seen",-1)),n("div",{class:"aside-value",title:e.absTime(s?._firstSeen)},u(e.relTime(s?._firstSeen)),9,lv)]),n("div",dv,[t[27]||(t[27]=n("div",{class:"aside-label"},"Last seen",-1)),n("div",{class:"aside-value",title:e.absTime(s?.ts)},u(e.relTime(s?.ts)),9,uv)]),n("div",cv,[t[28]||(t[28]=n("div",{class:"aside-label"},"Occurrences",-1)),n("div",pv,[v(u(s?.count),1),s?._lastHourCount?(l(),d("span",fv," \xB7 "+u(s?._lastHourCount)+" this hour",1)):p("v-if",!0)])]),s?._repoId?(l(),d("div",hv,[t[29]||(t[29]=n("div",{class:"aside-label"},"Repository",-1)),n("a",{class:"aside-value",href:e.safeUrl("/r/"+s?._repoId)},u(s?._repoId),9,mv)])):p("v-if",!0),s?._url?(l(),d("div",vv,[t[30]||(t[30]=n("div",{class:"aside-label"},"URL",-1)),n("div",gv,u(s?._url),1)])):p("v-if",!0)])])])):p("v-if",!0)],2))),128))])):p("v-if",!0)])}var yv={class:"container paper-page admin-page overview-page"},bv={key:0,class:"admin-empty"},wv={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},kv={key:2},Ev={class:"ov-kpi-row"},Cv={class:"ov-kpi-card"},Sv={class:"ov-kpi-value"},_v={class:"ov-kpi-sub"},Nv={class:"ov-kpi-card"},Rv={class:"ov-kpi-sub"},Dv={class:"ov-kpi-card"},Tv={class:"ov-kpi-sub"},Av={class:"ov-kpi-card"},Ov={class:"ov-kpi-sub"},Pv={class:"ov-kpi-card"},Iv={class:"ov-kpi-value"},Vv={class:"ov-kpi-sub"},qv={class:"ov-daily-row"},Mv={class:"ov-daily-card"},Uv={class:"ov-daily-value"},$v={class:"ov-daily-card"},Lv={class:"ov-daily-value"},Fv={class:"ov-daily-sub"},Bv={class:"ov-daily-card"},Hv={class:"ov-daily-value"},zv={class:"ov-chart-row"},jv={class:"ov-chart-card"},Gv={key:0,class:"ov-spark-bars"},Wv=["data-tip","aria-label"],Kv={key:1,class:"ov-spark-x"},Yv={class:"ov-chart-card"},Jv={key:0,class:"ov-spark-bars"},Qv=["data-tip","aria-label"],Xv={key:1,class:"ov-spark-x"},Zv={class:"ov-chart-card"},xv={class:"ov-chart-head"},eg={class:"ov-chart-legend"},tg={key:0,class:"ov-spark-bars"},ng=["data-tip","aria-label"],og={key:1,class:"ov-spark-x"},sg={class:"ov-chart-card"},ig={key:0,class:"ov-spark-bars"},rg=["data-tip","aria-label"],ag={key:1,class:"ov-spark-x"},lg={class:"ov-triple-row"},dg={class:"ov-panel-card"},ug={class:"ov-panel-head"},cg={class:"ov-panel-meta"},pg={class:"ov-stacked-bar"},fg={class:"ov-bar-legend"},hg={href:"/admin/repositories",class:"ov-legend-item"},mg={class:"ov-legend-n"},vg={href:"/admin/repositories",class:"ov-legend-item"},gg={class:"ov-legend-n"},yg={href:"/admin/repositories",class:"ov-legend-item"},bg={class:"ov-legend-n"},wg={href:"/admin/repositories",class:"ov-legend-item"},kg={class:"ov-legend-n"},Eg={href:"/admin/repositories",class:"ov-legend-item"},Cg={class:"ov-legend-n"},Sg={class:"ov-panel-card"},_g={class:"ov-panel-head"},Ng={class:"ov-panel-meta"},Rg={class:"ov-error-bars"},Dg={class:"ov-ebar-row"},Tg={class:"ov-ebar-track"},Ag={class:"ov-ebar-n"},Og={class:"ov-ebar-row"},Pg={class:"ov-ebar-track"},Ig={class:"ov-ebar-n"},Vg={class:"ov-ebar-row"},qg={class:"ov-ebar-track"},Mg={class:"ov-ebar-n"},Ug={key:0,class:"ov-panel-foot"},$g={href:"/admin/errors"},Lg={class:"ov-panel-card"},Fg={class:"ov-routes-table"},Bg={class:"ov-route-row",href:"/admin/queues"},Hg={class:"ov-route-n"},zg={class:"ov-route-n"},jg={class:"ov-route-row",href:"/admin/queues"},Gg={class:"ov-route-n"},Wg={class:"ov-route-n"},Kg={class:"ov-route-row",href:"/admin/queues"},Yg={class:"ov-route-n"},Jg={class:"ov-route-n"},Qg={class:"ov-services-card"},Xg={class:"ov-services-head"},Zg={class:"ov-panel-meta"},xg={class:"ov-services-grid"},ey={class:"ov-svc"},ty={class:"ov-svc-info"},ny={class:"ov-svc-meta"},oy={class:"ov-svc-detail"},sy={class:"ov-svc"},iy={class:"ov-svc-info"},ry={key:0,class:"ov-svc-meta"},ay={key:1,class:"ov-svc-meta"},ly={class:"ov-svc"},dy={class:"ov-svc-info"},uy={key:0,class:"ov-svc-meta"},cy={key:1,class:"ov-svc-meta"},py={class:"ov-svc"},fy={class:"ov-svc-info"},hy={key:0,class:"ov-svc-meta"},my={key:1,class:"ov-svc-meta"},vy={class:"ov-svc"},gy={class:"ov-svc-info"},yy={class:"ov-svc-meta"},by={class:"ov-panel-card ov-cache","aria-labelledby":"cache-heading"},wy={class:"ov-panel-head ov-performance-head"},ky={class:"ov-performance-window"},Ey={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},Cy={key:1,class:"ov-performance-empty",role:"status"},Sy={key:0,class:"ov-performance-note"},_y={key:1,class:"ov-performance-note"},Ny={key:2,class:"ov-performance-message ov-performance-warning",role:"status"},Ry={key:3,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache storage budgets"},Dy={class:"ov-metrics-table"},Ty={scope:"row"},Ay={key:4,class:"ov-performance-note"},Oy={key:5,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache events and processing durations"},Py={class:"ov-metrics-table"},Iy={scope:"row"},Vy={key:6,class:"ov-performance-empty",role:"status"},qy={class:"ov-performance-note"},My={class:"ov-panel-card ov-performance","aria-labelledby":"performance-heading"},Uy={class:"ov-panel-head ov-performance-head"},$y={class:"ov-performance-window"},Ly={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},Fy={key:1,class:"ov-performance-empty",role:"status"},By={key:2},Hy={class:"paper-tabs ov-performance-tabs",role:"tablist","aria-label":"Performance metrics"},zy=["aria-selected","tabindex"],jy=["aria-selected","tabindex"],Gy=["aria-selected","tabindex"],Wy={id:"performance-routes",role:"tabpanel","aria-labelledby":"performance-routes-tab"},Ky={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Route latency metrics, scroll for more columns"},Yy={class:"ov-metrics-table"},Jy={scope:"row",class:"ov-metric-name"},Qy={class:"num"},Xy={class:"num"},Zy={class:"num"},xy={class:"num"},eb={class:"num"},tb={key:1,class:"ov-performance-empty"},ob={id:"performance-processes",role:"tabpanel","aria-labelledby":"performance-processes-tab"},sb={key:0,class:"ov-performance-message ov-performance-warning",role:"status"},ib={key:1,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Process resource metrics, scroll for more columns"},rb={class:"ov-metrics-table"},ab={scope:"row",class:"ov-metric-name"},lb={key:0,class:"ov-metric-warn"},db={class:"num"},ub={class:"num"},cb={class:"num"},pb={class:"num"},fb={class:"num"},hb={class:"num"},mb={class:"num"},vb={class:"num"},gb={id:"performance-stages",role:"tabpanel","aria-labelledby":"performance-stages-tab"},yb={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Work stage metrics, scroll for more columns"},bb={class:"ov-metrics-table"},wb={scope:"row",class:"ov-metric-name"},kb={class:"num"},Eb={class:"num"},Cb={class:"num"},Sb={key:1,class:"ov-performance-empty"};function Il(e,t){return l(),d("div",yv,[t[79]||(t[79]=fe('
Admin \xA0/\xA0 Overview

Overview

',3)),e.loading?(l(),d("div",bv,"Loading overview\u2026")):p("v-if",!0),e.error?(l(),d("div",wv,[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.error),1)])):p("v-if",!0),e.data?(l(),d("div",kv,[p(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Ev,[n("div",Cv,[t[14]||(t[14]=n("div",{class:"ov-kpi-label"},[v("Repositories "),n("span",{class:"ov-dot ov-dot-ok"})],-1)),n("div",Sv,u(e.humanNum(e.data?.repos?.total)),1),n("div",_v,"+"+u(e.data?.repos?.newRepos24h)+" \xB7 last 24h",1)]),n("div",Nv,[t[15]||(t[15]=n("div",{class:"ov-kpi-label"},"CPU",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>80}])},u(e.data?.system?.cpuPercent)+"%",3),n("div",Rv,u(e.data?.system?.cpuCount)+" cores \xB7 load "+u(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)]),n("div",Dv,[t[16]||(t[16]=n("div",{class:"ov-kpi-label"},"Memory",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>85}])},u(e.data?.system?.memPercent)+"%",3),n("div",Tv,u(e.humanBytes(e.data?.system?.memUsed))+" / "+u(e.humanBytes(e.data?.system?.memTotal)),1)]),n("div",Av,[t[17]||(t[17]=n("div",{class:"ov-kpi-label"},"Disk",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>85}])},u(e.data?.system?.diskPercent)+"%",3),n("div",Ov,u(e.humanBytes(e.data?.system?.diskUsed))+" / "+u(e.humanBytes(e.data?.system?.diskTotal))+" \xB7 "+u(e.data?.system?.diskMount),1)]),n("div",Pv,[t[18]||(t[18]=n("div",{class:"ov-kpi-label"},"Uptime",-1)),n("div",Iv,u(e.humanDuration(e.data?.system?.uptime)),1),n("div",Vv,u(e.data?.system?.nodeVersion)+" \xB7 "+u(e.data?.system?.platform),1)])]),p(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",qv,[n("div",Mv,[t[19]||(t[19]=n("div",{class:"ov-daily-label"},"New repos today",-1)),n("div",Uv,"+"+u(e.fmt?.number(e.data?.daily?.today?.repositories)),1),t[20]||(t[20]=n("div",{class:"ov-daily-sub"},"since yesterday",-1))]),n("div",$v,[t[21]||(t[21]=n("div",{class:"ov-daily-label"},"New users today",-1)),n("div",Lv,"+"+u(e.fmt?.number(e.data?.daily?.today?.users)),1),n("div",Fv,u(e.fmt?.number(e.data?.users?.total))+" total users",1)]),n("div",Bv,[t[22]||(t[22]=n("div",{class:"ov-daily-label"},"Page views today",-1)),n("div",Hv,"+"+u(e.fmt?.number(e.data?.daily?.today?.pageViews)),1),t[23]||(t[23]=n("div",{class:"ov-daily-sub"},"since yesterday",-1))])]),p(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",zv,[n("div",jv,[t[24]||(t[24]=n("div",{class:"ov-chart-head"},[n("span",{class:"ov-chart-title"},"Daily page views \xB7 30d"),n("span",{class:"ov-chart-legend"},[n("span",{class:"ov-dot-legend ov-dot-accent"}),v("views/day")])],-1)),e.data?.history?.length?(l(),d("div",Gv,[(l(!0),d(K,null,ne(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views"},[n("span",{class:"ov-spark-fill",style:qe({height:e.historyBarH(o,"dailyPageViews")+"px"})},null,4)],8,Wv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",Kv,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),n("div",Yv,[t[25]||(t[25]=n("div",{class:"ov-chart-head"},[n("span",{class:"ov-chart-title"},"New repos \xB7 30d"),n("span",{class:"ov-chart-legend"},[n("span",{class:"ov-dot-legend ov-dot-ok-fill"}),v("repos/day")])],-1)),e.data?.history?.length?(l(),d("div",Jv,[(l(!0),d(K,null,ne(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos"},[n("span",{class:"ov-spark-fill ov-spark-fill-alt",style:qe({height:e.historyBarH(o,"dailyRepositories")+"px"})},null,4)],8,Qv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",Xv,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),n("div",Zv,[n("div",xv,[t[27]||(t[27]=n("span",{class:"ov-chart-title"},"Users \xB7 30d",-1)),n("span",eg,[t[26]||(t[26]=n("span",{class:"ov-dot-legend ov-dot-user-fill"},null,-1)),v("total users \xB7 "+u(e.fmt?.number(e.historyRange("nbUsers").min))+"\u2013"+u(e.fmt?.number(e.historyRange("nbUsers").max)),1)])]),e.data?.history?.length?(l(),d("div",tg,[(l(!0),d(K,null,ne(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users","aria-label":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users"},[n("span",{class:"ov-spark-fill ov-spark-fill-user",style:qe({height:e.historyRangeH(o,"nbUsers")+"px"})},null,4)],8,ng))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",og,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),n("div",sg,[t[28]||(t[28]=n("div",{class:"ov-chart-head"},[n("span",{class:"ov-chart-title"},"New users \xB7 30d"),n("span",{class:"ov-chart-legend"},[n("span",{class:"ov-dot-legend ov-dot-new-user-fill"}),v("users/day")])],-1)),e.data?.history?.length?(l(),d("div",ig,[(l(!0),d(K,null,ne(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users"},[n("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:qe({height:e.historyBarH(o,"dailyUsers")+"px"})},null,4)],8,rg))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",ag,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)])]),p(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",lg,[p(" Repo status breakdown "),n("div",dg,[n("div",ug,[t[29]||(t[29]=n("span",{class:"ov-panel-title"},"Repo status",-1)),n("span",cg,u(e.fmt?.number(e.data?.repos?.total))+" total",1)]),n("div",pg,[n("span",{class:"ov-bar-seg ov-bar-ready",title:"Ready",style:qe({width:e.barPct("ready")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:qe({width:e.barPct("preparing")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-error",title:"Error",style:qe({width:e.barPct("error")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-expired",title:"Expired",style:qe({width:e.barPct("expired")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-removed",title:"Removed",style:qe({width:e.barPct("removed")+"%"})},null,4)]),n("div",fg,[n("a",hg,[t[30]||(t[30]=n("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[31]||(t[31]=v(" ready ",-1)),n("span",mg,u(e.fmt?.number(e.statusCount("ready"))),1)]),n("a",vg,[t[32]||(t[32]=n("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[33]||(t[33]=v(" preparing ",-1)),n("span",gg,u(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),n("a",yg,[t[34]||(t[34]=n("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[35]||(t[35]=v(" error ",-1)),n("span",bg,u(e.fmt?.number(e.statusCount("error"))),1)]),n("a",wg,[t[36]||(t[36]=n("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[37]||(t[37]=v(" expired ",-1)),n("span",kg,u(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),n("a",Eg,[t[38]||(t[38]=n("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[39]||(t[39]=v(" removed ",-1)),n("span",Cg,u(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),p(" Error breakdown "),n("div",Sg,[n("div",_g,[t[40]||(t[40]=n("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),n("span",Ng,u(e.data?.errors?.last24h)+" total",1)]),n("div",Rg,[n("div",Dg,[t[41]||(t[41]=n("span",{class:"ov-ebar-label"},"5xx",-1)),n("span",Tg,[n("span",{class:"ov-ebar-fill ov-ebar-error",style:qe({width:e.errPct("error")+"%"})},null,4)]),n("span",Ag,u(e.data?.errors?.severity?.error),1)]),n("div",Og,[t[42]||(t[42]=n("span",{class:"ov-ebar-label"},"4xx",-1)),n("span",Pg,[n("span",{class:"ov-ebar-fill ov-ebar-warn",style:qe({width:e.errPct("warn")+"%"})},null,4)]),n("span",Ig,u(e.data?.errors?.severity?.warn),1)]),n("div",Vg,[t[43]||(t[43]=n("span",{class:"ov-ebar-label"},"Info",-1)),n("span",qg,[n("span",{class:"ov-ebar-fill ov-ebar-info",style:qe({width:e.errPct("info")+"%"})},null,4)]),n("span",Mg,u(e.data?.errors?.severity?.info),1)])]),e.data?.repos?.recentErrors24h?(l(),d("div",Ug,[n("a",$g,u(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):p("v-if",!0)]),p(" Top routes / queues "),n("div",Lg,[t[48]||(t[48]=n("div",{class:"ov-panel-head"},[n("span",{class:"ov-panel-title"},"Queues"),n("span",{class:"ov-panel-meta"},"by state")],-1)),n("div",Fg,[t[47]||(t[47]=fe('
QueueActiveWaitFailed
',1)),n("a",Bg,[t[44]||(t[44]=n("span",{class:"ov-route-name"},"download",-1)),n("span",Hg,u(e.data?.queues?.download?.active),1),n("span",zg,u(e.data?.queues?.download?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},u(e.data?.queues?.download?.failed),3)]),n("a",jg,[t[45]||(t[45]=n("span",{class:"ov-route-name"},"remove",-1)),n("span",Gg,u(e.data?.queues?.remove?.active),1),n("span",Wg,u(e.data?.queues?.remove?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},u(e.data?.queues?.remove?.failed),3)]),n("a",Kg,[t[46]||(t[46]=n("span",{class:"ov-route-name"},"cache",-1)),n("span",Yg,u(e.data?.queues?.cache?.active),1),n("span",Jg,u(e.data?.queues?.cache?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},u(e.data?.queues?.cache?.failed),3)])])])]),p(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Qg,[n("div",Xg,[t[49]||(t[49]=n("span",{class:"ov-panel-title"},"Services",-1)),n("span",Zg,u(e.fmt?.number(e.data?.users?.total))+" users \xB7 "+u(e.data?.conferences?.total)+" conferences",1)]),n("div",xg,[n("div",ey,[t[51]||(t[51]=n("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),n("div",ty,[t[50]||(t[50]=n("span",{class:"ov-svc-name"},"web",-1)),n("span",ny,u(e.data?.system?.nodeVersion),1)]),n("span",oy,"uptime "+u(e.humanDuration(e.data?.system?.uptime)),1)]),n("div",sy,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",iy,[t[52]||(t[52]=n("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(l(),d("span",ry,u(e.queueTotal(e.data?.queues?.download))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.download)?p("v-if",!0):(l(),d("span",ay,"idle"))])]),n("div",ly,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",dy,[t[53]||(t[53]=n("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(l(),d("span",uy,u(e.queueTotal(e.data?.queues?.cache))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.cache)?p("v-if",!0):(l(),d("span",cy,"idle"))])]),n("div",py,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",fy,[t[54]||(t[54]=n("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(l(),d("span",hy,u(e.queueTotal(e.data?.queues?.remove))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.remove)?p("v-if",!0):(l(),d("span",my,"idle"))])]),n("div",vy,[n("span",{class:P(["ov-svc-dot",e.data?.repos?.recentErrors24h>10?"ov-dot-warn":"ov-dot-ok"])},null,2),n("div",gy,[t[55]||(t[55]=n("span",{class:"ov-svc-name"},"errors",-1)),n("span",yy,u(e.data?.errors?.last24h)+" / 24h",1)])])])])])):p("v-if",!0),n("section",by,[n("div",wy,[t[60]||(t[60]=n("div",null,[n("h2",{class:"ov-panel-title",id:"cache-heading"},"Cache"),n("p",{class:"ov-performance-note"},"Shared storage, repeated reads and anonymization work \xB7 refreshes every 30 seconds")],-1)),n("div",ky,[t[58]||(t[58]=n("label",{for:"cache-window"},"Time range",-1)),D(n("select",{id:"cache-window",class:"form-control form-control-sm","onUpdate:modelValue":t[0]||(t[0]=o=>e.cacheMinutes=o),onChange:t[1]||(t[1]=o=>e.loadCache())},[...t[56]||(t[56]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1),n("option",{value:1440},"Last 24 hours",-1),n("option",{value:10080},"Last 7 days",-1)])],544),[[pn,e.cacheMinutes,void 0,{number:!0}]]),t[59]||(t[59]=n("label",{for:"cache-traffic"},"Traffic",-1)),D(n("select",{id:"cache-traffic",class:"form-control form-control-sm","onUpdate:modelValue":t[2]||(t[2]=o=>e.cacheTraffic=o)},[...t[57]||(t[57]=[fe('',6)])],512),[[pn,e.cacheTraffic]])])]),e.cacheError?(l(),d("div",Ey,[n("span",null,u(e.cacheError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[3]||(t[3]=o=>e.loadCache())},"Retry")])):p("v-if",!0),!e.cacheReport&&!e.cacheError?(l(),d("p",Cy,"Loading cache monitoring\u2026")):p("v-if",!0),e.cacheReport?.available?(l(),d(K,{key:2},[e.cacheReport.enabled?p("v-if",!0):(l(),d("p",Sy,"Shared blob storage is disabled. Inspection and legacy-cache activity are still measured.")),e.cacheReport.filesystemSupported?p("v-if",!0):(l(),d("p",_y,"Shared blobs require a local filesystem. The configured storage continues to use its existing cache.")),e.cacheReport.dropped?(l(),d("p",Ny,u(e.cacheReport.dropped)+" telemetry events were dropped. Totals may be incomplete.",1)):p("v-if",!0),e.cacheReport.source?(l(),d("div",Ry,[n("table",Dy,[t[61]||(t[61]=n("caption",{class:"sr-only"},"Current shared-cache storage and byte budgets",-1)),t[62]||(t[62]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Pool"),n("th",{scope:"col"},"Allocated / budget"),n("th",{scope:"col"},"Reserved for fills"),n("th",{scope:"col"},"Original bytes"),n("th",{scope:"col"},"Blobs"),n("th",{scope:"col"},"Active readers")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne([{name:"Source blobs",data:e.cacheReport.source},{name:"Transformed output",data:e.cacheReport.results}],o=>D((l(),d("tr",{key:o.name},[n("th",Ty,u(o.name),1),n("td",null,u(e.humanBytes(o.data?.allocatedBytes))+" / "+u(e.humanBytes(o.data?.budgetBytes)),1),n("td",null,u(e.humanBytes(o.data?.reservedBytes)),1),n("td",null,u(e.humanBytes(o.data?.originalBytes)),1),n("td",null,u(o.data?.blobs),1),n("td",null,u(o.data?.activeReaders),1)])),[[W,o.data]])),128))])])])):p("v-if",!0),e.cacheReport.source?(l(),d("p",Ay,"Source request hit rate: "+u(e.cacheRate("source","count"))+" \xB7 Source byte hit rate: "+u(e.cacheRate("source","bytes"))+" \xB7 Decision hit rate: "+u(e.cacheRate("decision","count")),1)):p("v-if",!0),t[65]||(t[65]=n("p",{class:"ov-performance-note"},"Reuse counts measure consecutive reads of the same blob within each interval. Codec timings are elapsed stream time, not CPU time; eviction times measure how long a blob was idle. Known monitors are identified by request metadata; other automation may remain in file reads.",-1)),e.cacheRows().length?(l(),d("div",Oy,[n("table",Py,[t[63]||(t[63]=n("caption",{class:"sr-only"},"Cache events for the selected time range and traffic",-1)),t[64]||(t[64]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Event"),n("th",{scope:"col"},"Traffic"),n("th",{scope:"col"},"Count"),n("th",{scope:"col"},"Bytes"),n("th",{scope:"col"},"Mean measured time"),n("th",{scope:"col"},"p95 bound")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne(e.cacheRows(),o=>(l(),d("tr",{key:o.name+":"+o.traffic},[n("th",Iy,u(e.cacheEventName(o.name)),1),n("td",null,u(o.traffic),1),n("td",null,u(o.count),1),n("td",null,u(e.humanBytes(o.bytes)),1),n("td",null,u(o.ms?(o.ms/o.count).toFixed(2)+" ms":"Not timed"),1),n("td",null,u(e.cacheP95(o)),1)]))),128))])])])):(l(),d("p",Vy,"No cache events in this time range for the selected traffic.")),n("p",qy,"Updated "+u(e.sampleAge(e.cacheReport))+" seconds ago. Minute history is retained for 48 hours; hourly history for 30 days.",1)],64)):p("v-if",!0)]),n("section",My,[n("div",Uy,[t[68]||(t[68]=n("div",null,[n("h2",{class:"ov-panel-title",id:"performance-heading"},"Request performance"),n("p",{class:"ov-performance-note"},"Request latency and process health \xB7 refreshes every 30 seconds")],-1)),n("div",$y,[t[67]||(t[67]=n("label",{for:"performance-window"},"Time range",-1)),D(n("select",{id:"performance-window",class:"form-control form-control-sm","onUpdate:modelValue":t[4]||(t[4]=o=>e.performanceMinutes=o),onChange:t[5]||(t[5]=o=>e.loadPerformance()),"aria-label":"Performance time range"},[...t[66]||(t[66]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1)])],544),[[pn,e.performanceMinutes,void 0,{number:!0}]])])]),e.performanceError?(l(),d("div",Ly,[t[69]||(t[69]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,u(e.performanceError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[6]||(t[6]=o=>e.loadPerformance())},"Retry")])):p("v-if",!0),!e.performance&&!e.performanceError?(l(),d("p",Fy,"Loading performance monitoring\u2026")):p("v-if",!0),e.performance?.available?(l(),d("div",By,[n("div",Hy,[n("button",{id:"performance-routes-tab",type:"button",class:P(["paper-tab",{active:e.performanceTab==="routes"}]),role:"tab","aria-selected":e.performanceTab==="routes",tabindex:e.performanceTab==="routes"?0:-1,"aria-controls":"performance-routes",onClick:t[7]||(t[7]=o=>e.performanceTab="routes"),onKeydown:t[8]||(t[8]=o=>e.previewTabKeydown(o))},"Routes",42,zy),n("button",{id:"performance-processes-tab",type:"button",class:P(["paper-tab",{active:e.performanceTab==="processes"}]),role:"tab","aria-selected":e.performanceTab==="processes",tabindex:e.performanceTab==="processes"?0:-1,"aria-controls":"performance-processes",onClick:t[9]||(t[9]=o=>e.performanceTab="processes"),onKeydown:t[10]||(t[10]=o=>e.previewTabKeydown(o))},"Processes",42,jy),n("button",{id:"performance-stages-tab",type:"button",class:P(["paper-tab",{active:e.performanceTab==="stages"}]),role:"tab","aria-selected":e.performanceTab==="stages",tabindex:e.performanceTab==="stages"?0:-1,"aria-controls":"performance-stages",onClick:t[11]||(t[11]=o=>e.performanceTab="stages"),onKeydown:t[12]||(t[12]=o=>e.previewTabKeydown(o))},"Work stages",42,Gy)]),D(n("div",Wy,[e.performance.routes?.length?(l(),d("div",Ky,[n("table",Yy,[t[70]||(t[70]=n("caption",{class:"sr-only"},"Route latency for the selected time range",-1)),t[71]||(t[71]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Route"),n("th",{scope:"col",class:"num"},"Requests"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"First byte p95"),n("th",{scope:"col",class:"num"},"p95"),n("th",{scope:"col",class:"num"},"p99"),n("th",{scope:"col",class:"num"},"Interrupted"),n("th",{scope:"col",class:"num"},"5xx"),n("th",{scope:"col",class:"num"},"Slow")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne(e.performance.routes,o=>(l(),d("tr",{key:o.service+o.method+o.route},[n("th",Jy,[n("span",null,u(o.route),1),n("small",null,u(o.service)+" \xB7 "+u(o.method),1)]),n("td",Qy,u(e.fmt.number(o.count)),1),n("td",Xy,u(e.formatMs(o.avgMs)),1),n("td",Zy,u(e.firstByteBound(o)),1),n("td",xy,u(e.latencyBound(o,"p95UpperMs")),1),n("td",eb,u(e.latencyBound(o,"p99UpperMs")),1),n("td",{class:P(["num",{"ov-metric-warn":o.aborted>0}])},u(e.fmt.number(o.aborted)),3),n("td",{class:P(["num",{"ov-metric-warn":o.errors>0}])},u(e.fmt.number(o.errors)),3),n("td",{class:P(["num",{"ov-metric-warn":o.slow>0}])},u(e.fmt.number(o.slow)),3)]))),128))])])])):(l(),d("p",tb,"No recorded requests in this time range yet."))],512),[[W,e.performanceTab==="routes"]]),D(n("div",ob,[t[75]||(t[75]=n("p",{class:"ov-performance-note"},"API and streamer processes \xB7 latest sample per instance",-1)),e.performance.instances?.length?(l(),d("div",ib,[n("table",rb,[t[73]||(t[73]=n("caption",{class:"sr-only"},"API and streamer process resource usage",-1)),t[74]||(t[74]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Process"),n("th",{scope:"col",class:"num"},"RSS / limit"),n("th",{scope:"col",class:"num"},"CPU"),n("th",{scope:"col",class:"num"},"Event loop p95"),n("th",{scope:"col",class:"num"},"Active requests"),n("th",{scope:"col",class:"num"},"Sockets / CLOSE_WAIT"),n("th",{scope:"col",class:"num"},"Workers / waiting"),n("th",{scope:"col",class:"num"},"Sample age"),n("th",{scope:"col",class:"num"},"Dropped batches / metrics")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne(e.performance.instances,o=>(l(),d("tr",{key:o.instance,class:P({"ov-metric-warning-row":e.performanceWarning(o)})},[n("th",ab,[n("span",null,u(o.instance),1),e.performanceWarning(o)?(l(),d("small",lb,[...t[72]||(t[72]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),v(" Needs attention",-1)])])):p("v-if",!0)]),n("td",db,[v(u(e.humanBytes(o.memory.rss))+" / "+u(e.humanBytes(o.memoryLimitBytes)),1),n("small",null,"Peak "+u(e.humanBytes(e.peakRss(o))),1)]),n("td",ub,u(o.cpuPercent.toFixed(1))+"%",1),n("td",cb,u(o.eventLoop.p95Ms.toFixed(1))+" ms",1),n("td",pb,u(o.activeRequests),1),n("td",fb,u(o.sockets?.descriptors??"Unavailable")+" / "+u(o.sockets?.closeWait??"Unavailable"),1),n("td",hb,u(o.workers?.running??0)+" / "+u(o.workers?.waiting??0),1),n("td",mb,u(e.sampleAge(o))+" s",1),n("td",vb,u(o.droppedBatches)+" / "+u(o.droppedMetrics),1)],2))),128))])])])):(l(),d("div",sb,"No recent process samples. Monitoring coverage is incomplete."))],512),[[W,e.performanceTab==="processes"]]),D(n("div",gb,[e.performance.stages?.some(o=>o.metric!=="first_byte")?(l(),d("div",yb,[n("table",bb,[t[76]||(t[76]=n("caption",{class:"sr-only"},"Work stages and cache results",-1)),t[77]||(t[77]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Work stage"),n("th",{scope:"col",class:"num"},"Samples"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"p95")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne(e.performance.stages.filter(o=>o.metric!=="first_byte"),o=>(l(),d("tr",{key:o.service+o.metric},[n("th",wb,[n("span",null,u(o.metric),1),n("small",null,u(o.service),1)]),n("td",kb,u(e.fmt.number(o.count)),1),n("td",Eb,u(e.formatMs(o.avgMs)),1),n("td",Cb,u(e.latencyBound(o,"p95UpperMs")),1)]))),128))])])])):(l(),d("p",Sb,"No recorded work stages or cache results in this time range yet."))],512),[[W,e.performanceTab==="stages"]]),t[78]||(t[78]=n("details",{class:"ov-performance-help"},[n("summary",null,"How to read these metrics"),n("p",null,"Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked \u201CNeeds attention\u201D have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.")],-1))])):p("v-if",!0)])])}var _b={class:"container paper-page admin-page"},Nb={class:"q-header"},Rb={class:"q-header-actions"},Db={class:"q-range-btns"},Tb={class:"q-cards"},Ab=["aria-pressed","onKeydown","onClick"],Ob={class:"q-card-head"},Pb=["textContent"],Ib=["textContent"],Vb={class:"q-card-sub"},qb={key:0,class:"q-card-bar"},Mb={key:0,class:"q-detail"},Ub={class:"q-throughput"},$b={class:"q-section-label"},Lb={class:"q-section-right"},Fb={class:"q-stats-panel"},Bb={class:"q-section-label"},Hb={class:"q-stats-grid"},zb={class:"q-stat"},jb=["textContent"],Gb={class:"q-stat"},Wb=["textContent"],Kb={class:"q-stat"},Yb=["textContent"],Jb={class:"q-stat"},Qb=["textContent"],Xb={class:"q-stat"},Zb=["textContent"],xb={class:"q-stat"},e1=["textContent"],t1={class:"q-stats-actions"},n1=["disabled"],o1={class:"q-jobs"},s1={class:"q-jobs-header"},i1={class:"q-section-label"},r1={class:"q-state-filters"},a1={class:"q-state-toggle"},l1={type:"checkbox"},d1={class:"q-search-row"},u1={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},c1={class:"q-auto-refresh"},p1={type:"checkbox"},f1={key:0,class:"q-table"},h1=["onClick"],m1={class:"q-cell-state"},v1=["textContent"],g1=["textContent"],y1={class:"q-cell-id"},b1=["textContent","href"],w1={class:"q-cell-payload"},k1=["textContent"],E1={key:0,class:"q-payload-detail"},C1=["textContent"],S1=["textContent"],_1={class:"q-cell-progress"},N1={key:0,class:"q-progress-wrap"},R1=["textContent"],D1={class:"q-cell-actions"},T1=["onClick"],A1=["onClick"],O1={key:0,class:"q-detail-row"},P1={colspan:"7"},I1={class:"q-job-detail"},V1={class:"q-job-detail-grid"},q1={class:"q-job-detail-item"},M1={class:"q-job-detail-value"},U1=["textContent","href"],$1={class:"q-job-detail-item"},L1={class:"q-job-detail-value"},F1=["textContent"],B1={key:0,class:"q-job-detail-item"},H1=["textContent"],z1={key:1,class:"q-job-detail-item"},j1=["textContent"],G1={key:2,class:"q-job-detail-item"},W1={class:"q-job-detail-value"},K1={key:3,class:"q-job-detail-item"},Y1=["textContent"],J1={key:4,class:"q-job-detail-item"},Q1=["textContent"],X1={key:5,class:"q-job-detail-item"},Z1=["textContent"],x1={key:6,class:"q-job-detail-item"},ew=["textContent"],tw={key:7,class:"q-job-detail-item"},nw=["textContent"],ow={key:0,class:"q-job-detail-error"},sw=["textContent"],iw={key:1},rw=["textContent"],aw={class:"q-job-detail-actions"},lw=["onClick"],dw=["onClick"],uw=["href"],cw={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},pw={key:0},fw={key:1};function Vl(e,t){let o=ge("field");return l(),d("div",_b,[t[48]||(t[48]=n("div",{class:"paper-crumbs"},[v("Admin \xA0/\xA0 "),n("span",{class:"here"},"Queues")],-1)),n("div",Nb,[t[12]||(t[12]=n("h1",{class:"paper-page-title"},"Queues",-1)),n("div",Rb,[n("div",Db,[n("button",{class:P(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[0]||(t[0]=i=>e.setRange("1h"))},"1h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[1]||(t[1]=i=>e.setRange("6h"))},"6h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[2]||(t[2]=i=>e.setRange("24h"))},"24h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[3]||(t[3]=i=>e.setRange("7d"))},"7d",2)]),n("button",{class:"btn btn-sm",onClick:t[4]||(t[4]=i=>e.pauseAll())},"Pause all"),n("button",{class:"btn btn-sm btn-danger-soft",onClick:t[5]||(t[5]=i=>e.drainSelected())},"Drain "+u(e.selectedQueue),1)])]),t[49]||(t[49]=fe('',1)),p(" Queue overview cards "),n("div",Tb,[(l(!0),d(K,null,ne(e.queueList,(i,s)=>(l(),d("div",{class:P(["q-card",{selected:e.selectedQueue==i?.key,paused:i?.paused}]),role:"button",tabindex:"0","aria-pressed":e.selectedQueue===i.key,onKeydown:[An(de(r=>e.selectQueue(i.key),["prevent"]),["enter"]),An(de(r=>e.selectQueue(i.key),["prevent"]),["space"])],onClick:r=>e.selectQueue(i.key)},[n("div",Ob,[n("span",{class:P(["q-dot",{"q-dot-red":i?.paused||i?.counts?.failed>0}])},null,2),n("span",{class:"q-card-name",textContent:u(i?.label)},null,8,Pb)]),n("div",{class:"q-card-count",textContent:u((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0))},null,8,Ib),n("div",Vb,[n("span",null,"waiting \xB7 "+u(i?.counts?.active||0)+" active",1),i?.counts?.active?(l(),d("div",qb,[n("div",{class:"q-card-bar-fill",style:qe({width:i?.counts?.active/((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0)||1)*100+"%"})},null,4)])):p("v-if",!0)])],42,Ab))),256))]),p(" Detail: throughput chart + stats panel "),e.selectedStats?(l(),d("div",Mb,[n("div",Ub,[n("div",$b,[v(u(e.selectedQueue)+" \xB7 throughput ",1),n("span",Lb,[t[13]||(t[13]=n("span",{class:"q-legend-completed"},"\u25CF",-1)),t[14]||(t[14]=v(" completed ",-1)),t[15]||(t[15]=n("span",{class:"q-legend-failed"},"\u25CF",-1)),t[16]||(t[16]=v(" failed ",-1)),t[17]||(t[17]=n("span",{class:"q-legend-exec"},"- -",-1)),v(" avg time \xB7 "+u(e.range),1)])]),t[18]||(t[18]=n("div",{class:"q-chart-wrap"},[n("canvas",{id:"q-throughput-chart",height:"180"}),n("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}}),n("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}})],-1))]),n("div",Fb,[n("div",Bb,u(e.selectedQueue)+" \xB7 stats",1),n("div",Hb,[n("div",zb,[t[19]||(t[19]=n("div",{class:"q-stat-label"},"Waiting",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.waiting||0)},null,8,jb)]),n("div",Gb,[t[20]||(t[20]=n("div",{class:"q-stat-label"},"Active",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.active||0)},null,8,Wb)]),n("div",Kb,[t[21]||(t[21]=n("div",{class:"q-stat-label"},"Completed (24h)",-1)),n("div",{class:"q-stat-value",textContent:u(e.fmt?.number(e.selectedStats?.completed24h))},null,8,Yb)]),n("div",Jb,[t[22]||(t[22]=n("div",{class:"q-stat-label"},"Failed (24h)",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.failed24h||0)},null,8,Qb)]),n("div",Xb,[t[23]||(t[23]=n("div",{class:"q-stat-label"},"Delayed",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.delayed||0)},null,8,Zb)]),n("div",xb,[t[24]||(t[24]=n("div",{class:"q-stat-label"},"Workers",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.workers||0)},null,8,e1)])]),n("div",t1,[n("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=i=>e.togglePause())},u(e.selectedStats?.paused?"Resume":"Pause"),1),n("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=i=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,n1),n("button",{class:"btn btn-sm",onClick:t[8]||(t[8]=i=>e.emptyQueue())},"Empty")])])])):p("v-if",!0),e.actionError?(l(),d("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=i=>e.actionError=null)},[t[25]||(t[25]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),v(" "+u(e.actionError),1)])):p("v-if",!0),p(" Jobs table "),n("div",o1,[n("div",s1,[n("div",i1,"All jobs \xB7 "+u(e.selectedQueue),1),n("div",r1,[(l(!0),d(K,null,ne(e.allStates,(i,s)=>(l(),d("label",a1,[D(n("input",l1,null,512),[[o,{state:e.viewState,set:r=>{e.stateFilter[i]=r},value:e.stateFilter[i],form:null,options:{}}]]),n("span",{class:P("q-state-chip q-state-"+i)},u(i),3)]))),256))])]),n("div",d1,[D(n("input",u1,null,512),[[o,{state:e.viewState,set:i=>{e.query.search=i},value:e.query?.search,form:null,options:{}}]]),n("label",c1,[D(n("input",p1,null,512),[[o,{state:e.viewState,set:i=>{e.query.autoRefresh=i},value:e.query?.autoRefresh,form:null,options:{}}]]),t[26]||(t[26]=v(" Auto-refresh ",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[10]||(t[10]=i=>e.refreshNow()),"aria-label":"Refresh"},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])]),e.filteredJobs().length>0?(l(),d("table",f1,[t[46]||(t[46]=n("thead",null,[n("tr",null,[n("th",null,"State"),n("th",null,"Job id"),n("th",null,"Payload"),n("th",null,"Attempts"),n("th",null,"Duration"),n("th",null,"Progress"),n("th")])],-1)),(l(!0),d(K,null,ne(e.filteredJobs(),(i,s)=>(l(),d("tbody",null,[n("tr",{style:{cursor:"pointer"},class:P({"q-row-failed":i?._state=="failed","q-row-expanded":e.expanded[i?.id]}),onClick:r=>e.toggleJob(i)},[n("td",m1,[n("span",{textContent:u(i?._state),class:P("q-state-badge q-state-"+i?._state)},null,10,v1),i?._state=="delayed"&&i?.delayUntil?(l(),d("span",{key:0,class:"q-delay-hint",textContent:u(e.delayCountdown(i?.delayUntil))},null,8,g1)):p("v-if",!0)]),n("td",y1,[(l(),d("svg",{class:P(["ui-icon q-chevron",{"q-chevron-open":e.expanded[i?.id]}]),"aria-hidden":"true"},[...t[28]||(t[28]=[n("use",{href:"#ui-icon-chevron-right"},null,-1)])],2)),n("a",{target:"_blank",textContent:u("job:"+e.fmt.limitTo(i?.id,6)),onClick:t[11]||(t[11]=r=>r.stopPropagation()),href:e.safeUrl("/r/"+i?.id)},null,8,b1)]),n("td",w1,[n("span",{textContent:u(i?.name||"anonymize")},null,8,k1),i?.data?.repoId&&i?.data?.repoId!==i?.name?(l(),d("span",E1," \xB7 "+u(i?.data?.repoId),1)):p("v-if",!0)]),n("td",{class:"q-cell-num",textContent:u(i?.attemptsMade||1)},null,8,C1),n("td",{class:"q-cell-num",textContent:u(e.jobDuration(i))},null,8,S1),n("td",_1,[e.jobProgressPct(i)!==null?(l(),d("div",N1,[n("div",{class:"q-progress-bar",style:qe({"--pct":e.jobProgressPct(i)+"%"})},null,4),n("span",{class:"q-progress-label",textContent:u(e.jobProgressPct(i)+"%")},null,8,R1)])):p("v-if",!0)]),n("td",D1,[i?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm btn-icon",title:"Retry",onClick:r=>{e.retryJob(i),r.stopPropagation()},"aria-label":"Retry job"},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])],8,T1)):p("v-if",!0),n("button",{class:"btn btn-sm btn-icon",title:"Remove","aria-label":"Remove job",onClick:r=>{e.removeJob(i),r.stopPropagation()}},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,A1)])],10,h1),e.expanded[i?.id]?(l(),d("tr",O1,[n("td",P1,[n("div",I1,[n("div",V1,[n("div",q1,[t[31]||(t[31]=n("span",{class:"q-job-detail-label"},"Job id",-1)),n("span",M1,[n("a",{target:"_blank",textContent:u(i?.id),href:e.safeUrl("/r/"+i?.id)},null,8,U1)])]),n("div",$1,[t[32]||(t[32]=n("span",{class:"q-job-detail-label"},"State",-1)),n("span",L1,[n("span",{textContent:u(i?._state),class:P("q-state-badge q-state-"+i?._state)},null,10,F1)])]),i?.data?.repoId?(l(),d("div",B1,[t[33]||(t[33]=n("span",{class:"q-job-detail-label"},"Repo ID",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.data?.repoId)},null,8,H1)])):p("v-if",!0),i?.timestamp?(l(),d("div",z1,[t[34]||(t[34]=n("span",{class:"q-job-detail-label"},"Created",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.timestamp))},null,8,j1)])):p("v-if",!0),i?._state=="delayed"&&i?.delayUntil?(l(),d("div",G1,[t[35]||(t[35]=n("span",{class:"q-job-detail-label"},"Retry at",-1)),n("span",W1,u(e.humanTime(i?.delayUntil))+" ("+u(e.delayCountdown(i?.delayUntil))+")",1)])):p("v-if",!0),i?.processedOn?(l(),d("div",K1,[t[36]||(t[36]=n("span",{class:"q-job-detail-label"},"Processed",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.processedOn))},null,8,Y1)])):p("v-if",!0),i?.finishedOn?(l(),d("div",J1,[t[37]||(t[37]=n("span",{class:"q-job-detail-label"},"Finished",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.finishedOn))},null,8,Q1)])):p("v-if",!0),i?.attemptsMade?(l(),d("div",X1,[t[38]||(t[38]=n("span",{class:"q-job-detail-label"},"Attempts",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.attemptsMade)},null,8,Z1)])):p("v-if",!0),i?.progress&&i?.progress?.status?(l(),d("div",x1,[t[39]||(t[39]=n("span",{class:"q-job-detail-label"},"Status",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.progress?.status)},null,8,ew)])):p("v-if",!0),e.jobProgressPct(i)!==null?(l(),d("div",tw,[t[40]||(t[40]=n("span",{class:"q-job-detail-label"},"Progress",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.jobProgressPct(i)+"%")},null,8,nw)])):p("v-if",!0)]),i?.failedReason?(l(),d("div",ow,[t[41]||(t[41]=n("span",{class:"q-job-detail-label"},"Error",-1)),n("div",{class:"q-error-reason",textContent:u(i?.failedReason)},null,8,sw)])):p("v-if",!0),i?.stacktrace?.length?(l(),d("div",iw,[t[42]||(t[42]=n("span",{class:"q-job-detail-label"},"Stacktrace",-1)),(l(!0),d(K,null,ne(i?.stacktrace,(r,a)=>(l(),d("pre",{class:"q-error-stack",key:a},[n("code",{textContent:u(r)},null,8,rw)]))),128))])):p("v-if",!0),n("div",aw,[i?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",onClick:r=>e.retryJob(i)},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Retry",-1)])],8,lw)):p("v-if",!0),n("button",{class:"btn btn-sm",onClick:r=>e.removeJob(i)},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove",-1)])],8,dw),n("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+i?.id)},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1),v(" View repo",-1)])],8,uw)])])])])):p("v-if",!0)]))),256))])):p("v-if",!0),e.filteredJobs().length==0?(l(),d("div",cw,[t[47]||(t[47]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1)),e.query?.search?p("v-if",!0):(l(),d("span",pw,"No jobs in the "+u(e.selectedQueue)+" queue.",1)),e.query?.search?(l(),d("span",fw,"No jobs match the current filters.")):p("v-if",!0)])):p("v-if",!0)])])}var hw={class:"container paper-page admin-page"},mw={class:"admin-summary"},vw={class:"summary-total"},gw={class:"summary-meta"},yw=["aria-pressed"],bw={class:"count"},ww=["aria-pressed"],kw={class:"count"},Ew=["aria-pressed"],Cw={class:"count"},Sw=["aria-pressed"],_w={class:"count"},Nw=["aria-pressed"],Rw={class:"count"},Dw={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},Tw={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},Aw={class:"admin-filter-row"},Ow={class:"search-wrap"},Pw={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},Iw={key:0,class:"admin-search-hint"},Vw={class:"admin-filter-inline"},qw={type:"text",class:"form-control form-control-sm",placeholder:"username"},Mw={class:"admin-filter-inline"},Uw={type:"text",class:"form-control form-control-sm",placeholder:"ID"},$w={class:"admin-filter-inline","aria-label":"Pagination"},Lw=["disabled"],Fw={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},Bw=["disabled"],Hw={key:0,class:"admin-filter-row"},zw={class:"admin-active-chips"},jw={class:"key"},Gw=["onClick"],Ww={key:1,class:"bulk-bar"},Kw={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},Yw={class:"paper-table-head",role:"row"},Jw={role:"columnheader",style:{width:"28px"}},Qw=["checked"],Xw={role:"columnheader"},Zw={role:"columnheader"},xw={role:"columnheader",class:"num"},ek={role:"columnheader"},tk={role:"cell",style:{width:"28px"}},nk={type:"checkbox","aria-label":"Select repository"},ok={class:"cell-anon",role:"cell"},sk={class:"anon-text"},ik=["textContent","href"],rk={class:"anon-sub"},ak=["textContent","href"],lk={key:0},dk=["textContent","href"],uk={key:1},ck=["textContent","href"],pk={key:2},fk={class:"cell-status",role:"cell"},hk={class:"status-line"},mk=["textContent"],vk=["textContent","title"],gk={class:"cell-views num",role:"cell"},yk=["textContent"],bk={class:"cell-expires",role:"cell"},wk=["textContent"],kk={class:"cell-actions",role:"cell"},Ek={class:"dropdown"},Ck={class:"dropdown-menu dropdown-menu-right"},Sk=["href"],_k=["href"],Nk=["href"],Rk=["onClick"],Dk=["onClick"],Tk=["onClick"],Ak=["onClick"],Ok=["onClick"],Pk=["onClick"],Ik={key:0,class:"paper-table-empty"},Vk={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},qk={style:{"font-size":"12px",color:"var(--ink-muted)"}},Mk={key:0,class:"pagination-compact"},Uk=["disabled"],$k=["max"],Lk=["disabled"],Fk={class:"admin-filter-inline"},Bk={class:"form-control form-control-sm"};function ql(e,t){let o=ge("field"),i=ge("form");return l(),d("div",hw,[t[69]||(t[69]=fe('
Admin \xA0/\xA0 Repositories

Repositories

',3)),n("div",mw,[n("span",vw,u(e.total>=0?e.fmt.number(e.total):"\u2026"),1),n("span",gw,u(e.fmt?.humanFileSize(e.totalSize))+" on disk",1),n("button",{type:"button",class:P(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[18]||(t[18]=v("Ready ",-1)),n("span",bw,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,yw),n("button",{type:"button",class:P(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[19]||(t[19]=v("Preparing ",-1)),n("span",kw,u(e.fmt?.number(e.statusCountFor("preparing")+e.statusCountFor("download"))),1)],10,ww),n("button",{type:"button",class:P(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[20]||(t[20]=v("Errored ",-1)),n("span",Cw,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,Ew),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[21]||(t[21]=v("Expired ",-1)),n("span",_w,u(e.fmt?.number(e.statusCountFor("expired")+e.statusCountFor("expiring"))),1)],10,Sw),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[22]||(t[22]=v("Removed ",-1)),n("span",Rw,u(e.fmt?.number(e.statusCountFor("removed")+e.statusCountFor("removing"))),1)],10,Nw)]),e.fetchError?(l(),d("div",Dw,[t[23]||(t[23]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",Tw,[p(" Row 1: search + scoped inputs + headline actions "),n("div",Aw,[n("div",Ow,[D(n("input",Pw,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",Iw,"/"))]),n("span",Vw,[t[24]||(t[24]=n("label",null,"Owner",-1)),D(n("input",qw,null,512),[[o,{state:e.viewState,set:s=>{e.query.owner=s},value:e.query?.owner,form:null,options:{}}]])]),n("span",Mw,[t[25]||(t[25]=n("label",null,"Conference",-1)),D(n("input",Uw,null,512),[[o,{state:e.viewState,set:s=>{e.query.conference=s},value:e.query?.conference,form:null,options:{}}]])]),t[29]||(t[29]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export",-1)])]),n("span",$w,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,Lw),n("span",Fw,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Bw)])]),p(" Row 2: appears only when there are active filter chips "),e.chips?.length?(l(),d("div",Hw,[n("div",zw,[(l(!0),d(K,null,ne(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",jw,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button","aria-label":"Remove filter",onClick:a=>e.clearFilter(s.key)},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,Gw)]))),128))])])):p("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",Ww,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[31]||(t[31]=v(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=s=>e.bulkRefresh())},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[9]||(t[9]=s=>e.bulkRemoveCache())},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),v(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[10]||(t[10]=s=>e.clearSelection())},"Clear")])):p("v-if",!0),n("div",Kw,[n("div",Yw,[n("div",Jw,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[11]||(t[11]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,Qw)]),n("div",Xw,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[12]||(t[12]=s=>e.sortBy("source.repositoryName"))},[t[35]||(t[35]=v("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",Zw,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[13]||(t[13]=s=>e.sortBy("status"))},[t[37]||(t[37]=v("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[36]||(t[36]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",xw,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[14]||(t[14]=s=>e.sortBy("pageView"))},[t[39]||(t[39]=v("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[38]||(t[38]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",ek,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[15]||(t[15]=s=>e.sortBy("anonymizeDate"))},[t[41]||(t[41]=v("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[40]||(t[40]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[42]||(t[42]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(K,null,ne(e.filteredRepositories,(s,r)=>(l(),d("div",{class:P(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[n("div",tk,[D(n("input",nk,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),n("div",ok,[t[47]||(t[47]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",sk,[n("a",{class:"repo-name",target:"_blank",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,ik),n("div",rk,[n("a",{textContent:u(s?.source?.repositoryName),href:e.safeUrl("https://github.com/"+s?.source?.repositoryName+"/")},null,8,ak),s?.options?.update?(l(),d("span",lk,[t[43]||(t[43]=v("\xA0\xB7\xA0",-1)),n("a",{textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,dk)])):p("v-if",!0),s?.options?.update?p("v-if",!0):(l(),d("span",uk,[t[44]||(t[44]=v("\xA0\xB7\xA0@",-1)),n("a",{textContent:u(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,ck)])),s?.conference?(l(),d("span",pk,[t[45]||(t[45]=v("\xA0\xB7\xA0",-1)),t[46]||(t[46]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),v(" "+u(s?.conference),1)])):p("v-if",!0),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.humanFileSize(s?.size?.storage)),1),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.number(s?.options?.terms?.length))+" "+u(s?.options?.terms?.length===1?"term":"terms"),1)])])]),n("div",fk,[n("span",hk,[n("span",{class:P(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,mk)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:u(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,vk)):p("v-if",!0)]),n("div",gk,[t[48]||(t[48]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[49]||(t[49]=v()),n("span",{textContent:u(e.fmt?.number(s?.pageView||0))},null,8,yk)]),n("div",bk,[t[50]||(t[50]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[51]||(t[51]=v()),n("span",{textContent:u(e.fmt?.humanTime(s?.anonymizeDate))},null,8,wk)]),n("div",kk,[n("div",Ek,[t[63]||(t[63]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",Ck,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[52]||(t[52]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit",-1)])],8,Sk),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[53]||(t[53]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View repo",-1)])],8,_k),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[54]||(t[54]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),v(" View page",-1)])],8,Nk)):p("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.fetchGithubInfo(s),["prevent"])},[...t[55]||(t[55]=[n("i",{class:"fab fa-github"},null,-1),v(" Live GitHub info",-1)])],8,Rk),t[61]||(t[61]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[56]||(t[56]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force update",-1)])],8,Dk),[[W,s?.status=="ready"||s?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Enable",-1)])],8,Tk),[[W,s?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.showStatusMessage(s),["prevent"])},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),v(" View status message",-1)])],8,Ak),[[W,s?.statusMessage]]),t[62]||(t[62]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removeCache(s),["prevent"])},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),v(" Remove cache",-1)])],8,Ok),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeRepository(s),["prevent"])},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove",-1)])],8,Pk),[[W,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",Ik,[...t[64]||(t[64]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No repositories match the current filters.",-1)])])):p("v-if",!0)]),n("div",Vk,[n("span",qk,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",Mk,[n("button",{class:"btn btn-sm",onClick:t[16]||(t[16]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[65]||(t[65]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),v(" Previous ",-1)])],8,Uk),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,$k),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[17]||(t[17]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[66]||(t[66]=[v(" Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Lk)])):p("v-if",!0),n("span",Fk,[t[68]||(t[68]=n("label",null,"Per page",-1)),D((l(),d("select",Bk,[...t[67]||(t[67]=[fe('',5)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var Hk={class:"container paper-page admin-page"},zk={class:"paper-crumbs"},jk={class:"here"},Gk={class:"paper-page-title"},Wk={key:0,class:"user-detail-card"},Kk={class:"user-header"},Yk=["src"],Jk={class:"status-dot-wrap"},Qk=["textContent"],Xk={key:0,class:"type-badge type-repo"},Zk={class:"user-actions",style:{"margin-top":"4px"}},xk={class:"user-detail-grid"},e0={class:"detail-value"},t0={class:"detail-value"},n0={key:0,class:"detail-value",style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},o0={key:1,class:"detail-value text-muted"},s0={class:"detail-value"},i0=["href"],r0={class:"detail-value"},a0={class:"detail-value"},l0={key:0},d0={key:1,class:"text-muted"},u0={class:"detail-value"},c0={key:0,style:{"margin-top":"20px"}},p0={class:"paper-table w-100",style:{"margin-top":"10px"}},f0={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},h0={class:"cell-anon",role:"cell"},m0={class:"anon-text"},v0=["textContent"],g0={class:"cell-expires",role:"cell"},y0={key:1,class:"admin-section-header"},b0={class:"section-count"},w0={key:2,class:"user-detail-card"},k0={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},E0={key:0,class:"alert alert-warning",role:"alert"},C0={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},S0={key:1,class:"paper-table w-100"},_0={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},N0=["textContent"],R0=["textContent"],D0={role:"cell"},T0={key:0},A0={key:1,class:"text-muted"},O0={role:"cell"},P0=["onClick"],I0={key:2,class:"paper-table-empty"},V0={class:"admin-section-header"},q0={class:"section-count"},M0={class:"admin-summary"},U0={class:"summary-total"},$0=["aria-pressed"],L0={class:"count"},F0=["aria-pressed"],B0={class:"count"},H0=["aria-pressed"],z0={class:"count"},j0=["aria-pressed"],G0={class:"count"},W0=["aria-pressed"],K0={class:"count"},Y0={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},J0={class:"admin-filter-row"},Q0={class:"search-wrap"},X0={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},Z0={key:3,class:"bulk-bar"},x0={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},eE={class:"paper-table-head",role:"row"},tE={role:"columnheader",style:{width:"28px"}},nE=["checked"],oE={role:"columnheader"},sE={role:"columnheader"},iE={role:"columnheader",class:"num"},rE={role:"columnheader"},aE={role:"cell",style:{width:"28px"}},lE={type:"checkbox","aria-label":"Select repository"},dE={class:"cell-anon",role:"cell"},uE={class:"anon-text"},cE=["textContent","href"],pE={class:"anon-sub"},fE=["textContent","href"],hE={key:0},mE=["textContent","href"],vE={key:1},gE=["textContent","href"],yE={key:2},bE={class:"cell-status",role:"cell"},wE={class:"status-line"},kE=["textContent"],EE=["textContent","title"],CE=["textContent"],SE=["textContent"],_E={class:"cell-actions",role:"cell"},NE={class:"dropdown"},RE={class:"dropdown-menu dropdown-menu-right"},DE=["href"],TE=["href"],AE=["href"],OE=["onClick"],PE=["onClick"],IE=["onClick"],VE=["onClick"],qE=["onClick"],ME=["onClick"],UE={key:0,class:"paper-table-empty"};function Ml(e,t){let o=ge("field"),i=ge("form");return l(),d("div",Hk,[n("div",zk,[t[22]||(t[22]=n("a",{href:"/admin/"},"Admin",-1)),t[23]||(t[23]=v(" \xA0/\xA0 ",-1)),t[24]||(t[24]=n("a",{href:"/admin/users"},"Users",-1)),t[25]||(t[25]=v(" \xA0/\xA0 ",-1)),n("span",jk,u(e.userInfo?.username||"Profile"),1)]),n("h1",Gk,u(e.userInfo?.username||"User"),1),t[87]||(t[87]=fe('',1)),e.userInfo?(l(),d("div",Wk,[n("div",Kk,[e.userInfo?.photo?(l(),d("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,Yk)):p("v-if",!0),n("div",null,[n("h2",null,[v(u(e.userInfo?.username)+" ",1),n("span",Jk,[n("span",{class:P(["status-dot",{"status-ready":e.userInfo?.status=="active","status-removed":e.userInfo?.status!="active"}])},null,2),n("span",{textContent:u(e.fmt?.title(e.userInfo?.status))},null,8,Qk)]),e.userInfo?.isAdmin?(l(),d("span",Xk,"Admin")):p("v-if",!0)]),n("div",Zk,[e.userInfo?.status!=="banned"?(l(),d("button",{key:0,class:"btn btn-sm text-danger",onClick:t[0]||(t[0]=s=>e.banUser())},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),v(" Ban",-1)])])):p("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(l(),d("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=s=>e.activateUser())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Activate",-1)])])):p("v-if",!0),e.userInfo?.isAdmin?p("v-if",!0):(l(),d("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=s=>e.promoteUser())},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),v(" Promote to admin",-1)])])),e.userInfo?.isAdmin?(l(),d("button",{key:3,class:"btn btn-sm text-danger",onClick:t[3]||(t[3]=s=>e.demoteUser())},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-minus"})],-1),v(" Remove admin",-1)])])):p("v-if",!0)])])]),n("div",xk,[t[32]||(t[32]=n("div",{class:"detail-label"},"ID",-1)),n("div",e0,u(e.userInfo?._id),1),t[33]||(t[33]=n("div",{class:"detail-label"},"Email",-1)),n("div",t0,u(e.userInfo?.emails?.[0]?.email),1),t[34]||(t[34]=n("div",{class:"detail-label"},"Access token",-1)),e.userInfo?.accessTokens?.github?(l(),d("div",n0,u(e.userInfo?.accessTokens?.github),1)):p("v-if",!0),e.userInfo?.accessTokens?.github?p("v-if",!0):(l(),d("div",o0,"None stored")),t[35]||(t[35]=n("div",{class:"detail-label"},"GitHub",-1)),n("div",s0,[n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[30]||(t[30]=n("i",{class:"fab fa-github"},null,-1)),v(" "+u(e.userInfo?.username),1)],8,i0)]),t[36]||(t[36]=n("div",{class:"detail-label"},"Created",-1)),n("div",r0,u(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[37]||(t[37]=n("div",{class:"detail-label"},"Last connection",-1)),n("div",a0,[e.userInfo?.accessTokenDates?.github?(l(),d("span",l0,u(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):p("v-if",!0),e.userInfo?.accessTokenDates?.github?p("v-if",!0):(l(),d("span",d0,"never"))]),t[38]||(t[38]=n("div",{class:"detail-label"},"GitHub repos",-1)),n("div",u0,[v(u(e.userInfo?.repositories?.length)+" repositories ",1),n("button",{class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=s=>e.showRepos=!e.showRepos)},u(e.showRepos?"Hide":"Show"),1),n("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=s=>e.getGitHubRepositories())},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Refresh ",-1)])])])]),e.showRepos?(l(),d("div",c0,[t[41]||(t[41]=n("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),n("div",p0,[(l(!0),d(K,null,ne(e.userInfo?.repositories,(s,r)=>(l(),d("div",f0,[n("div",h0,[t[39]||(t[39]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",m0,[n("span",{class:"repo-name",textContent:u(s?.name)},null,8,v0)])]),n("div",g0,[t[40]||(t[40]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-database"})],-1)),v(" "+u(e.fmt?.humanFileSize(s?.size)),1)])]))),256))])])):p("v-if",!0)])):p("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",y0,[t[42]||(t[42]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),v(" API tokens")],-1)),n("span",b0,u(e.tokens?.length),1)])):p("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",w0,[t[48]||(t[48]=n("p",{class:"paper-page-lede"},[v("Personal API tokens for this admin account. Send as "),n("code",null,"Authorization: Bearer "),v(" to authenticate without GitHub OAuth (useful for development).")],-1)),D((l(),d("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=de(s=>e.submitForm(s,()=>{e.createToken()}),["prevent"]))},[D(n("input",k0,null,512),[[o,{state:e.viewState,set:s=>{e.tokenForm.name=s},value:e.tokenForm?.name,form:null,options:{}}]]),t[43]||(t[43]=n("button",{type:"submit",class:"btn btn-ink"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})]),v(" Generate")],-1))],32)),[[i,e.viewState]]),e.tokenForm?.plaintext?(l(),d("div",E0,[t[44]||(t[44]=n("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),n("pre",C0,u(e.tokenForm?.plaintext),1),n("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=s=>e.tokenForm.plaintext=null)},"Dismiss")])):p("v-if",!0),e.tokens?.length?(l(),d("div",S0,[t[46]||(t[46]=n("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[n("div",{role:"columnheader"},"Name"),n("div",{role:"columnheader"},"Created"),n("div",{role:"columnheader"},"Last used"),n("div",{role:"columnheader","aria-label":"Actions"})],-1)),(l(!0),d(K,null,ne(e.tokens,(s,r)=>(l(),d("div",_0,[n("div",{role:"cell",textContent:u(s?.name)},null,8,N0),n("div",{role:"cell",textContent:u(e.fmt?.humanTime(s?.createdAt))},null,8,R0),n("div",D0,[s?.lastUsedAt?(l(),d("span",T0,u(e.fmt?.humanTime(s?.lastUsedAt)),1)):p("v-if",!0),s?.lastUsedAt?p("v-if",!0):(l(),d("span",A0,"never"))]),n("div",O0,[n("button",{class:"btn btn-sm text-danger btn-icon",title:"Revoke","aria-label":"Revoke token",onClick:a=>e.revokeToken(s)},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,P0)])]))),256))])):p("v-if",!0),e.tokens?.length?p("v-if",!0):(l(),d("div",I0,[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No tokens yet.",-1)])]))])):p("v-if",!0),n("div",V0,[t[49]||(t[49]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})]),v(" Anonymized repositories")],-1)),n("span",q0,u(e.repositories?.length),1)]),n("div",M0,[n("span",U0,u(e.fmt?.number(e.repositories?.length)),1),n("button",{type:"button",class:P(["summary-pill ok",{active:e.filters?.status?.ready===!1}]),title:"Toggle ready filter",onClick:t[8]||(t[8]=s=>e.filters.status.ready=!e.filters.status.ready),"aria-pressed":e.filters?.status?.ready===!1},[t[50]||(t[50]=v("Ready ",-1)),n("span",L0,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,$0),n("button",{type:"button",class:P(["summary-pill warn",{active:e.filters?.status?.preparing===!1}]),title:"Toggle preparing filter",onClick:t[9]||(t[9]=s=>e.filters.status.preparing=!e.filters.status.preparing),"aria-pressed":e.filters?.status?.preparing===!1},[t[51]||(t[51]=v("Preparing ",-1)),n("span",B0,u(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,F0),n("button",{type:"button",class:P(["summary-pill error",{active:e.filters?.status?.error===!1}]),title:"Toggle errored filter",onClick:t[10]||(t[10]=s=>e.filters.status.error=!e.filters.status.error),"aria-pressed":e.filters?.status?.error===!1},[t[52]||(t[52]=v("Errored ",-1)),n("span",z0,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,H0),n("button",{type:"button",class:P(["summary-pill",{active:e.filters?.status?.expired===!1}]),title:"Toggle expired filter",onClick:t[11]||(t[11]=s=>e.filters.status.expired=!e.filters.status.expired),"aria-pressed":e.filters?.status?.expired===!1},[t[53]||(t[53]=v("Expired ",-1)),n("span",G0,u(e.fmt?.number(e.statusCountFor("expired"))),1)],10,j0),n("button",{type:"button",class:P(["summary-pill",{active:e.filters?.status?.removed===!1}]),title:"Toggle removed filter",onClick:t[12]||(t[12]=s=>e.filters.status.removed=!e.filters.status.removed),"aria-pressed":e.filters?.status?.removed===!1},[t[54]||(t[54]=v("Removed ",-1)),n("span",K0,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,W0)]),D((l(),d("form",Y0,[n("div",J0,[n("div",Q0,[D(n("input",X0,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),t[56]||(t[56]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[13]||(t[13]=s=>e.exportCsv())},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export",-1)])])])])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",Z0,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[57]||(t[57]=v(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[14]||(t[14]=s=>e.bulkRefresh())},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[15]||(t[15]=s=>e.bulkRemoveCache())},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),v(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[16]||(t[16]=s=>e.clearSelection())},"Clear")])):p("v-if",!0),n("div",x0,[n("div",eE,[n("div",tE,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[17]||(t[17]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,nE)]),n("div",oE,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[18]||(t[18]=s=>e.sortBy("source.repositoryName"))},[t[61]||(t[61]=v("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[60]||(t[60]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",sE,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[19]||(t[19]=s=>e.sortBy("status"))},[t[63]||(t[63]=v("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[62]||(t[62]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",iE,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[20]||(t[20]=s=>e.sortBy("pageView"))},[t[65]||(t[65]=v("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[64]||(t[64]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",rE,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[21]||(t[21]=s=>e.sortBy("anonymizeDate"))},[t[67]||(t[67]=v("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[66]||(t[66]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[68]||(t[68]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(K,null,ne(e.filteredRepositories,(s,r)=>(l(),d("div",{class:P(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[n("div",aE,[D(n("input",lE,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),n("div",dE,[t[73]||(t[73]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",uE,[n("a",{class:"repo-name",target:"_blank",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,cE),n("div",pE,[n("a",{textContent:u(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,fE),s?.options?.update?(l(),d("span",hE,[t[69]||(t[69]=v("\xA0\xB7\xA0",-1)),n("a",{textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,mE)])):p("v-if",!0),s?.options?.update?p("v-if",!0):(l(),d("span",vE,[t[70]||(t[70]=v("\xA0\xB7\xA0@",-1)),n("a",{textContent:u(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,gE)])),s?.conference?(l(),d("span",yE,[t[71]||(t[71]=v("\xA0\xB7\xA0",-1)),t[72]||(t[72]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),v(" "+u(s?.conference),1)])):p("v-if",!0),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.humanFileSize(s?.size?.storage)),1),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.number(s?.options?.terms?.length))+" "+u(s?.options?.terms?.length===1?"term":"terms"),1)])])]),n("div",bE,[n("span",wE,[n("span",{class:P(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,kE)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:u(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,EE)):p("v-if",!0)]),n("div",{class:"cell-views num",role:"cell",textContent:u(e.fmt?.number(s?.pageView||0))},null,8,CE),n("div",{class:"cell-expires",role:"cell",textContent:u(e.fmt?.humanTime(s?.anonymizeDate))},null,8,SE),n("div",_E,[n("div",NE,[t[85]||(t[85]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",RE,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit",-1)])],8,DE),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View repo",-1)])],8,TE),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),v(" View page",-1)])],8,AE)):p("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.fetchGithubInfo(s),["prevent"])},[...t[77]||(t[77]=[n("i",{class:"fab fa-github"},null,-1),v(" Live GitHub info",-1)])],8,OE),t[83]||(t[83]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[78]||(t[78]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force update",-1)])],8,PE),[[W,s?.status=="ready"||s?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[79]||(t[79]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Enable",-1)])],8,IE),[[W,s?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.showStatusMessage(s),["prevent"])},[...t[80]||(t[80]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),v(" View status message",-1)])],8,VE),[[W,s?.statusMessage]]),t[84]||(t[84]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removeCache(s),["prevent"])},[...t[81]||(t[81]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),v(" Remove cache",-1)])],8,qE),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeRepository(s),["prevent"])},[...t[82]||(t[82]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove",-1)])],8,ME),[[W,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",UE,[...t[86]||(t[86]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No repositories match the current filters.",-1)])])):p("v-if",!0)])])}var $E={class:"container paper-page admin-page"},LE={class:"admin-summary"},FE={class:"summary-total"},BE=["aria-pressed"],HE={class:"count"},zE=["aria-pressed"],jE={class:"count"},GE=["aria-pressed"],WE={class:"count"},KE={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},YE={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},JE={class:"admin-filter-row"},QE={class:"search-wrap"},XE={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},ZE={key:0,class:"admin-search-hint"},xE={class:"admin-filter-inline"},eC={class:"form-control form-control-sm"},tC={class:"admin-filter-inline","aria-label":"Pagination"},nC=["disabled"],oC={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},sC=["disabled"],iC={key:0,class:"admin-filter-row"},rC={class:"admin-active-chips"},aC={class:"key"},lC=["onClick"],dC={key:1,class:"bulk-bar"},uC={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},cC={class:"paper-table-head admin-users-row",role:"row"},pC={role:"columnheader",style:{width:"28px"}},fC=["checked"],hC={role:"columnheader"},mC={role:"columnheader"},vC={role:"cell",style:{width:"28px"}},gC={type:"checkbox","aria-label":"Select user"},yC={class:"cell-anon",role:"cell"},bC=["src"],wC={class:"anon-text"},kC=["textContent","href"],EC={class:"anon-sub"},CC={key:0},SC=["href"],_C={key:1},NC={class:"cell-views num",role:"cell"},RC=["textContent","href"],DC={class:"cell-status",role:"cell"},TC=["textContent"],AC={class:"cell-status",role:"cell"},OC={key:0,class:"type-badge type-repo"},PC={key:1,class:"empty-dash"},IC={class:"cell-actions",role:"cell"},VC={class:"dropdown"},qC={class:"dropdown-menu dropdown-menu-right"},MC=["href"],UC=["href"],$C=["onClick"],LC=["onClick"],FC={key:0,class:"paper-table-empty"},BC={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},HC={style:{"font-size":"12px",color:"var(--ink-muted)"}},zC={key:0,class:"pagination-compact"},jC=["disabled"],GC=["max"],WC=["disabled"],KC={class:"admin-filter-inline"},YC={class:"form-control form-control-sm"};function Ul(e,t){let o=ge("field"),i=ge("form");return l(),d("div",$E,[t[46]||(t[46]=fe('
Admin \xA0/\xA0 Users

Users

',3)),n("div",LE,[n("span",FE,u(e.total>=0?e.fmt.number(e.total):"\u2026"),1),n("button",{type:"button",class:P(["summary-pill ok",{active:e.query?.status=="active"}]),onClick:t[0]||(t[0]=s=>{e.query.status=e.query.status=="active"?"":"active",e.query.page=1}),"aria-pressed":e.query?.status=="active"},[t[13]||(t[13]=v("Active ",-1)),n("span",HE,u(e.fmt?.number(e.statusCountFor("active"))),1)],10,BE),n("button",{type:"button",class:P(["summary-pill error",{active:e.query?.status=="banned"}]),onClick:t[1]||(t[1]=s=>{e.query.status=e.query.status=="banned"?"":"banned",e.query.page=1}),"aria-pressed":e.query?.status=="banned"},[t[14]||(t[14]=v("Banned ",-1)),n("span",jE,u(e.fmt?.number(e.statusCountFor("banned"))),1)],10,zE),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.status=="removed"}]),onClick:t[2]||(t[2]=s=>{e.query.status=e.query.status=="removed"?"":"removed",e.query.page=1}),"aria-pressed":e.query?.status=="removed"},[t[15]||(t[15]=v("Removed ",-1)),n("span",WE,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,GE)]),e.fetchError?(l(),d("div",KE,[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",YE,[n("div",JE,[n("div",QE,[D(n("input",XE,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",ZE,"/"))]),n("span",xE,[t[18]||(t[18]=n("label",null,"Role",-1)),D((l(),d("select",eC,[...t[17]||(t[17]=[n("option",{value:""},"Any",-1),n("option",{value:"admin"},"Admin",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.role=s},value:e.query?.role,form:null,options:{}}]])]),t[22]||(t[22]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",onClick:t[3]||(t[3]=s=>e.exportCsv())},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export",-1)])]),n("span",tC,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[4]||(t[4]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,nC),n("span",oC,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[5]||(t[5]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,sC)])]),e.chips?.length?(l(),d("div",iC,[n("div",rC,[(l(!0),d(K,null,ne(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",aC,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,lC)]))),128))])])):p("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",dC,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[24]||(t[24]=v(" selected",-1))]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[6]||(t[6]=s=>e.bulkBan())},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),v(" Ban",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=s=>{e.selected={},e.allSelected=!1})},"Clear")])):p("v-if",!0),n("div",uC,[n("div",cC,[n("div",pC,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[8]||(t[8]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,fC)]),n("div",hC,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="username"}]),onClick:t[9]||(t[9]=s=>e.sortBy("username"))},[t[27]||(t[27]=v("User ",-1)),e.sortIcon("username")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("username")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[26]||(t[26]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[30]||(t[30]=n("div",{role:"columnheader",class:"num"},"Repos",-1)),n("div",mC,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[10]||(t[10]=s=>e.sortBy("status"))},[t[29]||(t[29]=v("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[31]||(t[31]=n("div",{role:"columnheader"},"Role",-1)),t[32]||(t[32]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(K,null,ne(e.filteredUsers,(s,r)=>(l(),d("div",{class:P(["paper-table-row admin-users-row",{"row-selected":e.selected[s?.username]}]),role:"row"},[n("div",vC,[D(n("input",gC,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.username]=a},value:e.selected[s?.username],form:null,options:{}}]])]),n("div",yC,[s?.photo?(l(),d("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(s?.photo)},null,8,bC)):p("v-if",!0),n("div",wC,[n("a",{class:"repo-name",textContent:u(s?.username),href:e.safeUrl("/admin/users/"+s?.username)},null,8,kC),n("div",EC,[s?.emails?.[0]?.email?(l(),d("span",CC,u(s?.emails?.[0]?.email)+" \xB7 ",1)):p("v-if",!0),n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+s?.username)},[t[33]||(t[33]=n("i",{class:"fab fa-github"},null,-1)),v(" "+u(s?.username),1)],8,SC),s?.dateOfEntry?(l(),d("span",_C,"\xA0\xB7\xA0Joined "+u(e.fmt?.humanTime(s?.dateOfEntry)),1)):p("v-if",!0)])])]),n("div",NC,[t[34]||(t[34]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:"Show this user's repositories",textContent:u(e.fmt?.number(s?.repoCount||0)),href:e.safeUrl("/admin/repositories?owner="+s?.username)},null,8,RC)]),n("div",DC,[n("span",{class:P(["status-dot",{"status-ready":s?.status=="active","status-removed":s?.status=="removed"||s?.status=="banned"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,TC)]),n("div",AC,[s?.isAdmin?(l(),d("span",OC,"Admin")):p("v-if",!0),s?.isAdmin?p("v-if",!0):(l(),d("span",PC,"\u2014"))]),n("div",IC,[n("div",VC,[t[40]||(t[40]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",qC,[n("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+s?.username)},[...t[35]||(t[35]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View details",-1)])],8,MC),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/repositories?owner="+s?.username)},[...t[36]||(t[36]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),v(" View repositories",-1)])],8,UC),t[39]||(t[39]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.banUser(s),["prevent"])},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),v(" Ban",-1)])],8,$C),[[W,s?.status=="active"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.activateUser(s),["prevent"])},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Activate",-1)])],8,LC),[[W,s?.status=="removed"||s?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(l(),d("div",FC,[...t[41]||(t[41]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No users match the current filters.",-1)])])):p("v-if",!0)]),n("div",BC,[n("span",HC,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",zC,[n("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[42]||(t[42]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),v(" Previous",-1)])],8,jC),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,GC),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[43]||(t[43]=[v("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,WC)])):p("v-if",!0),n("span",KC,[t[45]||(t[45]=n("label",null,"Per page",-1)),D((l(),d("select",YC,[...t[44]||(t[44]=[n("option",{value:"10"},"10",-1),n("option",{value:"25"},"25",-1),n("option",{value:"50"},"50",-1),n("option",{value:"100"},"100",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var JC={class:"anonymize-landing"},QC={class:"anonymize-landing-inner"},XC={class:"form-group mt-4 mb-2"},ZC={class:"source-url-label-row"},xC={key:0,class:"repo-access","aria-label":"GitHub access"},e2={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},t2=["aria-pressed","disabled"],n2=["aria-pressed","disabled"],o2={key:1,class:"connection-badge"},s2={id:"sourceUrl-landing",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},i2={key:0,class:"draft-status",role:"status"},r2={key:1,class:"text-danger",role:"alert"},a2={key:2,class:"repo-access-details","aria-label":"GitHub access"},l2={class:"repo-access-main"},d2={class:"repo-access-controls"},u2={key:1,class:"connection-link",href:"/connections"},c2={class:"repo-access-note"},p2={key:0},f2={class:"anonymize-workspace"},h2={class:"anonymize-topbar"},m2={class:"anonymize-topbar-inner"},v2={class:"anonymize-topbar-head"},g2={class:"paper-page-title anonymize-topbar-title"},y2={key:0},b2={key:1},w2={key:0,class:"alert alert-info",role:"status"},k2={key:1,class:"alert alert-info",role:"status"},E2={key:1},C2={class:"anonymize-mobile-tabs",role:"tablist","aria-label":"Anonymization workspace"},S2=["aria-selected","tabindex"],_2=["aria-selected","tabindex"],N2={key:2,class:"anonymize-preview-empty",id:"workspace-preview",role:"status"},R2={class:"anonymize-split"},D2=["role","aria-labelledby"],T2={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},A2={class:"anonymize-fields"},O2={class:"paper-settings-section"},P2={class:"form-group"},I2={class:"source-url-label-row"},V2={key:0,class:"repo-access","aria-label":"GitHub access"},q2={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},M2=["aria-pressed","disabled"],U2=["aria-pressed","disabled"],$2={key:1,class:"connection-badge"},L2=["disabled"],F2={class:"invalid-feedback"},B2={class:"invalid-feedback"},H2={class:"invalid-feedback"},z2={class:"invalid-feedback"},j2={key:0,class:"repo-access-details","aria-label":"Previous repository configuration"},G2={key:0,class:"form-group"},W2=["value"],K2={key:1},Y2={class:"repo-access-controls"},J2=["href"],Q2={key:1,class:"repo-access-details","aria-label":"GitHub access"},X2={class:"repo-access-main"},Z2={class:"repo-access-controls"},x2={key:1,class:"connection-link",href:"/connections"},eS={class:"repo-access-note"},tS={key:0},nS={key:2,class:"repo-access-details"},oS=["disabled"],sS={key:0,role:"status"},iS={key:3,class:"repo-access-details"},rS={key:0,role:"status"},aS={key:4,class:"form-grid-2"},lS={class:"form-group"},dS={class:"input-group"},uS={class:"form-control",id:"branch",name:"branch"},cS=["textContent","value"],pS={class:"input-group-append"},fS={class:"form-group"},hS=["disabled"],mS={class:"invalid-feedback"},vS={class:"invalid-feedback"},gS={class:"form-check"},yS={class:"form-check-input",type:"checkbox",id:"update",name:"update"},bS={class:"paper-settings-section"},wS={class:"form-group"},kS=["disabled"],ES={class:"form-text text-muted"},CS={class:"invalid-feedback"},SS={class:"form-group"},_S=["disabled"],NS={class:"form-text text-muted"},RS={class:"invalid-feedback"},DS={class:"form-group"},TS=["disabled"],AS={class:"form-text text-muted"},OS={class:"invalid-feedback"},PS={class:"form-group"},IS={class:"redaction-syntax"},VS={class:"form-text text-muted"},qS={class:"warning-feedback"},MS={class:"invalid-feedback"},US={class:"paper-settings-section"},$S={class:"form-check"},LS={class:"form-check-input",type:"checkbox",id:"link",name:"link"},FS={class:"form-check"},BS={class:"form-check-input",type:"checkbox",id:"image",name:"image"},HS={class:"form-check"},zS={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},jS={class:"form-check"},GS={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},WS={class:"form-check"},KS=["disabled"],YS={key:0,class:"form-text text-muted"},JS={key:1,class:"form-text text-muted"},QS={key:0,class:"form-text text-muted"},XS={class:"form-check"},ZS={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},xS={class:"form-check"},e_={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},t_={class:"form-check"},n_={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},o_={class:"form-check"},s_={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},i_={class:"form-check"},r_={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},a_={class:"form-check"},l_={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},d_={class:"form-check"},u_={class:"form-check-input",type:"checkbox",id:"title",name:"title"},c_={class:"form-check"},p_={class:"form-check-input",type:"checkbox",id:"body",name:"body"},f_={class:"form-check"},h_={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},m_={class:"form-check"},v_={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},g_={class:"form-check"},y_={class:"form-check-input",type:"checkbox",id:"username",name:"username"},b_={class:"form-check"},w_={class:"form-check-input",type:"checkbox",id:"date",name:"date"},k_={class:"form-check"},E_={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},C_={class:"paper-settings-section hosting-settings",id:"repository-hosting","aria-labelledby":"hosting-heading"},S_={key:0,class:"hosting-usage"},__={key:0},N_={key:1},R_={key:2},D_={key:3},T_={class:"expiration-choices"},A_={class:"expiration-choice"},O_=["checked","disabled"],P_={key:0,class:"dated-options"},I_={key:0,class:"hosting-date"},V_=["min","max"],q_={class:"invalid-feedback"},M_={class:"invalid-feedback"},U_={class:"hosting-property"},$_={key:1,class:"expiration-choice"},L_=["checked","disabled"],F_={key:0},B_={key:1,class:"form-text text-muted"},H_={class:"form-group conference-field"},z_={class:"form-text text-muted"},j_=["href"],G_={class:"invalid-feedback"},W_={class:"form-text text-muted"},K_={key:2,class:"inline-hosting"},Y_={key:0,role:"alert",class:"text-danger"},J_={key:1,role:"alert",class:"text-danger"},Q_=["disabled"],X_={key:2,role:"status"},Z_={key:3,role:"status",class:"form-text text-muted"},x_={key:0,class:"capacity-reason"},eN={key:1,class:"subscription-choice"},tN={class:"billing-cycle"},nN=["value","checked","onChange"],oN={class:"hosting-terms"},sN={key:2,role:"status"},iN={key:3,class:"capacity-options"},rN=["disabled"],aN={key:5,class:"hosting-terms"},lN={key:6,class:"repository-pass"},dN=["disabled"],uN={class:"paper-settings-section"},cN={class:"form-group"},pN={style:{position:"relative"}},fN={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},hN={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},mN=["onClick"],vN=["src"],gN=["textContent"],yN=["textContent"],bN={class:"coauthor-list"},wN={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},kN=["src"],EN=["textContent","href"],CN=["onClick"],SN={class:"form-text text-muted"},_N=["textContent"],NN={key:1,class:"draft-status",role:"status"},RN={key:2,class:"draft-status"},DN={class:"anonymize-submit-bar"},TN=["disabled"],AN=["disabled"],ON={key:2,class:"checkout-return-note"},PN=["disabled"],IN=["disabled"],VN=["disabled"],qN=["disabled"],MN=["role","aria-labelledby"],UN={class:"anonymize-preview-head"},$N={key:0,class:"anonymize-preview-status",role:"status"},LN={key:1,class:"anonymize-preview-status",role:"status"},FN={key:2,class:"anonymize-preview-status",role:"alert"},BN={key:3,class:"anonymize-preview-status"},HN=["innerHTML"],zN=["role","aria-labelledby"],jN={class:"anonymize-preview-head"},GN={key:0,class:"anonymize-preview-status",role:"status"},WN={key:1,class:"anonymize-preview-status",role:"status"},KN={key:2,class:"anonymize-preview-status",role:"alert"},YN={key:3,class:"anonymize-preview-body"},JN={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},QN={class:"pr-title mb-1"},XN={key:0},ZN=["textContent"],xN={key:0},eR={key:1},tR={key:2},nR={class:"pr-comments mt-3"},oR={class:"pr-comment"},sR={class:"pr-comment-head"},iR=["textContent"],rR={key:0,class:"pr-comment-date"},aR={key:3},lR={class:"pr-comments"},dR={class:"pr-comment"},uR={class:"pr-comment-head"},cR={key:0,class:"pr-comment-author"},pR=["textContent"],fR=["textContent"],hR={key:0,class:"pr-comment-body"},mR=["role","aria-labelledby"],vR={class:"anonymize-preview-head"},gR={key:0,class:"anonymize-preview-status",role:"status"},yR={key:1,class:"anonymize-preview-status",role:"status"},bR={key:2,class:"anonymize-preview-status",role:"alert"},wR={key:3,class:"anonymize-preview-body"},kR={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},ER={class:"pr-title mb-1"},CR={key:0},SR=["textContent"],_R={key:0},NR={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--paper-bg-alt)"}},RR={key:2,class:"paper-tabs",role:"tablist"},DR=["aria-selected","tabindex"],TR=["aria-selected","tabindex"],AR=["textContent"],OR={key:3,class:"anonymize-preview-status"},PR={class:"paper-tab-content"},IR={key:0,role:"tabpanel",id:"preview-pr-diff-panel","aria-labelledby":"preview-pr-diff-tab"},VR=["innerHTML"],qR={key:1,role:"tabpanel",id:"preview-pr-comments-panel","aria-labelledby":"preview-pr-comments-tab"},MR={class:"pr-comments"},UR={class:"pr-comment"},$R={class:"pr-comment-head"},LR={key:0,class:"pr-comment-author"},FR=["textContent"],BR=["textContent"],HR={key:0,class:"pr-comment-body"};function $l(e,t){let o=Ge("gist-file"),i=Ge("markdown"),s=ge("field"),r=ge("form");return l(),d("div",{class:P(["anonymize-page h-100",{"mobile-preview-active":e.mobilePane==="preview","preview-expanded":e.previewExpanded}])},[p(" ===== STATE 1: No URL \u2014 centered input ===== "),D(n("div",JC,[n("div",QC,[t[48]||(t[48]=n("div",{class:"paper-crumbs"},[v("My work \xA0/\xA0 "),n("span",{class:"here"},"New anonymization")],-1)),t[49]||(t[49]=n("h1",{class:"paper-page-title"},[v("New "),n("em",null,"anonymization")],-1)),t[50]||(t[50]=n("p",{class:"paper-page-lede"}," Paste a GitHub repository, pull-request, or gist URL. We\u2019ll fetch it, redact the terms you choose in text files, and give you a share link. Images and PDFs are served unchanged when enabled. Review them before sharing. ",-1)),n("div",XC,[n("div",ZC,[t[44]||(t[44]=n("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",xC,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",e2,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=a=>e.chooseGitHubConnection("github-app"))},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(),n("span",{class:"sr-only"},"Read-only ",-1),v("GitHub App",-1)])],8,t2),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,n2)])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",o2,u((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):p("v-if",!0)])):p("v-if",!0)]),D(n("input",s2,null,512),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]])]),e.draftRestored?(l(),d("div",i2,[t[45]||(t[45]=v("Your unsaved draft was restored. ",-1)),n("button",{type:"button",class:"draft-discard",onClick:t[2]||(t[2]=a=>e.discardDraft())},"Discard draft")])):p("v-if",!0),e.sourceUrlError?(l(),d("p",r2,u(e.sourceUrlError),1)):p("v-if",!0),t[51]||(t[51]=n("small",{class:"form-text",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(l(),d("aside",a2,[n("div",l2,[n("div",d2,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=a=>e.grantGitHubAccess())},[...t[46]||(t[46]=[v("Manage access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",u2,u(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):p("v-if",!0)])]),n("div",c2,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(l(),d("span",p2,"Signing in does not grant access to private repositories. Use Manage access to select this repository, then return here. Organization access may require administrator approval.")):p("v-if",!0),t[47]||(t[47]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),v(" Anonymized content is public, even from private repositories.")],-1))])])):p("v-if",!0)])],512),[[W,!e.workspaceOpen&&!e.isUpdate]]),p(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),D(n("div",f2,[n("header",h2,[n("div",m2,[n("div",v2,[n("h1",g2,[e.isUpdate?p("v-if",!0):(l(),d("span",y2,"New anonymization")),e.isUpdate?(l(),d("span",b2,"Edit anonymization")):p("v-if",!0)]),D(n("span",{class:P(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},u(e.detectedType==="repo"?"Repo":e.detectedType==="pr"?"PR":"Gist"),3),[[W,e.detectedType]])])])]),e.detectedType==="gist"&&e.gistAppRequired?(l(),d("aside",w2,[t[52]||(t[52]=n("p",null,"Reconnect your GitHub account to read this gist. Your draft will be restored when you return.",-1)),n("button",{type:"button",class:"btn btn-ink",onClick:t[4]||(t[4]=a=>e.connectGistApp())},"Connect GitHub App to access gists")])):p("v-if",!0),e.detectedType==="gist"&&e.gistOAuthRequired?(l(),d("aside",k2,[t[53]||(t[53]=n("p",null,"Connect GitHub OAuth to access gists. Your account and existing anonymizations stay the same, and your draft will be restored when you return.",-1)),t[54]||(t[54]=n("p",null,"GitHub's legacy OAuth connection includes write access to private repositories.",-1)),e.githubConnections?.oauthEnabled?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[5]||(t[5]=a=>e.connectGistOAuth())},"Connect GitHub OAuth to access gists")):(l(),d("p",E2,"GitHub OAuth is currently unavailable. Please try again later."))])):p("v-if",!0),n("nav",C2,[n("button",{id:"workspace-settings-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="settings","aria-controls":"workspace-settings",tabindex:e.mobilePane==="settings"?0:-1,onKeydown:t[6]||(t[6]=a=>e.previewTabKeydown(a)),onClick:t[7]||(t[7]=a=>e.selectMobilePane("settings"))},"Settings",40,S2),n("button",{id:"workspace-preview-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="preview","aria-controls":"workspace-preview",tabindex:e.mobilePane==="preview"?0:-1,onKeydown:t[8]||(t[8]=a=>e.previewTabKeydown(a)),onClick:t[9]||(t[9]=a=>e.selectMobilePane("preview"))},"Reviewer preview",40,_2)]),e.detectedType!=="repo"&&!e.details?(l(),d("div",N2,u(e.sourceLoading?"Loading source\u2026":"Choose an accessible source to see its preview."),1)):p("v-if",!0),n("div",R2,[p(" Form column (left) "),n("div",{id:"workspace-settings",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-settings-tab":null,class:"anonymize-form-col overflow-auto"},[D((l(),d("form",T2,[n("div",A2,[n("section",O2,[t[69]||(t[69]=n("h2",{class:"paper-section-eyebrow"},"Source & access",-1)),n("div",P2,[n("div",I2,[t[56]||(t[56]=n("label",{class:"paper-field-label",for:"sourceUrl"},"GitHub URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",V2,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",q2,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[10]||(t[10]=a=>e.chooseGitHubConnection("github-app"))},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(),n("span",{class:"sr-only"},"Read-only ",-1),v("GitHub App",-1)])],8,M2),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[11]||(t[11]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,U2)])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",$2,u((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):p("v-if",!0)])):p("v-if",!0)]),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,L2),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),D(n("div",F2," Please provide a valid GitHub URL. ",512),[[W,e.anonymize?.sourceUrl?.errors?.github]]),D(n("div",B2," Not accessible. The organization may restrict access. ",512),[[W,e.anonymize?.sourceUrl?.errors?.access]]),D(n("div",H2," Does not exist or is not accessible. ",512),[[W,e.anonymize?.sourceUrl?.errors?.missing]]),D(n("div",z2," Already anonymized. ",512),[[W,e.anonymize?.sourceUrl?.errors?.used]])]),!e.isUpdate&&e.previousConfigurations.length?(l(),d("aside",j2,[t[58]||(t[58]=n("p",{role:"status"},"You have already anonymized this repository. Use the existing configuration to keep its anonymous link and avoid creating another repository.",-1)),e.previousConfigurations.length>1?(l(),d("div",G2,[t[57]||(t[57]=n("label",{class:"paper-field-label",for:"previousConfiguration"},"Previous anonymization",-1)),D(n("select",{id:"previousConfiguration",class:"form-control","onUpdate:modelValue":t[12]||(t[12]=a=>e.previousConfigurationId=a)},[(l(!0),d(K,null,ne(e.previousConfigurations,a=>(l(),d("option",{key:a.repoId,value:a.repoId},u(a.repoId),9,W2))),128))],512),[[pn,e.previousConfigurationId]])])):(l(),d("p",K2,u(e.previousConfigurationId),1)),t[59]||(t[59]=n("p",null,"You can review and update its settings before saving.",-1)),n("div",Y2,[n("a",{class:"btn btn-ink",href:e.existingConfigurationUrl()},"Use existing configuration",8,J2),n("button",{type:"button",class:"btn btn-link",onClick:t[13]||(t[13]=a=>e.previousConfigurations=[])},"Create a separate anonymization")])])):p("v-if",!0),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(l(),d("aside",Q2,[n("div",X2,[n("div",Z2,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[14]||(t[14]=a=>e.grantGitHubAccess())},[...t[60]||(t[60]=[v("Manage access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",x2,u(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):p("v-if",!0)])]),n("div",eS,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(l(),d("span",tS,"Signing in does not grant access to private repositories. Use Manage access to select this repository, then return here. Organization access may require administrator approval.")):p("v-if",!0),t[61]||(t[61]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),v(" Anonymized content is public, even from private repositories.")],-1))])])):p("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.accessRepairAllowed&&e.githubConnections?.appEnabled&&e.githubConnection==="github-app"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",nS,[t[62]||(t[62]=n("p",null,"If this repository became private or its App installation changed, repair its access here. This keeps the same anonymous URL and published commit.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.repairingGitHubAccess,onClick:t[15]||(t[15]=a=>e.repairGitHubAccess())},"Repair GitHub access",8,oS),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[16]||(t[16]=a=>e.grantGitHubAccess())},"Manage access"),e.accessRepairMessage?(l(),d("p",sS,u(e.accessRepairMessage),1)):p("v-if",!0)])):p("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",iS,[t[63]||(t[63]=n("p",null,"If you deleted and recreated this repository, reconnect it before choosing a branch.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[17]||(t[17]=a=>e.reconnectSource())},"Reconnect source repository"),e.reconnectRepositoryId?(l(),d("p",rS,"Source reloaded. Review the branch, commit, and anonymization preview, then save to replace the published snapshot.")):p("v-if",!0)])):p("v-if",!0),e.detectedType==="repo"?(l(),d("div",aS,[n("div",lS,[t[65]||(t[65]=n("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),n("div",dS,[D((l(),d("select",uS,[(l(!0),d(K,null,ne(e.branches,(a,c)=>(l(),d("option",{textContent:u(a?.name),value:a?.name},null,8,cS))),256))])),[[s,{state:e.viewState,set:a=>{e.source.branch=a},value:e.source?.branch,form:"anonymize",options:{}}]]),n("div",pS,[n("button",{class:"btn btn-icon refresh-branches",type:"button",title:"Refresh branches",onClick:t[18]||(t[18]=a=>e.getBranches(!0)),"aria-label":"Refresh branches"},[...t[64]||(t[64]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])])]),n("div",fS,[t[66]||(t[66]=n("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,hS),[[s,{state:e.viewState,set:a=>{e.source.commit=a},value:e.source?.commit,form:"anonymize",options:{}}]]),D(n("div",mS," The commit SHA is not valid. ",512),[[W,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),D(n("div",vS," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[W,e.anonymize?.commit?.errors?.exists]])])])):p("v-if",!0),D(n("div",gS,[D(n("input",yS,null,512),[[s,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"anonymize",options:{}}]]),t[67]||(t[67]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[68]||(t[68]=n("small",{class:"form-text text-muted"},"Follows the latest version, at most once an hour.",-1))],512),[[W,e.detectedType]])]),D(n("section",bS,[t[87]||(t[87]=n("h2",{class:"paper-section-eyebrow"},"Anonymization",-1)),D(n("div",wS,[t[70]||(t[70]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,kS),[[s,{state:e.viewState,set:a=>{e.repoId=a},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",ES,"anonymous.4open.science/r/"+u(e.repoId),1),D(n("div",CS,"ID can only contain letters and numbers.",512),[[W,e.anonymize?.repoId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},u(e.repoId)+" is already used.",513),[[W,e.anonymize?.repoId?.errors?.used]])],512),[[W,e.detectedType==="repo"]]),D(n("div",SS,[t[73]||(t[73]=n("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,_S),[[s,{state:e.viewState,set:a=>{e.pullRequestId=a},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",NS,[t[71]||(t[71]=v("Your share link will be ",-1)),n("code",null,"anonymous.4open.science/pr/"+u(e.pullRequestId),1),t[72]||(t[72]=v(".",-1))]),D(n("div",RS,"ID can only contain letters and numbers.",512),[[W,e.anonymize?.pullRequestId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestId)+" is already used.",513),[[W,e.anonymize?.pullRequestId?.errors?.used]])],512),[[W,e.detectedType==="pr"]]),D(n("div",DS,[t[76]||(t[76]=n("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,TS),[[s,{state:e.viewState,set:a=>{e.gistId=a},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",AS,[t[74]||(t[74]=v("Your share link will be ",-1)),n("code",null,"anonymous.4open.science/gist/"+u(e.gistId),1),t[75]||(t[75]=v(".",-1))]),D(n("div",OS,"ID can only contain letters and numbers.",512),[[W,e.anonymize?.gistId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},u(e.gistId)+" is already used.",513),[[W,e.anonymize?.gistId?.errors?.used]])],512),[[W,e.detectedType==="gist"]]),n("div",PS,[t[85]||(t[85]=n("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),D(n("textarea",{class:P(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[s,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"anonymize",options:{debounce:250}}]]),t[86]||(t[86]=n("small",{class:"form-text text-muted"},"One term per line.",-1)),n("details",IS,[t[83]||(t[83]=n("summary",null,"Regex & replacement syntax",-1)),t[84]||(t[84]=v()),n("small",VS,[t[77]||(t[77]=v("Regex is supported. Replaced by ",-1)),n("code",null,u(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[78]||(t[78]=v(", or use ",-1)),t[79]||(t[79]=n("code",null,"term=>replacement",-1)),t[80]||(t[80]=v(" to pick your own (e.g. ",-1)),t[81]||(t[81]=n("code",null,"Anonymous=>ABC",-1)),t[82]||(t[82]=v(").",-1))])]),D(n("div",qS,"Regex characters detected. Escape them if unintentional.",512),[[W,e.termsRegexWarning]]),D(n("div",MS,"Terms are in an invalid format.",512),[[W,e.anonymize?.terms?.errors?.format]])])],512),[[W,e.detectedType]]),D(n("section",US,[t[107]||(t[107]=n("h2",{class:"paper-section-eyebrow"},"Display",-1)),D(n("div",null,[n("div",$S,[D(n("input",LS,null,512),[[s,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"anonymize",options:{}}]]),t[88]||(t[88]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),n("div",FS,[D(n("input",BS,null,512),[[s,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"anonymize",options:{}}]]),t[89]||(t[89]=n("label",{class:"form-check-label",for:"image"},"Display images",-1))]),n("div",HS,[D(n("input",zS,null,512),[[s,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[90]||(t[90]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1))]),n("div",jS,[D(n("input",GS,null,512),[[s,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[91]||(t[91]=n("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))]),n("div",WS,[D(n("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,KS),[[s,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"anonymize",options:{}}]]),t[92]||(t[92]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),e.details?.hasPage?p("v-if",!0):(l(),d("small",YS,u(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),1)),e.details?.hasPage&&e.details?.pageSource?.branch&&e.source?.branch&&e.details.pageSource.branch!==e.source.branch?(l(),d("small",JS,u(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),1)):p("v-if",!0)])],512),[[W,e.detectedType==="repo"]]),e.detectedType==="repo"&&(e.options.image||e.options.pdf)?(l(),d("p",QS,[...t[93]||(t[93]=[v("Images and PDFs are served unchanged. Review their contents and metadata before sharing. ",-1),n("a",{href:"/faq#formats"},"Supported formats",-1)])])):p("v-if",!0),D(n("div",null,[n("div",XS,[D(n("input",ZS,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[94]||(t[94]=n("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),n("div",xS,[D(n("input",e_,null,512),[[s,{state:e.viewState,set:a=>{e.options.content=a},value:e.options?.content,form:"anonymize",options:{}}]]),t[95]||(t[95]=n("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),n("div",t_,[D(n("input",n_,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[96]||(t[96]=n("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),n("div",o_,[D(n("input",s_,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[97]||(t[97]=n("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),n("div",i_,[D(n("input",r_,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[98]||(t[98]=n("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),n("div",a_,[D(n("input",l_,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[99]||(t[99]=n("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[W,e.detectedType==="gist"]]),D(n("div",null,[n("div",d_,[D(n("input",u_,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[100]||(t[100]=n("label",{class:"form-check-label",for:"title"},"PR title",-1))]),n("div",c_,[D(n("input",p_,null,512),[[s,{state:e.viewState,set:a=>{e.options.body=a},value:e.options?.body,form:"anonymize",options:{}}]]),t[101]||(t[101]=n("label",{class:"form-check-label",for:"body"},"PR body",-1))]),n("div",f_,[D(n("input",h_,null,512),[[s,{state:e.viewState,set:a=>{e.options.diff=a},value:e.options?.diff,form:"anonymize",options:{}}]]),t[102]||(t[102]=n("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),n("div",m_,[D(n("input",v_,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[103]||(t[103]=n("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),n("div",g_,[D(n("input",y_,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[104]||(t[104]=n("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),n("div",b_,[D(n("input",w_,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[105]||(t[105]=n("label",{class:"form-check-label",for:"date"},"Dates",-1))]),n("div",k_,[D(n("input",E_,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[106]||(t[106]=n("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[W,e.detectedType==="pr"]])],512),[[W,e.detectedType]]),D(n("section",C_,[t[123]||(t[123]=n("h2",{class:"paper-section-eyebrow",id:"hosting-heading"},"Hosting & expiration",-1)),e.detectedType==="repo"&&e.billing?.enabled?(l(),d("p",S_,[e.isUpdate&&e.role!=="owner"?(l(),d("span",__,"Uses the owner's hosting")):e.hasAuthorHosting()?(l(),d("span",N_,"Your author subscription is active.")):e.conference?(l(),d("span",R_,"Conference hosting is checked on submission.")):e.hostingQuota?.repository?(l(),d("span",D_,u(e.hostingQuota.repository.used)+" of "+u(e.hostingQuota.repository.total)+" active repositories \xB7 Free",1)):p("v-if",!0)])):p("v-if",!0),n("fieldset",T_,[t[113]||(t[113]=n("legend",{class:"sr-only"},"Expiration",-1)),n("label",A_,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode!=="never",onChange:t[19]||(t[19]=a=>e.useDatedHosting()),disabled:e.billingPending},null,40,O_),t[108]||(t[108]=n("span",null,"Expire on a date",-1))]),e.options.expirationMode!=="never"?(l(),d("div",P_,[e.options?.expirationMode!=="never"?(l(),d("div",I_,[t[109]||(t[109]=n("label",{class:"paper-field-label",for:"expirationDate"},"Expires",-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,V_),[[s,{state:e.viewState,set:a=>{e.options.expirationDate=a},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),D(n("div",q_,"Pick a date in the future.",512),[[W,e.anonymize?.expirationDate?.errors?.min]]),D(n("div",{class:"invalid-feedback"},"Pick a date on or before "+u(e.fmt?.date(e.maxExpirationDate))+".",513),[[W,e.anonymize?.expirationDate?.errors?.max]]),D(n("div",M_,"Enter a valid expiration date.",512),[[W,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])):p("v-if",!0),n("div",U_,[t[111]||(t[111]=n("label",{for:"expiration"},"Then",-1)),D(n("select",{id:"expiration",class:"form-control","onUpdate:modelValue":t[20]||(t[20]=a=>e.options.expirationMode=a)},[...t[110]||(t[110]=[n("option",{value:"remove"},"Remove content",-1),n("option",{value:"redirect"},"Redirect to GitHub",-1)])],512),[[pn,e.options.expirationMode]])])])):p("v-if",!0),e.detectedType==="repo"?(l(),d("label",$_,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode==="never",onChange:t[21]||(t[21]=a=>e.options.expirationMode="never"),disabled:e.billingPending},null,40,L_),n("span",null,[t[112]||(t[112]=v("Never expire",-1)),e.options.expirationMode!=="never"||e.hasAuthorHosting()?(l(),d("small",F_,u(e.hasAuthorHosting()?"Included in your subscription":"Author subscription"),1)):p("v-if",!0)])])):p("v-if",!0)]),e.options.expirationMode==="redirect"?(l(),d("p",B_,"Visitors will be redirected to the original GitHub source on this date, revealing its identity.")):p("v-if",!0),n("div",H_,[t[114]||(t[114]=n("label",{class:"paper-field-label",for:"conference"},[v("Conference code "),n("span",{class:"paper-optional"},"(optional)")],-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[s,{state:e.viewState,set:a=>{e.conference=a},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(n("small",z_,[n("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},u(e.conference_data?.name),9,j_),v(" expires "+u(e.fmt?.date(e.conference_data?.endDate))+". ",1)],512),[[W,e.conference_data]]),D(n("div",G_,"The conference is not activated.",512),[[W,e.anonymize?.conference?.errors?.activated]]),D(n("small",W_,"Link to a conference to apply its shared defaults.",512),[[W,!e.conference_data]])]),e.detectedType==="repo"&&e.billing?.enabled?(l(),d("div",K_,[e.taskValidationError?(l(),d("p",Y_,u(e.taskValidationError),1)):p("v-if",!0),e.billingError?(l(),d("p",J_,[v(u(e.billingError)+" ",1),n("button",{type:"button",class:"task-text-button",onClick:t[22]||(t[22]=a=>e.loadBilling()),disabled:e.billingBusy},"Reload billing",8,Q_)])):p("v-if",!0),e.billingPending?(l(),d("div",X_,[...t[115]||(t[115]=[n("p",null,[n("strong",null,"Confirming your payment\u2026")],-1),n("p",{class:"form-text text-muted"},"Your draft is saved. Please do not pay again.",-1)])])):e.billingNotice?(l(),d("p",Z_,u(e.billingNotice),1)):p("v-if",!0),e.hostingNeedsPayment()&&!e.billingPending?(l(),d(K,{key:4},[e.options.expirationMode!=="never"?(l(),d("p",x_,u(e.options.update&&!e.hostingQuotaBlocked&&e.hostingQuota?.repository?.used(l(),d("label",{class:P(["cycle-option",{selected:e.selectedHostingPlan()?.id===a.id}]),key:a.id},[n("input",{type:"radio",name:"hosting-plan",value:a.id,checked:e.selectedHostingPlan()?.id===a.id,onChange:c=>e.hostingPlan=a.id},null,40,nN),n("span",null,u(e.billingPrice(a)),1)],2))),128))]),n("p",null,u(e.selectedHostingPlan()?.repositories)+" repositories, "+u(e.billingBytes(e.selectedHostingPlan()?.storage))+". Coauthors included.",1),n("p",oN,"Renews "+u(e.selectedHostingPlan()?.interval==="year"?"annually":"monthly")+" until cancelled. Tax shown at checkout.",1),t[118]||(t[118]=n("p",{class:"hosting-terms"},"If paid access ends, never-expiring repositories expire after 90 days.",-1))])):(l(),d("p",sN,"New purchases are temporarily unavailable. Your draft is kept.")),e.options.expirationMode!=="never"?(l(),d("details",iN,[t[119]||(t[119]=n("summary",null,"Keep using free hosting",-1)),t[120]||(t[120]=n("p",null,"Remove a repository you no longer need, or use conference hosting. Removing a repository affects its review link.",-1)),t[121]||(t[121]=n("a",{href:"/dashboard"},"Review my repositories",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[23]||(t[23]=a=>e.anonymizeRepo(a)),disabled:e.sourceLoading||e.billingBusy},"Recheck capacity and submit",8,rN)])):p("v-if",!0)],64)):e.options.expirationMode==="never"&&!e.billingPending?(l(),d("p",aN,"No scheduled expiration while subscribed. A 90-day grace period applies if paid access ends.")):p("v-if",!0),e.isUpdate&&e.role==="owner"&&!e.hasAuthorHosting()?(l(),d("details",lN,[t[122]||(t[122]=n("summary",null,"Hosting just this repository?",-1)),(l(!0),d(K,null,ne((e.billing?.plans||[]).filter(a=>a.id==="author_pass"),a=>(l(),d("div",{key:a.id},[n("p",null,u(e.billingPrice(a))+" \xB7 "+u(e.billingBytes(a.storage))+" for 180 days. No renewal. Does not include Never expire.",1),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.billingBusy||e.hostingSaving||e.sourceLoading||e.billing.checkoutEnabled===!1||e.billingPending,onClick:t[24]||(t[24]=c=>e.checkoutRepository(!0))},"Review repository pass",8,dN)]))),128))])):p("v-if",!0)])):p("v-if",!0)],512),[[W,e.detectedType]]),D(n("section",uN,[t[127]||(t[127]=n("h2",{class:"paper-section-eyebrow"},"Coauthors",-1)),t[128]||(t[128]=n("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),D(n("div",cN,[t[124]||(t[124]=n("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),n("div",pN,[D(n("input",fN,null,512),[[s,{state:e.viewState,set:a=>{e.coauthorSearch=a},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),D(n("div",hN,[(l(!0),d(K,null,ne(e.coauthorResults,(a,c)=>(l(),d("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:de(f=>e.addCoauthor(a,f),["prevent"])},[n("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(a?.photo)},null,8,vN),n("span",{textContent:u(a?.username)},null,8,gN)],8,mN))),256))],512),[[W,e.coauthorResults?.length>0]])]),D(n("small",{class:"form-text text-muted",textContent:u(e.coauthorError)},null,8,yN),[[W,e.coauthorError]])],512),[[W,e.role==="owner"||e.role==="admin"]]),n("div",bN,[(l(!0),d(K,null,ne(e.coauthors,(a,c)=>(l(),d("div",wN,[a?.photo?(l(),d("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(a?.photo)},null,8,kN)):p("v-if",!0),n("a",{target:"_blank",textContent:u(a?.username),href:e.safeUrl("https://github.com/"+a?.username)},null,8,EN),t[126]||(t[126]=n("span",{class:"type-badge type-coauthor"},"Co-author",-1)),D(n("button",{type:"button",class:"btn btn-sm btn-icon",style:{"margin-left":"auto"},title:"Remove co-author",onClick:f=>e.removeCoauthor(a),"aria-label":"Remove co-author"},[...t[125]||(t[125]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,CN),[[W,e.role==="owner"||e.role==="admin"]])]))),256)),D(n("div",SN," No co-authors yet. ",512),[[W,!e.coauthors||e.coauthors?.length===0]])])],512),[[W,e.isUpdate&&e.detectedType==="repo"]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,_N)):p("v-if",!0),e.draftRestored?(l(),d("div",NN,[t[129]||(t[129]=v("Your unsaved draft was restored. ",-1)),n("button",{type:"button",class:"draft-discard",onClick:t[25]||(t[25]=a=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(l(),d("div",RN,[v(u(e.draftSaved?"Draft saved in this tab for 30 minutes.":"Unsaved changes. Keep this tab open until you save.")+" ",1),n("button",{type:"button",class:"draft-discard",onClick:t[26]||(t[26]=a=>e.discardDraft())},u(e.isUpdate?"Restore saved settings":"Discard changes"),1)])):p("v-if",!0)]),D(n("div",DN,[e.detectedType==="repo"?(l(),d(K,{key:0},[e.billingPending?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[27]||(t[27]=a=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,TN)):(l(),d("button",{key:1,type:"submit",class:"btn btn-ink",disabled:e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingLoading||e.hostingNeedsPayment()&&(!e.authorPlans().length||e.billing?.checkoutEnabled===!1),onClick:t[28]||(t[28]=de(a=>e.submitForm(a,()=>{e.submitRepository(a)}),["prevent"]))},u(e.hostingSaving?"Saving draft\u2026":e.hostingNeedsPayment()?"Continue to checkout":e.isUpdate?"Save changes":"Create anonymous link"),9,AN)),e.hostingNeedsPayment()&&!e.billingPending?(l(),d("p",ON,"Review payment in Stripe, then return to finish.")):p("v-if",!0)],64)):p("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(l(),d("button",{key:1,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[29]||(t[29]=de(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[130]||(t[130]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(" Anonymize Pull Request ",-1)])],8,PN)):p("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(l(),d("button",{key:2,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[30]||(t[30]=de(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[131]||(t[131]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),v(" Update Pull Request ",-1)])],8,IN)):p("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(l(),d("button",{key:3,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[31]||(t[31]=de(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[132]||(t[132]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(" Anonymize Gist ",-1)])],8,VN)):p("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(l(),d("button",{key:4,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[32]||(t[32]=de(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[133]||(t[133]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),v(" Update Gist ",-1)])],8,qN)):p("v-if",!0)],512),[[W,e.detectedType]])])),[[r,e.viewState]])],8,D2),p(" Preview column (right) "),e.detectedType==="repo"?(l(),d("div",{key:0,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",UN,[t[134]||(t[134]=n("strong",null,"README.md",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[33]||(t[33]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",$N,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",LN,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",FN,[t[135]||(t[135]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[34]||(t[34]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),!e.sourceLoading&&!e.readme&&e.previewStatus==="idle"?(l(),d("div",BN,"No README is available to preview. Review the published files before sharing.")):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",{key:4,class:"anonymize-preview-body markdown-body body",innerHTML:e.sanitize(e.html_readme)},null,8,HN)):p("v-if",!0)],8,MN)):p("v-if",!0),e.detectedType==="gist"&&e.details?(l(),d("div",{key:1,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",jN,[t[136]||(t[136]=n("strong",null,"Gist preview",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[35]||(t[35]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",GN,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",WN,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",KN,[t[137]||(t[137]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[36]||(t[36]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",YN,[n("div",JN,[n("h2",QN,[e.options?.title?(l(),d("span",XN,u(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):p("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},u(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,ZN)):p("v-if",!0)]),e.options?.origin?(l(),d("small",xN,"Gist ID: "+u(e.details?.source?.gistId),1)):p("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(l(),d("small",eR,"By @"+u(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):p("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(l(),d("div",tR,[n("ul",nR,[(l(!0),d(K,null,ne(e.previewGistFiles,(a,c)=>(l(),d("li",oR,[n("div",sR,[n("strong",{textContent:u(a?.filename)},null,8,iR),a?.language?(l(),d("span",rR,u(a?.language),1)):p("v-if",!0)]),Ce(o,{file:a,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):p("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(l(),d("div",aR,[t[140]||(t[140]=n("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),n("ul",lR,[(l(!0),d(K,null,ne(e.details?.gist?.comments,(a,c)=>(l(),d("li",dR,[n("div",uR,[e.options?.username?(l(),d("span",cR,[t[138]||(t[138]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[139]||(t[139]=v(" @",-1)),n("span",{textContent:u(e.anonymizeGistContent(a?.author))},null,8,pR)])):p("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(a?.updatedDate))},null,8,fR)):p("v-if",!0)]),e.options?.body?(l(),d("div",hR,[Ce(i,{content:e.anonymizeGistContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0)]))),256))])])):p("v-if",!0)])):p("v-if",!0)],8,zN)):p("v-if",!0),e.detectedType==="pr"&&e.details?(l(),d("div",{key:2,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",vR,[t[141]||(t[141]=n("strong",null,"Pull request preview",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[37]||(t[37]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",gR,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",yR,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",bR,[t[142]||(t[142]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[38]||(t[38]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",wR,[n("div",kR,[n("h2",ER,[e.options?.title?(l(),d("span",CR,u(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):p("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},u(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,SR)):p("v-if",!0)]),e.options?.origin?(l(),d("small",_R,"Pull Request on "+u(e.details?.pullRequest?.baseRepositoryFullName),1)):p("v-if",!0),e.options?.body?(l(),d("div",NR,[Ce(i,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0),e.options?.diff||e.options?.comments?(l(),d("nav",RR,[e.options?.diff?(l(),d("button",{key:0,class:P(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",id:"preview-pr-diff-tab","aria-selected":e.prTabState?.active==="diff","aria-controls":"preview-pr-diff-panel",tabindex:e.prTabState?.active==="diff"?0:-1,onKeydown:t[39]||(t[39]=a=>e.previewTabKeydown(a)),onClick:t[40]||(t[40]=a=>e.prTabState.active="diff")},[...t[143]||(t[143]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),v(" Diff ",-1)])],42,DR)):p("v-if",!0),e.options?.comments?(l(),d("button",{key:1,class:P(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",id:"preview-pr-comments-tab","aria-selected":e.prTabState?.active==="comments","aria-controls":"preview-pr-comments-panel",tabindex:e.prTabState?.active==="comments"?0:-1,onKeydown:t[41]||(t[41]=a=>e.previewTabKeydown(a)),onClick:t[42]||(t[42]=a=>e.prTabState.active="comments")},[t[144]||(t[144]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,AR)],42,TR)):p("v-if",!0)])):p("v-if",!0),!e.options?.diff&&!e.options?.comments?(l(),d("div",OR,"Diff and comments are hidden by your display settings.")):p("v-if",!0),n("div",PR,[e.options?.diff&&e.prTabState?.active=="diff"?(l(),d("div",IR,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,VR)])):p("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(l(),d("div",qR,[n("ul",MR,[(l(!0),d(K,null,ne(e.details?.pullRequest?.comments,(a,c)=>(l(),d("li",UR,[n("div",$R,[e.options?.username?(l(),d("span",LR,[t[145]||(t[145]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[146]||(t[146]=v(" @",-1)),n("span",{textContent:u(e.anonymizePrContent(a?.author))},null,8,FR)])):p("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(a?.updatedDate))},null,8,BR)):p("v-if",!0)]),e.options?.body?(l(),d("div",HR,[Ce(i,{content:e.anonymizePrContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0)]))),256))])])):p("v-if",!0)])])):p("v-if",!0)],8,mR)):p("v-if",!0)])],512),[[W,e.workspaceOpen||e.isUpdate]])],2)}var zR={class:"container-fluid h-100 anonymize-page"},jR={class:"row h-100 flex-column flex-md-row"},GR={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},WR={class:"form-group"},KR={class:"form-group"},YR={class:"form-check"},JR={class:"form-check-input",type:"checkbox",id:"update",name:"update"},QR={class:"form-group"},XR={class:"form-text text-muted"},ZR=["href"],xR={class:"invalid-feedback"},eD={class:"form-text text-muted"},tD={class:"form-group"},nD={id:"idHelp",class:"form-text text-muted"},oD={class:"invalid-feedback"},sD={class:"form-group"},iD={class:"invalid-feedback"},rD={class:"form-group"},aD={class:"form-control",id:"expiration",name:"expiration"},lD={class:"form-group",id:"expiration-date-form"},dD={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},uD={class:"accordion mb-3",id:"options"},cD={class:"card"},pD={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},fD={class:"card-body"},hD={class:"form-group mb-0"},mD={class:"form-check"},vD={class:"form-check-input",type:"checkbox",id:"link",name:"link"},gD={class:"form-check"},yD={class:"form-check-input",type:"checkbox",id:"image",name:"image"},bD={class:"form-check"},wD={class:"form-check-input",type:"checkbox",id:"date",name:"date"},kD={class:"form-check"},ED={class:"form-check-input",type:"checkbox",id:"username",name:"username"},CD={class:"form-check"},SD={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},_D={class:"form-check"},ND={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},RD={class:"form-check"},DD={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},TD={class:"form-check"},AD={class:"form-check-input",type:"checkbox",id:"title",name:"title"},OD={class:"form-check"},PD={class:"form-check-input",type:"checkbox",id:"body",name:"body"},ID=["textContent"],VD={class:"anonymize-submit-bar"},qD={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},MD={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},UD={class:"pr-title mb-1"},$D={key:0},LD=["textContent"],FD={key:0},BD={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},HD={class:"nav nav-tabs",id:"myTab",role:"tablist"},zD={key:0,class:"nav-item",role:"presentation"},jD={key:1,class:"nav-item",role:"presentation"},GD=["textContent"],WD={class:"tab-content",id:"pills-tabContent"},KD={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},YD={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},JD={style:{"overflow-x":"auto"}},QD=["innerHTML"],XD={key:0,class:"pr-comments list-group"},ZD={class:"pr-comment list-group-item"},xD={class:"d-flex w-100 justify-content-between flex-wrap"},eT={key:0,class:"mb-1"},tT=["textContent"],nT={class:"mb-1"};function Ll(e,t){let o=Ge("markdown"),i=ge("field"),s=ge("form");return l(),d("div",zR,[n("div",jR,[n("div",GR,[n("div",{class:P(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[D((l(),d("form",{class:P(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=fe('
Anonymize \xA0/\xA0 Pull request

Anonymize a pull request

Fill in the details \u2014 it only takes a minute.

Source
',4)),p(" pullRequestUrl "),n("div",WR,[t[2]||(t[2]=n("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestUrl=r},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[W,e.anonymize?.pullRequestUrl?.errors?.access]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[W,e.anonymize?.pullRequestUrl?.errors?.missing]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" is already anonymized ",513),[[W,e.anonymize?.pullRequestUrl?.errors?.used]])]),D(n("div",null,[n("div",KR,[n("div",YR,[D(n("input",JR,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=n("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})]),v(" Conference ID ")],-1)),p(" Conference "),n("div",QR,[t[5]||(t[5]=n("label",{for:"conference"},[v("Conference ID "),n("span",{class:"text-muted"},"(Optional)")],-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[i,{state:e.viewState,set:r=>{e.conference=r},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(n("small",XR,[n("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},u(e.conference_data?.name),9,ZR),v(" will expire on "+u(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[W,e.conference_data]]),D(n("div",xR," The conference is not activated. ",512),[[W,e.anonymize?.conference?.errors?.activated]]),D(n("small",eD," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[W,!e.conference_data]])]),t[27]||(t[27]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),v(" Anonymization Options ")],-1)),p(" Pull Request ID "),n("div",tD,[t[6]||(t[6]=n("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestId=r},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",nD,"Id used in the url: https://anonymous.4open.science/r/"+u(e.pullRequestId),1),D(n("div",oD," Repository id can only contain letters and numbers ",512),[[W,e.anonymize?.pullRequestId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestId)+" is already used ",513),[[W,e.anonymize?.pullRequestId?.errors?.used]])]),p(" Terms "),n("div",sD,[t[7]||(t[7]=n("label",{for:"terms"},"Terms to anonymize",-1)),D(n("textarea",{class:P(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=n("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),D(n("div",iD," Terms are in an invalid format ",512),[[W,e.anonymize?.terms?.errors?.format]])]),n("div",rD,[t[10]||(t[10]=n("label",{for:"expiration"},"Expiration strategy",-1)),D((l(),d("select",aD,[...t[9]||(t[9]=[n("option",{value:"never",selected:""},"Never expire",-1),n("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),n("option",{value:"remove"},"Remove when expired",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),D(n("div",lD,[t[12]||(t[12]=n("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),D(n("input",dD,null,512),[[i,{state:e.viewState,set:r=>{e.options.expirationDate=r},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),D(n("small",{class:"form-text text-muted"},"After "+u(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[W,e.options?.expirationMode=="remove"]]),D(n("small",{class:"form-text text-muted"},"After "+u(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+u(e.pullRequestUrl)+".",513),[[W,e.options?.expirationMode=="redirect"]])],512),[[W,e.options?.expirationMode!="never"]]),n("div",uD,[n("div",cD,[t[25]||(t[25]=fe('

',1)),n("div",pD,[n("div",fD,[n("div",hD,[n("div",mD,[D(n("input",vD,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),n("div",gD,[D(n("input",yD,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),n("div",bD,[D(n("input",wD,null,512),[[i,{state:e.viewState,set:r=>{e.options.date=r},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=n("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=n("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),n("div",kD,[D(n("input",ED,null,512),[[i,{state:e.viewState,set:r=>{e.options.username=r},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"username"},"Display username",-1))]),n("div",CD,[D(n("input",SD,null,512),[[i,{state:e.viewState,set:r=>{e.options.comments=r},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),n("div",_D,[D(n("input",ND,null,512),[[i,{state:e.viewState,set:r=>{e.options.diff=r},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),n("div",RD,[D(n("input",DD,null,512),[[i,{state:e.viewState,set:r=>{e.options.origin=r},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),n("div",TD,[D(n("input",AD,null,512),[[i,{state:e.viewState,set:r=>{e.options.title=r},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=n("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),n("div",OD,[D(n("input",PD,null,512),[[i,{state:e.viewState,set:r=>{e.options.body=r},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[W,e.pullRequestUrl]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,ID)):p("v-if",!0),D(n("div",VD,[e.isUpdate?p("v-if",!0):(l(),d("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=de(r=>e.submitForm(r,()=>{e.anonymizePullRequest(r)}),["prevent"]))},[...t[28]||(t[28]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(" Anonymize ",-1)])])),e.isUpdate?(l(),d("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=de(r=>e.submitForm(r,()=>{e.updatePullRequest(r)}),["prevent"]))},[...t[29]||(t[29]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),v(" Update ",-1)])])):p("v-if",!0)],512),[[W,e.pullRequestUrl]])],2)),[[s,e.viewState]])],2)]),e.details?(l(),d("div",qD,[n("div",MD,[n("h2",UD,[e.options?.title?(l(),d("span",$D,u(e.anonymize(e.details?.pullRequest?.title)),1)):p("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},u(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,LD)):p("v-if",!0)]),e.options?.origin?(l(),d("small",FD,"Pull Request on "+u(e.details?.pullRequest?.baseRepositoryFullName),1)):p("v-if",!0),e.options?.body?(l(),d("div",BD,[Ce(o,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0),n("ul",HD,[e.options?.diff?(l(),d("li",zD,[...t[31]||(t[31]=[n("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):p("v-if",!0),e.options?.comments?(l(),d("li",jD,[n("button",{class:P(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[n("span",{textContent:u(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,GD)],2)])):p("v-if",!0)]),n("div",WD,[n("div",KD,[e.options?.diff?(l(),d("div",YD,[n("pre",JD,[n("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,QD)])])):p("v-if",!0)]),n("div",{class:P(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(l(),d("ul",XD,[(l(!0),d(K,null,ne(e.details?.pullRequest?.comments,(r,a)=>(l(),d("li",ZD,[n("div",xD,[e.options?.username?(l(),d("h5",eT," @"+u(e.anonymize(r?.author)),1)):p("v-if",!0),e.options?.date?(l(),d("small",{key:1,textContent:u(e.fmt?.date(r?.updatedDate))},null,8,tT)):p("v-if",!0)]),n("p",nT,[e.options?.body?(l(),Ft(o,{key:0,class:"pr-comment-body",content:e.anonymize(r?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):p("v-if",!0)])]))),256))])):p("v-if",!0)],2)])])):p("v-if",!0)])])}var oT={class:"container paper-page claim-page"},sT={class:"paper-settings-main claim-form"},iT={class:"form-group"},rT={class:"invalid-feedback"},aT={class:"form-group"};function Fl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",oT,[t[6]||(t[6]=fe('
My work \xA0/\xA0 Claim

Claim an anonymization

Take ownership of an existing anonymized repository so it appears on your dashboard.

',3)),n("div",sT,[t[5]||(t[5]=n("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),D((l(),d("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{e.claim()}),["prevent"]))},[n("div",iT,[t[1]||(t[1]=n("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",placeholder:"https://github.com/owner/repository",required:""},null,2),[[o,{state:e.viewState,set:s=>{e.repoUrl=s},value:e.repoUrl,form:"claimForm",options:{}}]]),D(n("div",rT," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[W,e.claimForm?.repoUrl?.errors?.not_found]])]),n("div",aT,[t[2]||(t[2]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",placeholder:"e.g. my-paper-7F2A","aria-describedby":"idHelp",required:""},null,2),[[o,{state:e.viewState,set:s=>{e.repoId=s},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=n("small",{id:"idHelp",class:"form-text text-muted"},[v("The ID is the last part of the anonymized URL: "),n("code",null,"anonymous.4open.science/r/"),v(".")],-1))]),t[4]||(t[4]=n("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[i,e.viewState]])])])}var lT={class:"container page paper-page conference-page"},dT={class:"paper-crumbs"},uT={class:"here"},cT={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},pT=["textContent"],fT={key:0,class:"paper-page-lede"},hT=["textContent","href"],mT={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},vT=["textContent"],gT=["href"],yT={class:"paper-meta-rule"},bT=["textContent"],wT=["textContent"],kT={key:0},ET={key:0,class:"conference-payment-status",role:"status"},CT=["disabled"],ST={key:1,role:"alert"},_T={key:2,class:"paper-settings-section","aria-labelledby":"conference-payment-heading"},NT={key:0,role:"status"},RT={key:1,role:"alert"},DT=["disabled"],TT={class:"search-wrap"},AT={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search by ID or source repository\u2026",autocomplete:"off"},OT={class:"dashboard-filter-controls"},PT={class:"dropdown"},IT={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},VT={class:"filter-btn-value"},qT={class:"dropdown-menu","aria-labelledby":"dropdownSort"},MT={class:"form-check dropdown-item"},UT={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},$T={class:"form-check dropdown-item"},LT={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},FT={class:"form-check dropdown-item"},BT={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},HT={class:"form-check dropdown-item"},zT={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},jT={class:"dropdown"},GT={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},WT={key:0,class:"filter-btn-value"},KT={key:1,class:"filter-btn-value"},YT={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},JT={class:"form-check dropdown-item"},QT=["id"],XT=["for"],ZT={class:"dashboard-meta"},xT={class:"dashboard-count"},eA={key:0},tA={key:0},nA={key:1},oA={key:1},sA={key:0,class:"filter-chip"},iA=["onClick","aria-label"],rA={class:"paper-table paper-table-repos w-100",role:"table","aria-label":"Repositories"},aA={class:"cell-anon",role:"cell"},lA={class:"anon-text"},dA=["textContent","href"],uA={class:"anon-sub"},cA={class:"anon-source"},pA=["textContent","href"],fA={key:0},hA=["textContent","href"],mA={key:1},vA=["href"],gA={class:"cell-status",role:"cell"},yA={class:"status-line"},bA=["textContent"],wA={key:0,class:"status-sub"},kA={class:"cell-views num",role:"cell"},EA=["textContent"],CA={class:"cell-expires",role:"cell"},SA={key:0,class:"expires-never"},_A=["textContent"],NA={key:2,class:"expires-past"},RA={key:0},DA={key:3,class:"empty-dash","aria-label":"Not applicable"},TA={class:"cell-actions",role:"cell"},AA={class:"dropdown"},OA=["aria-label"],PA={class:"dropdown-menu dropdown-menu-right"},IA=["href"],VA=["href"],qA={key:0,class:"paper-table-empty"},MA={key:0},UA={key:1},$A={key:2,class:"paper-table-empty-actions"};function Bl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",lT,[n("div",null,[n("div",dT,[t[4]||(t[4]=n("a",{href:"/dashboard"},"My work",-1)),t[5]||(t[5]=v(" \xA0/\xA0 ",-1)),t[6]||(t[6]=n("a",{href:"/conferences"},"Conferences",-1)),t[7]||(t[7]=v(" \xA0/\xA0 ",-1)),n("span",uT,u(e.conference?.conferenceID),1)]),n("div",cT,[n("div",null,[n("h1",{class:"paper-page-title",textContent:u(e.conference?.name)},null,8,pT),e.conference?.url?(l(),d("p",fT,[n("a",{target:"_blank",rel:"noopener",textContent:u(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,hT)])):p("v-if",!0)]),n("div",mT,[n("span",{class:P(["status-pill",{"status-pill-ready":e.conference?.status=="ready","status-pill-removed":e.conference?.status=="removed"||e.conference?.status=="expired"}])},[n("span",{class:P(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),n("span",{textContent:u(e.fmt?.statusLabel(e.conference?.status))},null,8,vT)],2),n("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[8]||(t[8]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit conference",-1)])],8,gT)])]),n("div",yT,[n("span",null,[t[9]||(t[9]=v("ID ",-1)),n("b",{class:"commit-hash",textContent:u(e.conference?.conferenceID)},null,8,bT)]),n("span",null,[t[10]||(t[10]=v("Review window ",-1)),n("b",null,u(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+u(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),n("span",null,[t[11]||(t[11]=v("Repositories ",-1)),n("b",null,u(e.fmt?.number(e.conference?.repositories?.length)),1)]),n("span",null,[t[12]||(t[12]=v("Plan ",-1)),n("b",{textContent:u(e.conference?.plan?.name||e.conference?.plan?.planID||"Free")},null,8,wT)]),e.conference?.price?(l(),d("span",kT,[t[13]||(t[13]=v("Cost so far ",-1)),n("b",null,u(e.fmt?.number(e.conference?.price,2))+" \u20AC",1)])):p("v-if",!0)]),e.billingNotice?(l(),d("div",ET,[n("p",null,u(e.billingNotice),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[0]||(t[0]=s=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,CT)])):p("v-if",!0),e.billingError&&e.conference?.status!=="pending_payment"?(l(),d("p",ST,u(e.billingError),1)):p("v-if",!0),e.conference?.status==="pending_payment"?(l(),d("section",_T,[t[14]||(t[14]=n("h2",{id:"conference-payment-heading"},"Activate your review package",-1)),t[15]||(t[15]=n("p",null,"This conference is waiting for payment. Authors can join after payment is confirmed. Checkout returns to this conference. Authors within the package do not pay separately.",-1)),e.billingLoading?(l(),d("p",NT,"Loading payment options\u2026")):p("v-if",!0),e.billingError?(l(),d("p",RT,u(e.billingError),1)):p("v-if",!0),(l(!0),d(K,null,ne((e.billing?.plans||[]).filter(s=>s.id==="conference"),s=>(l(),d("div",{key:s.id},[n("p",null,u(e.billingPrice(s))+" for up to "+u(s.repositories)+" repositories and "+u(e.billingBytes(s.storage))+" of source files during the review window. Taxes, if applicable, appear at checkout.",1),n("button",{type:"button",class:"btn btn-primary",onClick:t[1]||(t[1]=r=>e.checkout("conference",e.conference.conferenceID)),disabled:e.billingBusy||e.billingPending||e.billing?.checkoutEnabled===!1},u(e.billingBusy?"Please wait\u2026":"Pay for review package"),9,DT)]))),128)),t[16]||(t[16]=n("p",null,[n("a",{href:"/profile#settings-billing"},"Manage invoices")],-1))])):p("v-if",!0),t[37]||(t[37]=n("div",{class:"paper-section-eyebrow"},"Repositories",-1)),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[2]||(t[2]=de(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[n("div",TT,[D(n("input",AT,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",OT,[n("div",PT,[n("button",IT,[t[17]||(t[17]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",VT,u({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),n("div",qT,[t[22]||(t[22]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",MT,[D(n("input",UT,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),n("div",$T,[D(n("input",LT,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",FT,[D(n("input",BT,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",HT,[D(n("input",zT,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])]),n("div",jT,[n("button",GT,[t[23]||(t[23]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",WT,"All")):p("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?p("v-if",!0):(l(),d("span",KT,u((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",YT,[t[24]||(t[24]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(K,null,ne(e.statusLabels,(s,r,a)=>(l(),d("div",JT,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,QT),[[o,{state:e.viewState,set:c=>{e.filters.status[r]=c},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},u(s),9,XT)]))),256))])])])],32)),[[i,e.viewState]]),n("div",ZT,[n("span",xT,[e.filteredRepositories?.length===e.conference?.repositories?.length?(l(),d("span",eA,[v(u(e.fmt?.number(e.conference?.repositories?.length))+" repositor",1),e.conference?.repositories?.length===1?(l(),d("span",tA,"y")):p("v-if",!0),e.conference?.repositories?.length!==1?(l(),d("span",nA,"ies")):p("v-if",!0)])):p("v-if",!0),e.filteredRepositories?.length!==e.conference?.repositories?.length?(l(),d("span",oA,u(e.fmt?.number(e.filteredRepositories?.length))+" of "+u(e.fmt?.number(e.conference?.repositories?.length))+" shown",1)):p("v-if",!0)]),(l(!0),d(K,null,ne(e.filters?.status,(s,r,a)=>(l(),d(K,null,[s===!1?(l(),d("span",sA,[v(" Hiding "+u(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:c=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,iA)])):p("v-if",!0)],64))),256))]),n("div",rA,[t[36]||(t[36]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Repository"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Views"),n("div",{role:"columnheader"},"Expires"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(K,null,ne(e.filteredRepositories,(s,r)=>(l(),d("div",{class:P(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error"}]),role:"row",key:s?.repoId},[n("div",aA,[t[27]||(t[27]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",lA,[n("a",{class:"repo-name",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId+"/")},null,8,dA),n("div",uA,[n("span",cA,[n("a",{target:"_blank",rel:"noopener",textContent:u(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,pA),s?.options?.update&&s?.source?.branch?(l(),d("span",fA,[t[25]||(t[25]=v(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,hA)])):p("v-if",!0),s?.source?.commit?(l(),d("span",mA,[t[26]||(t[26]=v(" \xB7 ",-1)),n("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},"@"+u(s?.source?.commit?.substring(0,8)),9,vA)])):p("v-if",!0)])])])]),n("div",gA,[n("div",yA,[n("span",{class:P(["status-dot","status-"+(s?.status=="error"?"error":s?.status=="ready"?"ready":s?.status=="expired"||s?.status=="removed"?s?.status:"progress")]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(s?.status))},null,8,bA)]),s?.anonymizeDate?(l(),d("div",wA,"anonymized "+u(e.fmt?.humanTime(s?.anonymizeDate)),1)):p("v-if",!0)]),n("div",kA,[t[28]||(t[28]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[29]||(t[29]=v()),n("span",{textContent:u(e.fmt?.number(s?.pageView))},null,8,EA)]),n("div",CA,[t[31]||(t[31]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),s?.status=="ready"&&(s?.options?.expirationMode==="never"||!s?.options?.expirationDate)?(l(),d("span",SA,"Never")):p("v-if",!0),s?.status=="ready"&&s?.options?.expirationMode!=="never"&&s?.options?.expirationDate?(l(),d("span",{key:1,textContent:u(e.fmt?.humanTime(s?.options?.expirationDate))},null,8,_A)):p("v-if",!0),s?.status=="expired"?(l(),d("span",NA,[t[30]||(t[30]=v("Expired",-1)),s?.options?.expirationDate?(l(),d("span",RA,u(e.fmt?.humanTime(s?.options?.expirationDate)),1)):p("v-if",!0)])):p("v-if",!0),s?.status!="ready"&&s?.status!="expired"?(l(),d("span",DA,"\u2014")):p("v-if",!0)]),n("div",TA,[n("div",AA,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+s?.repoId},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,OA),n("div",PA,[n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View ",-1)])],8,IA),n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit ",-1)])],8,VA)])])])],2))),128)),e.filteredRepositories?.length==0?(l(),d("div",qA,[t[35]||(t[35]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conference?.repositories?.length?p("v-if",!0):(l(),d("span",MA,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(l(),d("span",UA,"Nothing matches the current filters.")):p("v-if",!0),e.conference?.repositories?.length?(l(),d("div",$A,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")])):p("v-if",!0)])):p("v-if",!0)])])])}var LA={class:"container page paper-page conferences-page"},FA={class:"row"},BA={class:"w-100"},HA={class:"search-wrap"},zA={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},jA={class:"dashboard-filter-controls"},GA={class:"dropdown"},WA={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},KA={class:"filter-btn-value"},YA={class:"dropdown-menu","aria-labelledby":"dropdownSort"},JA={class:"form-check dropdown-item"},QA={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},XA={class:"form-check dropdown-item"},ZA={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},xA={class:"form-check dropdown-item"},eO={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},tO={class:"dropdown"},nO={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},oO={key:0,class:"filter-btn-value"},sO={key:1,class:"filter-btn-value"},iO={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},rO={class:"form-check dropdown-item"},aO=["id"],lO=["for"],dO={class:"dashboard-meta"},uO={class:"dashboard-count"},cO={key:0},pO={key:0},fO={key:1},hO={key:0,class:"filter-chip"},mO=["onClick","aria-label"],vO={key:0,class:"conference-feedback",role:"alert"},gO={key:1,class:"conference-feedback",role:"status"},yO={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},bO={class:"cell-anon",role:"cell"},wO={class:"anon-text"},kO=["textContent","href"],EO={class:"anon-sub"},CO={class:"anon-source"},SO=["textContent"],_O={key:0},NO=["textContent","href"],RO={class:"cell-status",role:"cell"},DO={class:"status-line"},TO=["textContent"],AO={class:"cell-views num",role:"cell"},OO=["textContent"],PO={class:"cell-expires",role:"cell"},IO={key:0},VO={key:1,class:"empty-dash","aria-label":"No review window"},qO={class:"cell-actions",role:"cell"},MO={class:"dropdown"},UO=["disabled","aria-label"],$O={class:"dropdown-menu dropdown-menu-right"},LO=["href"],FO=["href"],BO={key:0},HO=["onClick"],zO={key:0,class:"paper-table-empty"},jO={key:0},GO={key:1},WO={class:"paper-table-empty-actions"},KO={key:1,href:"/conference/new",class:"btn btn-ink"};function Hl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",LA,[n("div",FA,[n("div",BA,[t[10]||(t[10]=fe('
My work \xA0/\xA0 Conferences

Your conferences

Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.

New conference
',2)),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[n("div",HA,[D(n("input",zA,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",jA,[n("div",GA,[n("button",WA,[t[3]||(t[3]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",KA,u({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),n("div",YA,[t[7]||(t[7]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",JA,[D(n("input",QA,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),n("div",XA,[D(n("input",ZA,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[5]||(t[5]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",xA,[D(n("input",eO,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[6]||(t[6]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),n("div",tO,[n("button",nO,[t[8]||(t[8]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",oO,"All")):p("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?p("v-if",!0):(l(),d("span",sO,u((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",iO,[t[9]||(t[9]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(K,null,ne(e.statusLabels,(s,r,a)=>(l(),d("div",rO,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,aO),[[o,{state:e.viewState,set:c=>{e.filters.status[r]=c},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},u(s),9,lO)]))),256))])])])],32)),[[i,e.viewState]]),n("div",dO,[n("span",uO,[e.filteredConferences?.length===e.conferences?.length?(l(),d("span",cO,[v(u(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(l(),d("span",pO,"s")):p("v-if",!0)])):p("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(l(),d("span",fO,u(e.fmt?.number(e.filteredConferences?.length))+" of "+u(e.fmt?.number(e.conferences?.length))+" shown",1)):p("v-if",!0)]),(l(!0),d(K,null,ne(e.filters?.status,(s,r,a)=>(l(),d(K,null,[s===!1?(l(),d("span",hO,[v(" Hiding "+u(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:c=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,mO)])):p("v-if",!0)],64))),256))])]),e.error?(l(),d("div",vO,[n("span",null,u(e.error),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=s=>e.loadConferences())},"Retry")])):p("v-if",!0),e.loading?(l(),d("div",gO,"Loading conferences\u2026")):p("v-if",!0),n("div",yO,[t[24]||(t[24]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Conference"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Repos"),n("div",{role:"columnheader"},"Review window"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(K,null,ne(e.filteredConferences,(s,r)=>(l(),d("div",{class:P(["paper-table-row row-clickable",{"repo-inactive":s?.status=="expired"||s?.status=="removed"}]),role:"row",key:s?.conferenceID},[n("div",bO,[t[13]||(t[13]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",wO,[n("a",{class:"repo-name",textContent:u(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,kO),n("div",EO,[n("span",CO,[t[12]||(t[12]=v("ID ",-1)),n("span",{class:"commit-hash",textContent:u(s?.conferenceID)},null,8,SO),s?.url?(l(),d("span",_O,[t[11]||(t[11]=v(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:u(e.fmt?.limitTo(s?.url,60)),href:e.safeUrl(s?.url)},null,8,NO)])):p("v-if",!0)])])])]),n("div",RO,[n("div",DO,[n("span",{class:P(["status-dot","status-"+s?.status]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(s?.status))},null,8,TO)])]),n("div",AO,[t[14]||(t[14]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),t[15]||(t[15]=v()),n("span",{textContent:u(e.fmt?.number(s?.nbRepositories||0))},null,8,OO)]),n("div",PO,[t[16]||(t[16]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),s?.startDate?(l(),d("span",IO,u(e.fmt?.date(s?.startDate,"mediumDate"))+" \u2013 "+u(e.fmt?.date(s?.endDate,"mediumDate")),1)):p("v-if",!0),s?.startDate?p("v-if",!0):(l(),d("span",VO,"\u2014"))]),n("div",qO,[n("div",MO,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:s?.removing,"aria-label":"Actions for "+s?.name},[...t[17]||(t[17]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,UO),n("div",$O,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[18]||(t[18]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View ",-1)])],8,LO),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit ",-1)])],8,FO),s?.status!="removed"?(l(),d("div",BO,[t[21]||(t[21]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeConference(s)},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove ",-1)])],8,HO)])):p("v-if",!0)])])])],2))),128)),!e.loading&&!e.error&&e.filteredConferences?.length==0?(l(),d("div",zO,[t[23]||(t[23]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conferences?.length==0?(l(),d("span",jO,"You have not created a conference yet.")):p("v-if",!0),e.conferences?.length>0?(l(),d("span",GO,"Nothing matches the current filters.")):p("v-if",!0),n("div",WO,[e.conferences?.length>0?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):p("v-if",!0),e.conferences?.length==0?(l(),d("a",KO,[...t[22]||(t[22]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),v(" New conference",-1)])])):p("v-if",!0)])])):p("v-if",!0)])])])}var YO={class:"container page dashboard-page paper-page"},JO={class:"row"},QO={class:"w-100"},XO={class:"dashboard-heading"},ZO=["open"],xO=["aria-expanded"],eP=["stroke-dasharray"],tP={key:1,d:"M7 12c0-4 4-4 5 0s5 4 5 0-4-4-5 0-5 4-5 0",class:"quota-ring-unlimited"},nP={key:0,class:"quota-summary-value"},oP={key:0},sP={class:"quota-panel",id:"dashboard-usage"},iP={class:"quota-panel-heading"},rP={key:1,class:"quota-loading",role:"status"},aP={class:"search-wrap"},lP={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search projects, IDs, or conferences\u2026",autocomplete:"off"},dP=["aria-expanded"],uP={class:"btn-group",role:"group","aria-label":"Type"},cP=["aria-pressed"],pP=["aria-pressed"],fP=["aria-pressed"],hP=["aria-pressed"],mP={class:"dropdown"},vP={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},gP={class:"filter-btn-value"},yP={class:"sr-only"},bP={class:"dropdown-menu","aria-labelledby":"dropdownSort"},wP={class:"form-check dropdown-item"},kP=["onClick","checked","id"],EP=["for"],CP={class:"dropdown"},SP={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},_P={key:0,class:"filter-btn-value"},NP={key:1,class:"filter-btn-value"},RP={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},DP={class:"form-check dropdown-item"},TP=["id"],AP=["for"],OP={key:0,class:"dashboard-meta"},PP={class:"dashboard-view-tabs",role:"group","aria-label":"Project view"},IP=["aria-pressed"],VP=["aria-pressed","aria-label"],qP={class:"dashboard-count"},MP={key:0},UP={key:0},$P={key:1},LP={class:"dashboard-active-filters"},FP=["onClick","aria-label","title"],BP=["aria-busy"],HP={class:"paper-table-head",role:"row"},zP=["aria-sort"],jP=["aria-sort"],GP=["aria-sort"],WP=["aria-sort"],KP={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},YP=["onClick"],JP={class:"cell-anon",role:"cell"},QP=["aria-label","title"],XP={class:"project-type-svg","aria-hidden":"true"},ZP=["href"],xP={class:"anon-text"},eI={class:"anon-title"},tI=["title","textContent","href"],nI=["textContent"],oI={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},sI={class:"anon-sub"},iI=["title"],rI=["title"],aI=["title"],lI=["textContent"],dI={class:"dashboard-row-meta",role:"presentation"},uI={class:"cell-status",role:"cell"},cI={class:"status-line"},pI=["textContent"],fI=["textContent","title"],hI=["title"],mI=["href"],vI=["onClick"],gI={key:4,class:"status-sub status-sub-date"},yI=["aria-label"],bI={class:"cell-expires",role:"cell"},wI={key:0,class:"expires-never"},kI=["textContent"],EI={key:2,class:"expires-past"},CI={key:3,class:"expires-past"},SI={key:4,class:"empty-dash","aria-label":"Not applicable"},_I={class:"cell-actions",role:"cell"},NI=["onClick","disabled","title","aria-label"],RI=["onClick","data-project-actions","aria-controls","aria-expanded"],DI={key:2,class:"dropdown"},TI=["data-project-actions","aria-label"],AI={class:"dropdown-menu dropdown-menu-right"},OI=["onClick","aria-controls","aria-expanded"],PI=["href"],II=["href"],VI=["onClick","disabled"],qI=["href"],MI=["onClick"],UI=["onClick"],$I=["onClick"],LI={key:5},FI=["onClick"],BI={key:1,class:"project-details-row",role:"row"},HI=["id","onKeydown"],zI={class:"project-details-heading"},jI=["onClick"],GI={class:"project-details-list"},WI={key:0},KI={key:1},YI={key:0},JI={key:2},QI={key:0,class:"project-progress-help"},XI=["href"],ZI=["onSubmit"],xI=["for"],e4=["id"],t4={class:"project-name-controls"},n4=["id","aria-describedby","disabled"],o4=["disabled"],s4={key:0,class:"project-name-error",role:"alert"},i4={key:1,role:"status"},r4={key:0,class:"paper-table-empty"},a4={key:0},l4={key:1},d4={class:"paper-table-empty-actions"},u4={key:1,href:"/anonymize",class:"btn btn-ink"},c4={key:0,class:"dashboard-pagination"},p4={key:0,role:"alert"},f4=["disabled"];function zl(e,t){let o=Ge("quota-usage"),i=ge("field"),s=ge("form");return l(),d("div",YO,[n("div",JO,[n("div",QO,[n("div",XO,[n("div",null,[t[27]||(t[27]=n("h1",{class:"paper-page-title"},"Projects",-1)),t[28]||(t[28]=n("p",{class:"paper-page-lede"},"Manage your anonymous links.",-1)),n("details",{class:"dashboard-quota",open:e.quotaExpanded,onToggle:t[1]||(t[1]=r=>e.quotaExpanded=r.target.open),onKeydown:t[2]||(t[2]=An(de(r=>e.closeQuota(),["prevent","stop"]),["esc"]))},[n("summary",{"aria-controls":"dashboard-usage","aria-expanded":e.quotaExpanded},[(l(),d("svg",{class:P(["quota-summary-ring",e.quota?"quota-"+e.quota.repository.level:""]),viewBox:"0 0 24 24","aria-hidden":"true"},[t[21]||(t[21]=n("circle",{class:"quota-ring-track",cx:"12",cy:"12",r:"9"},null,-1)),e.quota&&!e.quota.repository.unlimited?(l(),d("circle",{key:0,class:"quota-ring-fill",cx:"12",cy:"12",r:"9",pathLength:"100","stroke-dasharray":e.quota.repository.percent+" 100"},null,8,eP)):p("v-if",!0),e.quota?.repository.unlimited?(l(),d("path",tP)):p("v-if",!0)],2)),t[23]||(t[23]=n("span",{class:"quota-summary-label"},"Usage",-1)),e.quota?(l(),d("span",nP,[v(u(e.fmt.number(e.quota.repository.used)),1),e.quota.repository.unlimited?p("v-if",!0):(l(),d("span",oP," / "+u(e.fmt.number(e.quota.repository.total)),1)),t[22]||(t[22]=v(" repos",-1))])):p("v-if",!0),t[24]||(t[24]=n("svg",{class:"project-type-svg quota-summary-chevron","aria-hidden":"true"},[n("use",{href:"#project-icon-chevron"})],-1))],8,xO),n("div",sP,[n("div",iP,[t[26]||(t[26]=n("h2",null,"Account usage",-1)),n("button",{type:"button",class:"project-close","aria-label":"Close usage",onClick:t[0]||(t[0]=r=>e.closeQuota())},[...t[25]||(t[25]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),e.quota?(l(),Ft(o,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",rP,"Loading usage\u2026"))])],40,ZO)]),t[29]||(t[29]=fe('',1))]),p(" Search + filters "),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[9]||(t[9]=de(r=>e.submitForm(r,()=>{r.preventDefault()}),["prevent"]))},[n("div",aP,[D(n("input",lP,null,512),[[i,{state:e.viewState,set:r=>{e.search=r},value:e.search,form:null,options:{}}]])]),n("button",{class:"btn dashboard-filters-toggle",type:"button","aria-expanded":e.filtersExpanded,"aria-controls":"dashboard-filter-controls",onClick:t[3]||(t[3]=r=>e.filtersExpanded=!e.filtersExpanded)},[...t[30]||(t[30]=[v("Filters",-1),n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})],-1)])],8,dP),n("div",{id:"dashboard-filter-controls",class:P(["dashboard-filter-controls",{expanded:e.filtersExpanded}])},[n("div",uP,[n("button",{type:"button",class:P(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[4]||(t[4]=r=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,cP),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="repo"}]),title:"Repositories",onClick:t[5]||(t[5]=r=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},[...t[31]||(t[31]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("span",{class:"type-filter-label"},"Repos",-1)])],10,pP),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="pr"}]),title:"Pull requests",onClick:t[6]||(t[6]=r=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},[...t[32]||(t[32]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-pr"})],-1),n("span",{class:"type-filter-label"},"PRs",-1)])],10,fP),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="gist"}]),title:"Gists",onClick:t[7]||(t[7]=r=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},[...t[33]||(t[33]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1),n("span",{class:"type-filter-label"},"Gists",-1)])],10,hP)]),n("div",{id:"dashboard-extra-filters",class:P(["dashboard-extra-filters",{expanded:e.filtersExpanded}])},[n("div",mP,[n("button",vP,[t[35]||(t[35]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",gP,u(e.sortLabel()),1),(l(),d("svg",{class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)),n("span",yP,u(e.sortDesc()?"descending":"ascending"),1)]),n("div",bP,[t[36]||(t[36]=n("h6",{class:"dropdown-header"},"Order by",-1)),(l(!0),d(K,null,ne(e.sortFields,(r,a,c)=>(l(),d("div",wP,[n("input",{class:"form-check-input",type:"radio",name:"sort",onClick:f=>e.setSort(a,r.defaultDesc),checked:e.isSortedBy(a),id:"sort-"+c},null,8,kP),n("label",{class:"form-check-label",for:"sort-"+c},u(r?.label),9,EP)]))),256)),t[37]||(t[37]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item",onClick:t[8]||(t[8]=r=>e.toggleSortDirection())},u(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])]),n("div",CP,[n("button",SP,[t[38]||(t[38]=n("span",{class:"filter-btn-label"},"Status",-1)),e.hasHiddenStatus()?p("v-if",!0):(l(),d("span",_P,"All")),e.hasHiddenStatus()?(l(),d("span",NP,u(e.hiddenStatusCount())+" hidden",1)):p("v-if",!0)]),n("div",RP,[t[39]||(t[39]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(K,null,ne(e.statusKeyLabels,(r,a,c)=>(l(),d("div",DP,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+a},null,8,TP),[[i,{state:e.viewState,set:f=>{e.filters.status[a]=f},value:e.filters?.status[a],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+a},u(r),9,AP)]))),256))])])],2)],2)],32)),[[s,e.viewState]]),p(" Result count + active filter chips "),e.loading?p("v-if",!0):(l(),d("div",OP,[n("div",PP,[n("button",{type:"button","aria-pressed":e.projectView==="all",onClick:t[10]||(t[10]=r=>e.setProjectView("all")),"aria-label":"All projects"},[...t[40]||(t[40]=[n("span",{class:"dashboard-view-long"},"All projects",-1),n("span",{class:"dashboard-view-short","aria-hidden":"true"},"All",-1)])],8,IP),n("button",{type:"button","aria-pressed":e.projectView==="attention",onClick:t[11]||(t[11]=r=>e.setProjectView("attention")),"aria-label":"Needs attention "+e.attentionCount()},[t[41]||(t[41]=n("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[42]||(t[42]=n("span",null,"attention",-1)),t[43]||(t[43]=v()),n("span",{class:P(["attention-count",{"has-attention":e.attentionCount()>0}])},u(e.attentionCount()),3)],8,VP)]),n("span",qP,[(e.dashboardTotals?.filtered??e.filteredItems?.length)===(e.dashboardTotals?.total??e.items?.length)?(l(),d("span",MP,[v(u(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" project",1),(e.dashboardTotals?.total??e.items?.length)!==1?(l(),d("span",UP,"s")):p("v-if",!0)])):(l(),d("span",$P,u(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" of "+u(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" shown",1))]),n("div",LP,[(l(!0),d(K,null,ne(e.filters?.status,(r,a,c)=>(l(),d(K,null,[r===!1?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:f=>e.filters.status[a]=!0,"aria-label":"Show "+e.statusKeyLabels[a]+" again",title:"Show "+e.statusKeyLabels[a]+" again"},[v(u(e.statusKeyLabels[a])+" hidden",1),t[44]||(t[44]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))],8,FP)):p("v-if",!0)],64))),256)),e.typeFilter!=="all"?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:t[12]||(t[12]=r=>e.typeFilter="all"),"aria-label":"Show all project types"},[v(u(e.typeFilter==="repo"?"Repositories":e.typeFilter==="pr"?"Pull requests":"Gists"),1),t[45]||(t[45]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))])):p("v-if",!0),e.showClearFilters()?(l(),d("button",{key:1,type:"button",class:"btn-link-inline",onClick:t[13]||(t[13]=r=>e.clearFilters())},"Clear filters")):p("v-if",!0)])]))]),p(" Table "),n("div",{class:"paper-table paper-table-dashboard",role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[n("div",HP,[n("div",{role:"columnheader","aria-sort":e.isSortedBy("_label")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("_label")}]),onClick:t[14]||(t[14]=r=>e.setSort("_label"))},[t[47]||(t[47]=v(" Project ",-1)),e.isSortedBy("_label")?(l(),d("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[46]||(t[46]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,zP),n("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("status")}]),onClick:t[15]||(t[15]=r=>e.setSort("status"))},[t[49]||(t[49]=v(" Status ",-1)),e.isSortedBy("status")?(l(),d("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[48]||(t[48]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,jP),n("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[16]||(t[16]=r=>e.setSort("pageView"))},[t[51]||(t[51]=v(" Views ",-1)),e.isSortedBy("pageView")?(l(),d("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[50]||(t[50]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,GP),n("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[17]||(t[17]=r=>e.setSort("options.expirationDate"))},[t[53]||(t[53]=v(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(l(),d("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[52]||(t[52]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,WP),t[54]||(t[54]=n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")],-1))]),p(" Loading skeleton: keeps the layout stable while the three lists load "),(l(),d(K,null,ne([1,2,3,4],(r,a)=>(l(),d(K,null,[e.loading?(l(),d("div",KP,[...t[55]||(t[55]=[n("div",{class:"cell-anon",role:"cell"},[n("span",{class:"skeleton skeleton-badge"}),n("div",{class:"anon-text"},[n("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),n("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),n("div",{class:"cell-status",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),n("div",{class:"cell-views num",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),n("div",{class:"cell-expires",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),n("div",{class:"cell-actions",role:"cell"},null,-1)])])):p("v-if",!0)],64))),64)),(l(!0),d(K,null,ne(e.filteredItems,(r,a)=>(l(),d(K,{key:r?._type+":"+(r?._id||a)},[e.loading?p("v-if",!0):(l(),d("div",{key:0,class:P(["paper-table-row",{"repo-inactive":r?._statusKey=="expired"||r?._statusKey=="removed","repo-error":r?.status=="error","row-clickable":!!r?._viewUrl}]),role:"row",onClick:c=>e.openItem(r,c)},[n("div",JP,[n("span",{class:"project-type-icon",role:"img","aria-label":r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist",title:r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist"},[(l(),d("svg",XP,[n("use",{href:"#project-type-"+r._type},null,8,ZP)]))],8,QP),n("div",xP,[n("div",eI,[r?._viewUrl?(l(),d("a",{key:0,class:"repo-name",title:r._label,textContent:u(r?._label),href:e.safeUrl(r?._viewUrl)},null,8,tI)):p("v-if",!0),r?._viewUrl?p("v-if",!0):(l(),d("span",{key:1,class:"repo-name repo-name-static",textContent:u(r?._label)},null,8,nI)),r?.role==="coauthor"?(l(),d("span",oI,"Co-author")):p("v-if",!0)]),n("div",sI,[r?._id?(l(),d("code",{key:0,class:"anonymous-id",title:r._id},u(r._id),9,iI)):p("v-if",!0),r?._type==="repo"&&r?.source?.commit?(l(),d("span",{key:1,class:"commit-hash",title:r.source.commit},u(r.source.commit.substring(0,8)),9,rI)):p("v-if",!0),r?.conference?(l(),d("span",{key:2,class:"cell-conf conf-tag",title:r?.conference},[t[56]||(t[56]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),t[57]||(t[57]=v()),n("span",{textContent:u(r?.conference)},null,8,lI)],8,aI)):p("v-if",!0)])])]),n("div",dI,[n("div",uI,[n("div",cI,[n("span",{class:P(["status-dot","status-"+r?._statusKey]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(r?.status))},null,8,pI)]),r?.status=="error"&&r?.statusMessage?(l(),d("div",{key:0,class:"status-sub status-sub-error",textContent:u(e.fmt?.statusMsg(r?.statusMessage)),title:r?.statusMessage},null,8,fI)):p("v-if",!0),r?._stale?(l(),d("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(r?.anonymizeDate||r?.lastView)}," Last activity "+u(e.fmt?.humanTime(r?.anonymizeDate||r?.lastView))+" \xB7 may be stuck ",9,hI)):p("v-if",!0),r.status==="error"&&r._editUrl?(l(),d("a",{key:2,class:"project-attention-action",href:e.safeUrl(r._editUrl)},"Fix source",8,mI)):p("v-if",!0),r._stale||r._broken?(l(),d("button",{key:3,type:"button",class:"project-attention-action",onClick:de(c=>e.showProjectDetails(r),["stop"])},u(r._broken?"Review details":"Check progress"),9,vI)):p("v-if",!0),r?.status!="error"&&!r?._stale&&r?.anonymizeDate?(l(),d("div",gI," anonymized "+u(e.fmt?.humanTime(r?.anonymizeDate)),1)):p("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","aria-label":e.fmt.number(r.pageView)+" views"},[t[58]||(t[58]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),n("span",null,u(e.fmt.number(r.pageView)),1)],8,yI),n("div",bI,[t[59]||(t[59]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),r?._expiry?.kind==="never"?(l(),d("span",wI,"Never")):p("v-if",!0),r?._expiry?.kind==="date"?(l(),d("span",{key:1,textContent:u(e.fmt?.humanTime(r?._expiry?.date))},null,8,kI)):p("v-if",!0),r?._expiry?.kind==="expired"&&r?._expiry?.date?(l(),d("span",EI,"Expired "+u(e.fmt?.humanTime(r?._expiry?.date)),1)):p("v-if",!0),r?._expiry?.kind==="expired"&&!r?._expiry?.date?(l(),d("span",CI,"Expired")):p("v-if",!0),r?._expiry?.kind==="none"?(l(),d("span",SI,"\u2014")):p("v-if",!0)])]),n("div",_I,[r._viewUrl?(l(),d("button",{key:0,type:"button",class:"copy-link-inline",onClick:de(c=>e.copyLink(r),["stop"]),disabled:!!e.copyingId,title:"Copy anonymous link for "+r._label,"aria-label":"Copy anonymous link for "+r._label},[...t[60]||(t[60]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-copy"})],-1)])],8,NI)):p("v-if",!0),r._broken?(l(),d("button",{key:1,type:"button",class:"project-details-button",onClick:de(c=>e.showProjectDetails(r),["stop"]),"data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Details",8,RI)):p("v-if",!0),r?._broken?p("v-if",!0):(l(),d("div",DI,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-label":"Actions for "+r?._name},[...t[61]||(t[61]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,TI),n("div",AI,[n("button",{type:"button",class:"dropdown-item",onClick:c=>e.showProjectDetails(r),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Project details & name",8,OI),n("a",{class:"dropdown-item",href:e.safeUrl(r?._viewUrl)}," View ",8,PI),r?._type==="repo"&&r?.options?.page&&r?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+r?.repoId+"/")}," View page ",8,II)):p("v-if",!0),r?._viewUrl?(l(),d("button",{key:1,type:"button",class:"dropdown-item",onClick:c=>e.copyLink(r),disabled:!!e.copyingId}," Copy anonymous link ",8,VI)):p("v-if",!0),n("a",{class:"dropdown-item",href:e.safeUrl(r?._editUrl)}," Edit ",8,qI),r?.status=="ready"||r?.status=="error"?(l(),d("button",{key:2,type:"button",class:"dropdown-item",onClick:c=>e.refreshItem(r)}," Force update ",8,MI)):p("v-if",!0),r?.status=="removed"?(l(),d("button",{key:3,type:"button",class:"dropdown-item",onClick:c=>e.refreshItem(r)}," Enable ",8,UI)):p("v-if",!0),r?.status=="expired"?(l(),d("button",{key:4,type:"button",class:"dropdown-item",onClick:c=>e.extendItem(r)}," Extend 6 months ",8,$I)):p("v-if",!0),(r?.status=="ready"||r?.status=="expired"||r?.status=="error")&&r?.role!=="coauthor"?(l(),d("div",LI,[t[62]||(t[62]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:c=>e.removeItem(r)}," Remove ",8,FI)])):p("v-if",!0)])]))])],10,YP)),!e.loading&&e.selectedProject===r?(l(),d("div",BI,[n("div",{class:"project-details",role:"cell","aria-colspan":"5",id:e.projectDetailsId(r),tabindex:"-1",onKeydown:An(de(c=>e.closeProjectDetails(r),["stop"]),["esc"])},[n("div",zI,[t[64]||(t[64]=n("h2",null,"Project details",-1)),n("button",{type:"button",class:"project-close",onClick:c=>e.closeProjectDetails(r),"aria-label":"Close project details"},[...t[63]||(t[63]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,jI)]),n("dl",GI,[n("div",null,[t[65]||(t[65]=n("dt",null,"Source",-1)),n("dd",null,u(r._source||"Not available"),1)]),n("div",null,[t[66]||(t[66]=n("dt",null,"Anonymous ID",-1)),n("dd",null,[n("code",null,u(r._id||"Missing identifier"),1)])]),r.source?.commit?(l(),d("div",WI,[t[67]||(t[67]=n("dt",null,"Commit",-1)),n("dd",null,[n("code",null,u(r.source.commit),1)])])):p("v-if",!0),r.conference?(l(),d("div",KI,[t[68]||(t[68]=n("dt",null,"Conference",-1)),n("dd",null,u(r.conference),1)])):p("v-if",!0),n("div",null,[t[69]||(t[69]=n("dt",null,"Status",-1)),n("dd",null,[v(u(e.fmt.statusLabel(r.status)),1),r.statusMessage?(l(),d("span",YI," \xB7 "+u(e.fmt.statusMsg(r.statusMessage)),1)):p("v-if",!0)])]),r.anonymizeDate?(l(),d("div",JI,[t[70]||(t[70]=n("dt",null,"Last anonymized",-1)),n("dd",null,u(e.fmt.humanTime(r.anonymizeDate)),1)])):p("v-if",!0)]),r._stale?(l(),d("p",QI,"This download has not progressed recently. Check the source access and selected branch before retrying.")):p("v-if",!0),r._editUrl?(l(),d("a",{key:1,class:"project-attention-action",href:e.safeUrl(r._editUrl)},u(e.needsAttention(r)?"Check source settings":"Edit anonymization settings"),9,XI)):p("v-if",!0),r._id?(l(),d("form",{key:2,class:"project-name-form",onSubmit:de(c=>e.saveProjectName(r),["prevent"])},[n("label",{for:"project-name-"+r._type+"-"+r._id},"Project name",8,xI),n("p",{id:"project-name-help-"+r._type+"-"+r._id},"Only you see this name. Leave it blank to use the default.",8,e4),n("div",t4,[D(n("input",{class:"form-control",type:"text",id:"project-name-"+r._type+"-"+r._id,"aria-describedby":"project-name-help-"+r._type+"-"+r._id,maxlength:"100","onUpdate:modelValue":t[18]||(t[18]=c=>e.projectName=c),disabled:e.nameSaving},null,8,n4),[[wt,e.projectName]]),n("button",{class:"btn btn-ink",type:"submit",disabled:e.nameSaving},u(e.nameSaving?"Saving\u2026":"Save name"),9,o4)]),e.nameError?(l(),d("p",s4,u(e.nameError),1)):p("v-if",!0),e.nameMessage?(l(),d("p",i4,u(e.nameMessage),1)):p("v-if",!0)],40,ZI)):p("v-if",!0)],40,HI)])):p("v-if",!0)],64))),128)),!e.loading&&e.filteredItems?.length==0?(l(),d("div",r4,[t[72]||(t[72]=n("svg",{class:"project-type-svg project-empty-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.hasProjects()?p("v-if",!0):(l(),d("span",a4,"You have no anonymizations yet.")),e.hasProjects()?(l(),d("span",l4,"Nothing matches the current filters.")):p("v-if",!0),n("div",d4,[e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=r=>e.clearFilters())},"Clear filters")):p("v-if",!0),e.hasProjects()?p("v-if",!0):(l(),d("a",u4,[...t[71]||(t[71]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),v(" New anonymization",-1)])]))])])):p("v-if",!0)],8,BP)]),e.dashboardCursor||e.dashboardError?(l(),d("div",c4,[e.dashboardError?(l(),d("p",p4,u(e.dashboardError),1)):p("v-if",!0),e.dashboardCursor?(l(),d("button",{key:1,type:"button",class:"btn",onClick:t[20]||(t[20]=r=>e.loadMoreProjects()),disabled:e.loadingMore},u(e.loadingMore?"Loading\u2026":"Load more projects"),9,f4)):p("v-if",!0)])):p("v-if",!0)])}var h4={class:"explorer-page"},m4=["aria-label"],v4={class:"ui-icon","aria-hidden":"true"},g4=["href"],y4=["textContent"],b4={class:"leftCol-head"},w4={class:"leftCol-search"},k4={class:"tree-search-box"},E4=["href"],C4={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},S4={class:"leftCol-project-header"},_4=["textContent","title"],N4={key:0,class:"project-file-count"},R4=["title"],D4={class:"leftCol-body"},T4={key:0,class:"paper-inline-warning",role:"alert"},A4={key:1,class:"paper-inline-warning",role:"alert"},O4={class:"leftCol-foot"},P4=["title"],I4=["title"],V4=["title"],q4={key:2,class:"last-update",title:"Older repositories have no recorded publication date. The source commit date does not establish when files became available here."},M4={class:"explorer-main"},U4={class:"status-bar"},$4={class:"breadcrumb paths","aria-label":"Path"},L4=["textContent"],F4={class:"status-bar-actions"},B4=["href"],H4={class:"d-none d-md-inline"},z4={class:"ui-icon","aria-hidden":"true"},j4=["href"],G4={class:"d-none d-md-inline"},W4=["href"],K4=["href"],Y4=["href"],J4=["href"],Q4={class:"explorer-content"};function jl(e,t){let o=Ge("tree"),i=Ge("partial-view"),s=ge("field");return l(),d("div",h4,[D(n("button",{class:"sidebar-toggle",onClick:t[0]||(t[0]=r=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[(l(),d("svg",v4,[n("use",{href:e.sidebarCollapsed?"#ui-icon-folder":"#project-icon-close"},null,8,g4)])),n("span",{textContent:u(e.sidebarCollapsed?"Files":"Close")},null,8,y4)],8,m4),[[W,e.files?.length]]),D(n("div",{class:P(["leftCol",{collapsed:e.sidebarCollapsed}])},[n("div",b4,[t[7]||(t[7]=n("span",{class:"leftCol-eyebrow"},"Files",-1)),n("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[1]||(t[1]=r=>e.sidebarCollapsed=!0)},[...t[6]||(t[6]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),n("div",w4,[n("div",k4,[(l(),d("svg",{class:P(["ui-icon tree-search-icon",{"fa-spin":e.fileSearchLoading}]),"aria-hidden":"true"},[n("use",{href:e.fileSearchLoading?"#ui-icon-spinner":"#ui-icon-search"},null,8,E4)],2)),D(n("input",C4,null,512),[[s,{state:e.viewState,set:r=>{e.fileSearchQuery=r},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),D(n("kbd",{class:"tree-search-kbd"},u(e.isMac?"\u2318":"Ctrl+")+"K",513),[[W,!e.fileSearchQuery]]),D(n("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[2]||(t[2]=r=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[W,e.fileSearchQuery]])])]),n("div",S4,[n("span",{class:"project-name",textContent:u(e.repoId),title:e.repoId},null,8,_4),e.fileCounts?.[""]!=null?(l(),d("span",N4,u(e.fileCounts[""])+" files",1)):p("v-if",!0),e.options?.expirationDate?(l(),d("span",{key:1,class:"project-expiry",title:e.options.expirationDate},[t[8]||(t[8]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v(" Available until "+u(e.fmt?.date(e.options.expirationDate)),1)],8,R4)):p("v-if",!0)]),n("div",D4,[e.options?.truncatedFolders?.length>0?(l(),d("div",T4,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):p("v-if",!0),e.options?.hasSubmodules?(l(),d("div",A4,[t[10]||(t[10]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):p("v-if",!0),Ce(o,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])]),n("div",O4,[n("span",{class:"last-update",title:e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate},u(e.options?.sourceCommitDate?"Source commit":e.options?.anonymizedAt?"Anonymized":"Updated")+" "+u(e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),9,P4),e.options?.settingsSavedAt?(l(),d("span",{key:0,class:"last-update",title:e.options.settingsSavedAt}," Settings saved "+u(e.fmt?.date(e.options.settingsSavedAt)),9,I4)):p("v-if",!0),e.options?.publishedAt?(l(),d("span",{key:1,class:"last-update",title:e.options.publishedAt}," Snapshot ready "+u(e.fmt?.date(e.options.publishedAt)),9,V4)):p("v-if",!0),e.options?.anonymizedAt&&!e.options?.publishedAt?(l(),d("span",q4," Snapshot ready date not recorded ")):p("v-if",!0)])],2),[[W,e.files?.length]]),D(n("div",{class:"leftCol-backdrop",onClick:t[3]||(t[3]=r=>e.sidebarCollapsed=!0)},null,512),[[W,e.files?.length&&!e.sidebarCollapsed]]),n("div",M4,[D(n("div",U4,[n("ol",$4,[(l(!0),d(K,null,ne(e.paths,(r,a)=>(l(),d("li",{class:"breadcrumb-item",textContent:u(r)},null,8,L4))),256))]),n("div",F4,[e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[11]||(t[11]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,B4)):p("v-if",!0),e.type=="html-doc"&&!e.showSource?(l(),d("button",{key:1,class:P(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[4]||(t[4]=r=>e.toggleAllowScripts())},[t[12]||(t[12]=n("i",{class:"fab fa-js"},null,-1)),n("span",H4,u(e.allowScripts?"JS on":"JS off"),1)],2)):p("v-if",!0),e.type=="html-doc"?(l(),d("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[5]||(t[5]=r=>e.toggleSource())},[(l(),d("svg",z4,[n("use",{href:e.showSource?"#project-icon-eye":"#ui-icon-code"},null,8,j4)])),n("span",G4,u(e.showSource?"Rendered":"Source"),1)])):p("v-if",!0),D(n("a",{target:"_self",class:"btn btn-sm btn-icon-only","aria-label":"View raw current file",title:"View raw file",href:e.safeUrl(e.url)},[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1)])],8,W4),[[W,e.content!=null&&e.type!="error"&&e.type!="rate_limited"]]),D(n("a",{target:"_self",class:"btn btn-sm btn-icon-only","aria-label":"Download current file",title:"Download this file",href:e.safeUrl(e.url+"&download=true")},[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,K4),[[W,e.content!=null&&e.type!="error"&&e.type!="rate_limited"]]),e.options?.download?(l(),d("a",{key:3,target:"_self",class:"btn btn-sm btn-ink","aria-label":"Download repository as ZIP",title:"Download the whole repository as a ZIP archive",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),n("span",{class:"d-none d-md-inline"}," Download repository",-1)])],8,Y4)):p("v-if",!0),e.options?.hasWebsite?(l(),d("a",{key:4,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),n("span",{class:"d-none d-md-inline"}," Website",-1)])],8,J4)):p("v-if",!0)])],512),[[W,e.type!="error"||e.files?.length]]),n("div",Q4,[Ce(i,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])])}var X4={class:"paper-faq"};function Gl(e,t){return l(),d("div",X4,[...t[0]||(t[0]=[fe('
Help

Answers to the questions that come up most.

If something's missing, write to us \u2014 report a bug on GitHub.

',1),n("div",{class:"paper-faq-body"},[n("aside",{class:"paper-faq-toc"},[n("div",{class:"paper-faq-toc-head"},"Contents"),n("nav",null,[n("a",{href:"#faq-general"},"General"),n("a",{href:"#faq-plans"},"Plans and billing"),n("a",{href:"#faq-features"},"Features"),n("a",{href:"#faq-limitations"},"Limitations"),n("a",{href:"#faq-privacy"},"Privacy & Security"),n("a",{href:"#faq-hosting"},"Self-Hosting")])]),n("section",{class:"faq-section","aria-label":"FAQs"},[n("div",null,[p(" General "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),v("General ")]),n("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"false","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),n("div",{id:"whatIs",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingWhatIs"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub is an open-source tool with free hosting and optional paid plans that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information \u2014 such as the repository owner, organization name, and custom terms \u2014 so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),n("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),n("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[n("div",{class:"panel-body p-3"},[n("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix \u2014 not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),n("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[n("div",{class:"panel-body p-3"},[n("p",null," A free account includes 5 owned repositories and 2 GiB of source files. Optional paid plans offer more capacity, automatic refresh, and, with an author subscription, never-expiring repositories. Reviewers can read shared repositories without an account or payment. "),n("p",null,[v(" See "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(" for available plans and current prices. Offers depend on whether payments are enabled on this instance; the checkout shows the amount before you pay. Subscriptions help fund hosting, storage, backups, and continued maintenance. ")]),n("p",null,[v(" You can also support development through "),n("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank",rel:"noopener"},"GitHub Sponsors"),v(" or "),n("a",{href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},"Ko-fi"),v(". Donations are separate from subscriptions and do not automatically unlock paid features. ")])])])])]),p(" Plans and billing "),n("h4",{class:"faq-cat",id:"faq-plans-title"},"Plans and billing"),n("div",{class:"panel-group",id:"faq-plans",role:"tablist","aria-label":"Plans and billing","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFreePlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#freePlan","aria-expanded":"false","aria-controls":"freePlan"},"What is included in a free account?")])]),n("div",{id:"freePlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFreePlan"},[n("div",{class:"panel-body p-3"},[n("p",null,"The default free allowance is 5 repositories you own and 2 GiB of source files in total. Core anonymization and reviewer access remain free. You can manually refresh a repository within your allowance and choose a dated expiration up to one year ahead."),n("p",null,"Repositories shared with you as a coauthor do not use your own slots. Gists and pull requests are not included in these repository quotas. The usage shown in your account is the allowance available on this instance.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingAuthorPlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#authorPlans","aria-expanded":"false","aria-controls":"authorPlans"},"What do monthly and annual author subscriptions include?")])]),n("div",{id:"authorPlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingAuthorPlans"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("Both include 20 owned repositories and 10 GiB of source files in total. They also allow automatic refresh when enabled in repository settings and let the owner choose "),n("strong",null,"Never expire"),v(".")]),n("p",null,[v("Monthly and annual plans offer the same features with different billing periods. They renew automatically until you cancel renewal. Current prices are shown in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(".")]),n("p",null,"Paid plans do not change how anonymization works. File-size limits and other service safeguards still apply. Review your anonymized content before sharing it.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingReviewPass"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#reviewPass","aria-expanded":"false","aria-controls":"reviewPass"},"Can I pay for one repository without subscribing?")])]),n("div",{id:"reviewPass",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingReviewPass"},[n("div",{class:"panel-body p-3"},[n("p",null,"The author review pass covers one selected repository for 180 days, with a separate 2 GiB allowance and automatic refresh when enabled. It is a one-time purchase and does not renew automatically."),n("p",null,[v("Enter the anonymized ID of an existing repository you own in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(". A pass does not unlock Never expire and does not override the repository's chosen expiration date.")])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConferencePlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#conferencePlans","aria-expanded":"false","aria-controls":"conferencePlans"},"Can a conference or lab pay for a group?")])]),n("div",{id:"conferencePlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConferencePlans"},[n("div",{class:"panel-body p-3"},[n("p",null,"A conference review package provides a shared allowance of 100 repositories and 50 GiB for a review window of up to 180 days. The organizer pays once; the package does not renew automatically. A lab organizing a review can use this shared package too."),n("p",null,"The paid conference must be activated by payment before authors can submit under its Conference ID. Eligible repositories use the conference allowance before an author's personal allowance, so authors do not each need a subscription for that capacity."),n("p",null,"The package has a fixed review window. Never expire still requires the repository owner's monthly or annual author subscription. See the available offer when creating a conference.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaidCoauthors"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paidCoauthors","aria-expanded":"false","aria-controls":"paidCoauthors"},"Does every coauthor need to pay?")])]),n("div",{id:"paidCoauthors",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaidCoauthors"},[n("div",{class:"panel-body p-3"},[n("p",null,"No. Coauthors can collaborate without buying a subscription. A shared repository uses its owner's allowance, unless a repository pass or paid conference covers it. It does not consume each coauthor's personal allowance."),n("p",null,"A coauthor's subscription does not increase the owner's allowance. If the owner's available capacity is exhausted, a coauthor's refresh or edit may also be blocked. Reviewers never need a paid account.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCapacity"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#capacity","aria-expanded":"false","aria-controls":"capacity"},"What counts toward my allowance, and what happens at the limit?")])]),n("div",{id:"capacity",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCapacity"},[n("div",{class:"panel-body p-3"},[n("p",null,"The repository limit counts work you own. Storage counts the source-file sizes reserved for those repositories, not just files a reviewer opens. Archived or failed repositories can still reserve capacity, and a refresh does not automatically reduce a previous storage reservation."),n("p",null,"At the repository limit you cannot add another repository to that allowance. An edit or refresh must also fit the available storage. Remove work you no longer need, choose a paid plan, or use an eligible conference allowance."),n("p",null,"Removing a repository releases its reservation when capacity is next checked. Expired repositories may continue to reserve capacity until cleanup. Reaching a limit does not itself delete existing review links.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingNeverExpire"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#neverExpire","aria-expanded":"false","aria-controls":"neverExpire"},"What happens to Never expire repositories if I stop subscribing?")])]),n("div",{id:"neverExpire",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingNeverExpire"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("Never expire is available to monthly and annual author subscribers. If paid access ends, these repositories remain available for a "),n("strong",null,"90-day grace period"),v(", then expire and their hosted content is removed.")]),n("p",null,"Renewing during the grace period keeps them active. After expiration, you must renew and explicitly reactivate the repository; restoring content also requires access to its GitHub source. A repository does not become public on GitHub when it expires."),n("p",null,"Existing never-expiring repositories created before this billing policy retain their settings. Never expire is not a guarantee of perpetual service availability.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCancelPlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#cancelPlan","aria-expanded":"false","aria-controls":"cancelPlan"},"How do I cancel, and what happens after paid access ends?")])]),n("div",{id:"cancelPlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCancelPlan"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("Open "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(" and choose "),n("strong",null,"Manage billing and invoices"),v(" to manage renewal. Cancelling renewal keeps subscription benefits until the end of the paid period.")]),n("p",null,"After paid access ends, repositories fall back to another eligible allowance or the free allowance. Automatic refresh pauses on the free allowance; manual refresh remains available within its limits. Existing review links keep their configured expiration dates, except paid Never expire repositories, which follow the 90-day grace period described above."),n("p",null,"A repository pass or conference package ends after its paid window without automatic renewal.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaymentHandling"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paymentHandling","aria-expanded":"false","aria-controls":"paymentHandling"},"How are payments handled?")])]),n("div",{id:"paymentHandling",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaymentHandling"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("Stripe processes checkout and billing management. Anonymous GitHub does not store your card details. You can access billing management and invoices from "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(".")]),n("p",null,[v("Paid access is activated after payment is confirmed. If checkout succeeds but your account has not updated, choose "),n("strong",null,"Refresh payment status"),v(" before trying another purchase. If paid plans are unavailable on this instance, no checkout is offered.")])])])])]),p(" Features "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})]),v("Features ")]),n("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),n("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub can display and render a wide variety of file types: "),n("ul",null,[n("li",null,[n("strong",null,"Text and source code"),v(" \u2014 displayed with syntax highlighting")]),n("li",null,[n("strong",null,"Markdown"),v(" \u2014 rendered as formatted HTML")]),n("li",null,[n("strong",null,"Images"),v(" (PNG, JPG, SVG, etc.) \u2014 displayed inline")]),n("li",null,[n("strong",null,"PDFs"),v(" \u2014 rendered directly in the browser")]),n("li",null,[n("strong",null,"Jupyter Notebooks"),v(" \u2014 rendered with code cells and outputs")])]),n("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),n("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),n("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[n("div",{class:"panel-body p-3"},[n("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),n("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[n("div",{class:"panel-body p-3"},[n("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),n("ul",null,[n("li",null,[n("strong",null,"Never expire"),v(": with a monthly or annual author subscription, no scheduled expiration while subscribed. A 90-day grace period applies after paid access ends. See "),n("a",{href:"#neverExpire"},"the subscription expiration policy"),v(".")]),n("li",null,[n("strong",null,"Redirect to GitHub"),v(" \u2014 after expiration, visitors are redirected to the original GitHub repository.")]),n("li",null,[n("strong",null,"Remove content"),v(" \u2014 after expiration, the anonymized content is deleted from the server.")])])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),n("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),n("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[n("div",{class:"panel-body p-3"},[n("p",null," You can refresh the anonymized repository from GitHub without creating a new share link. Free accounts can request a manual refresh within their allowance. Automatic refresh requires an eligible paid allowance and must be enabled in repository settings. It pauses when the repository falls back to the free allowance. "),n("p",null," After changing files or contributor names, review your anonymization terms before sharing the updated content. If GitHub access is revoked or the source is deleted, the service cannot fetch updates. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),n("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),n("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[n("code",null,`npm install -g @tdurieux/anonymous_github +`)}function g(N){let A=[],M="",U=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,q=0,B;for(;B=U.exec(N);)M+=N.slice(q,B.index),q=U.lastIndex,A.push({key:B[1],op:B[2]||"=",val:B[3]});return M+=N.slice(q),{filters:A,free:M.trim().toLowerCase()}}function y(N,A){for(let M of A.filters){let U=(B,oe,ee)=>{let R=parseFloat(B),j=parseFloat(oe);return ee==="="?String(B)===String(oe):ee==="!="?String(B)!==String(oe):ee===">="?R>=j:ee==="<="?R<=j:ee===">"?R>j:ee==="<"?RA&&q._bucket!==A?!1:y(q,N)),U=e.query.group;if(U){let q=ee=>U==="module"?ee.module:ee.displayMessage||ee.message||"_",B=new Map;for(let ee of M){let R=q(ee);if(B.has(R)){let j=B.get(R);j.count++,j._related.push(ee),new Date(ee.ts)>new Date(j.ts)&&(j.ts=ee.ts,j._url=ee._url,j._status=ee._status),new Date(ee.ts)new Date(R.ts).getTime()>=oe).length;M=Array.from(B.values())}else M=M.map((q,B)=>(q._key="row:"+B+":"+q.ts,q._related=[q],q._firstSeen=q.ts,q._lastHourCount=0,q.count=1,q));e.query.sort==="count"?M.sort((q,B)=>B.count-q.count||new Date(B.ts)-new Date(q.ts)):M.sort((q,B)=>new Date(B.ts)-new Date(q.ts)),e.visible=M}function h(N){let A=N?e.entries.length:0,M=N?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:A,limit:M}}).then(U=>{let q=(U.data.entries||[]).map(c);e.entries=N?e.entries.concat(q):q,e.available=!!U.data.available,e.cap=U.data.max||e.cap,e.total=U.data.total||e.entries.length,b()},U=>console.error(U))}e.loadMore=()=>h(!0),e.canLoadMore=()=>e.entries.length{let A=N.data||{},M=A.prev24h?Math.round((A.last24h-A.prev24h)/A.prev24h*100):0;e.stats={last24h:A.last24h||0,prev24h:A.prev24h||0,delta:M,severity:A.severity||{error:0,warn:0,info:0},unique:A.unique||{error:0,warn:0,info:0},buckets:A.buckets||[],dropped:A.dropped||0}},N=>console.error(N))}function S(){h(),E()}e.barPx=(N,A)=>{let M=e.stats.buckets||[],U=0;for(let ee of M)U=Math.max(U,(ee.error||0)+(ee.warn||0)+(ee.info||0));if(!U)return 0;let q=(N.error||0)+(N.warn||0)+(N.info||0);if(!q)return 0;let B=Math.round(q/U*60),oe=N[A]||0;return Math.round(oe/q*B)},e.bucketTitle=N=>`${new Date(N.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${N.error||0} err \xB7 ${N.warn||0} warn \xB7 ${N.info||0} info`,e.toggle=N=>{e.expanded[N._key]=!e.expanded[N._key]},e.setBucket=N=>{e.query.bucket=N},e.refreshNow=S,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(S,N=>console.error(N))},e.exportCsv=()=>{let N=["ts","level","module","displayMessage","_status","_url","_repoId"],A=[N.join(",")];for(let B of e.visible)A.push(N.map(oe=>{let ee=B[oe]==null?"":String(B[oe]);return/[",\n]/.test(ee)?`"${ee.replace(/"/g,'""')}"`:ee}).join(","));let M=new Blob([A.join(` +`)],{type:"text/csv;charset=utf-8"}),U=URL.createObjectURL(M),q=document.createElement("a");q.href=U,q.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(q),q.click(),document.body.removeChild(q),URL.revokeObjectURL(U)};function m(N){e.copyHint=`${N} copied`,s.timeout(()=>{e.copyHint=""},1500)}e.copyJson=N=>{navigator.clipboard.writeText(N._detailJson).then(()=>m("JSON"))},e.copyCurl=N=>{if(!N._url)return;let M=`curl -X ${N._method||"GET"} '${window.location.origin}${N._url}'`;navigator.clipboard.writeText(M).then(()=>m("curl"))},S();let C=i(()=>{e.query.autoRefresh&&S()},15e3);e.on("dispose",()=>i.cancel(C)),e.watch("query.search",b),e.watch("query.bucket",b),e.watch("query.sort",b),e.watch("query.group",b)},_l=function(e,t,o,i){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null){o.url("/");return}e.data=null,e.loading=!0,e.error=null,e.performance=null,e.performanceMinutes=15,e.performanceTab="routes",e.cacheReport=null,e.cacheError=null,e.cacheMinutes=60,e.cacheTraffic="all";var s=!1;e.loadCache=function(){if(!s){s=!0;var m=e.cacheMinutes;t.get("/api/admin/cache",{params:{minutes:m}}).then(function(C){m===e.cacheMinutes&&(e.cacheReport=C.data,e.cacheError=C.data.available?null:C.data.reason||"Cache monitoring is unavailable.")},function(){e.cacheError="Could not refresh cache monitoring. Displayed values may be stale."}).finally(function(){s=!1,m!==e.cacheMinutes&&e.loadCache()})}},e.cacheRows=function(){return(e.cacheReport?.rows||[]).filter(function(m){return e.cacheTraffic==="all"||m.traffic===e.cacheTraffic})},e.cacheRate=function(m,C){var N=e.cacheRows(),A=function(q){return N.filter(function(B){return B.name===q}).reduce(function(B,oe){return B+oe[C]},0)},M=A(m+"_hit"),U=A(m+"_miss");return M+U?(100*M/(M+U)).toFixed(1)+"%":"No samples"},e.cacheEventName=function(m){return m.replaceAll("_"," ")},e.cacheP95=function(m){var C=0,N=e.cacheReport?.latencyBucketsMs||[];if(!m.count)return"No samples";if(!m.ms)return"Not timed";for(var A=0;A<=N.length;A++)if(C+=m["b"+A]||0,C>=Math.ceil(m.count*.95))return A 10 s";return"No samples"},e.performanceError=null,e.formatMs=function(m){return m==null?"":m<1e3?m+" ms":+(m/1e3).toFixed(1)+" s"},e.latencyBound=function(m,C){return m.count?m[C]==null?"> 60 s":"\u2264 "+e.formatMs(m[C]):"No samples"},e.firstByteBound=function(m){return e.latencyBound({count:m.firstByteCount,p95UpperMs:m.firstByteP95UpperMs},"p95UpperMs")},e.sampleAge=function(m){return Math.max(0,Math.round((Date.now()-m.sampledAt)/1e3))},e.peakRss=function(m){return(e.performance.runtimeSeries||[]).filter(function(C){return C.instance===m.instance}).reduce(function(C,N){return Math.max(C,N.rss)},m.memory.rss)},e.performanceWarning=function(m){return e.sampleAge(m)>45||m.droppedBatches||m.droppedMetrics||m.sockets?.closeWait>0||m.eventLoop.p95Ms>100||m.memoryLimitBytes&&m.memory.rss>m.memoryLimitBytes*.8};var r=!1;e.loadPerformance=function(){var m=e.performanceMinutes;e.performance?.windowMinutes&&e.performance.windowMinutes!==m&&(e.performance=null),!r&&(r=!0,t.get("/api/admin/performance",{params:{minutes:m}}).then(function(C){m===e.performanceMinutes&&(e.performance=C.data,e.performanceError=C.data.available?null:"Performance monitoring is unavailable. Request history may be incomplete.")},function(){m===e.performanceMinutes&&(e.performanceError="Could not refresh performance monitoring. Displayed samples may be stale.")}).finally(function(){r=!1,m!==e.performanceMinutes&&e.loadPerformance()}))};function a(m){if(m==null)return"\u2014";for(var C=["B","KB","MB","GB","TB"],N=0,A=m;A>=1024&&N0?1:0)+" "+C[N]}e.humanBytes=a;function c(m){if(!m)return"\u2014";var C=Math.floor(m/86400),N=Math.floor(m%86400/3600),A=Math.floor(m%3600/60);return C>0?C+"d "+(N<10?"0":"")+N+"h":N>0?N+"h "+(A<10?"0":"")+A+"m":A+"m"}e.humanDuration=c;function f(m){return m==null?"\u2014":m>=1e6?(m/1e6).toFixed(1)+"M":m>=1e3?(m/1e3).toFixed(1)+"K":String(m)}e.humanNum=f,e.queueTotal=function(m){return m?(m.waiting||0)+(m.active||0)+(m.delayed||0)+(m.failed||0):0},e.statusCount=function(m){if(!e.data||!e.data.repos)return 0;for(var C=e.data.repos.statusBreakdown||[],N=0;Nb[N])&&(b[N]=C[N]),(h[N]==null||C[N]Ci(e,t)},{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>gl(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>yl(e,t.http)},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>ul(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>cl(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ds(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ds(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ds(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>pl(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ml(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vi(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vi(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vl(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>al(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ll(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dl(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>fl(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>hl(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>mi(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>mi(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>_l(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>bl(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>wl(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>kl(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>El(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Cl(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Sl(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var Pp={class:"container py-4",style:{"max-width":"48rem","overflow-wrap":"anywhere"}},Ip={key:0},Vp={key:1,role:"alert"},qp={key:2,role:"status"},Mp={key:0},Up={key:1},$p=["disabled"],Lp=["disabled"],Fp=["disabled"],Bp={key:5,class:"mt-4","aria-labelledby":"review-policy-title"},Hp={id:"review-policy-title"},zp={key:0,role:"alert"},jp=["disabled"],Gp=["disabled"],Wp=["disabled"],Kp={key:6,role:"status"};function Rl(e,t){return l(),d("section",Pp,[t[12]||(t[12]=n("a",{href:"/"},"Anonymous GitHub",-1)),t[13]||(t[13]=n("h1",{class:"mt-3"},"Approve artifact access",-1)),t[14]||(t[14]=n("p",null,"This records your approval as the repository owner or an authorized coauthor.",-1)),e.user?.username?p("v-if",!0):(l(),d("p",Ip,[...t[6]||(t[6]=[v("Sign in first, then reopen the artifact link from your submission. ",-1),n("a",{href:"/signin"},"Sign in",-1)])])),e.error?(l(),d("p",Vp,u(e.error),1)):p("v-if",!0),e.saved?(l(),d("p",qp,[t[7]||(t[7]=v("Consent recorded. ",-1)),e.handoffEnabled?(l(),d("span",Mp,"Continue to review to finish linking.")):(l(),d("span",Up,"Artifact linking is not complete. Return to your submission to check its status."))])):p("v-if",!0),e.saved&&e.handoffEnabled?(l(),d("button",{key:3,class:"btn btn-primary",type:"button",onClick:t[0]||(t[0]=(...o)=>e.continueReview&&e.continueReview(...o)),disabled:e.busy},"Continue to review",8,$p)):p("v-if",!0),e.user?.username&&!e.saved?(l(),d("form",{key:4,onSubmit:t[2]||(t[2]=de((...o)=>e.loadPreview&&e.loadPreview(...o),["prevent"]))},[t[8]||(t[8]=n("label",{for:"review-repository"},"Anonymous repository ID",-1)),D(n("input",{id:"review-repository",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=o=>e.repositoryId=o),maxlength:"128",autocomplete:"off",disabled:e.busy||e.uncertain,"aria-describedby":"review-repository-help"},null,8,Lp),[[wt,e.repositoryId]]),t[9]||(t[9]=n("p",{id:"review-repository-help"},"Use the ID after /r/ in the anonymous repository URL.",-1)),n("button",{type:"submit",class:"btn btn-primary",disabled:e.busy||e.uncertain},"Preview access and retention",8,Fp)],32)):p("v-if",!0),e.preview&&!e.saved?(l(),d("section",Bp,[n("h2",Hp,u(e.preview.repositoryName),1),n("p",null,"Access: "+u(e.preview.policy.access==="anonymous-link"?"Anyone with the anonymous link":"Restricted review access")+".",1),n("p",null,"Retain until "+u(e.preview.policy.retainUntil)+". Policy version "+u(e.preview.policy.version)+".",1),e.expired?(l(),d("p",zp,"This preview expired. Open a new artifact link from your submission.")):p("v-if",!0),n("div",null,[n("label",null,[D(n("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=o=>e.acceptAccess=o),disabled:e.busy||e.uncertain||e.expired},null,8,jp),[[xs,e.acceptAccess]]),t[10]||(t[10]=v(" I approve the access policy above.",-1))])]),n("div",null,[n("label",null,[D(n("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=o=>e.acceptRetention=o),disabled:e.busy||e.uncertain||e.expired},null,8,Gp),[[xs,e.acceptRetention]]),t[11]||(t[11]=v(" I approve retention until the date above.",-1))])]),n("button",{class:"btn btn-primary",type:"button",onClick:t[5]||(t[5]=(...o)=>e.confirmConsent&&e.confirmConsent(...o)),disabled:e.busy||e.expired||!e.acceptAccess||!e.acceptRetention},u(e.uncertain?"Retry confirmation":"Confirm consent"),9,Wp)])):p("v-if",!0),e.busy?(l(),d("p",Kp,"Waiting for the server\u2026")):p("v-if",!0)])}var Yp={class:"container paper-page connections-page"},Jp={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Qp={key:1,role:"status"},Xp=["disabled"],Zp={key:3},xp={key:0,class:"connection-resources"},ef=["disabled"],tf=["disabled"],nf={key:0,role:"status"},of={class:"connections-grid"},sf={key:0},rf={class:"connection-title"},af={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},lf={class:"connection-actions"},df={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},uf={key:1,class:"connection-installations"},cf={key:0},pf=["href"],ff={class:"sr-only"},hf=["disabled"],mf={class:"connection-title"},vf={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},gf={key:1,class:"connection-revoke"},yf={key:0},bf=["disabled"],wf={class:"connection-resources"},kf={class:"connection-title"},Ef={class:"connection-count"},Cf={key:0,class:"connection-empty"},Sf={class:"connection-resource-name"},_f={key:0,class:"connection-resource-actions"},Nf=["disabled","onClick"],Rf=["disabled","onClick"],Df={key:1,class:"connection-help",role:"status"},Tf=["disabled","onClick"];function Dl(e,t){return l(),d("div",Yp,[t[25]||(t[25]=fe('
My work / GitHub connections

GitHub connections

Manage how GitHub shares your code. Your anonymizations and URLs stay the same.

',2)),e.connectionError?(l(),d("p",Jp,u(e.connectionError),1)):p("v-if",!0),!e.connections&&!e.connectionError?(l(),d("p",Qp,"Loading your connections\u2026")):p("v-if",!0),!e.connections&&e.connectionError?(l(),d("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=o=>e.loadConnections())},"Try again",8,Xp)):p("v-if",!0),e.connections?(l(),d("div",Zp,[e.connections.emailNotificationsEnabled?(l(),d("section",xp,[t[6]||(t[6]=n("h2",null,"Email alerts",-1)),t[7]||(t[7]=n("p",null,"We will email you if your GitHub connection stops working or a repository becomes inaccessible. Your address is never shown on anonymous pages.",-1)),n("form",{onSubmit:t[2]||(t[2]=de(o=>e.saveNotificationEmail(),["prevent"]))},[t[5]||(t[5]=n("label",{for:"notification-email"},"Email address",-1)),D(n("input",{id:"notification-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[1]||(t[1]=o=>e.notificationEmail=o),disabled:e.busy},null,8,ef),[[wt,e.notificationEmail]]),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.busy},"Save email address",8,tf),e.emailSaved?(l(),d("p",nf,"Email address saved.")):p("v-if",!0)],32)])):p("v-if",!0),n("div",of,[e.connections.appEnabled?(l(),d("section",sf,[t[13]||(t[13]=n("div",{class:"connection-top"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",{class:"connection-badge"},"Recommended")],-1)),n("div",rf,[t[8]||(t[8]=n("h2",null,"GitHub App",-1)),n("span",{class:P(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},u(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[14]||(t[14]=n("p",null,"Read-only access to gists and the repositories you choose.",-1)),e.connections.appError?(l(),d("p",af,u(e.connections.appError)+". Reconnect to restore access.",1)):p("v-if",!0),n("div",lf,[e.connections.appConnected&&!e.connections.appError?(l(),d("a",df,[...t[9]||(t[9]=[v("Manage repository access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),n("a",{class:P(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},u(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3)]),t[15]||(t[15]=n("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(l(),d("ul",uf,[(l(!0),d(K,null,ne(e.connections.installations,o=>(l(),d("li",{key:o.id},[n("div",null,[n("strong",null,u(o.account),1),o.suspended?(l(),d("span",cf," \xB7 Suspended")):p("v-if",!0)]),n("a",{target:"_self",href:"/github/app/install?installationId="+o.id},[t[10]||(t[10]=v("Manage access ",-1)),n("span",ff,"for "+u(o.account),1),t[11]||(t[11]=v(" \u2192",-1))],8,pf)]))),128))])):p("v-if",!0),n("button",{class:"connection-link",disabled:e.busy,onClick:t[3]||(t[3]=o=>e.loadConnections())},[...t[12]||(t[12]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Refresh access",-1)])],8,hf)])):p("v-if",!0),n("section",null,[t[18]||(t[18]=n("div",{class:"connection-top"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),n("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),n("div",mf,[t[16]||(t[16]=n("h2",null,"GitHub OAuth",-1)),n("span",{class:P(["connection-status",{"is-connected":e.connections.oauthConnected}])},u(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[19]||(t[19]=n("p",null,"For existing OAuth anonymizations.",-1)),t[20]||(t[20]=n("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(l(),d("a",vf,u(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):p("v-if",!0),e.connections.oauthConnected?(l(),d("div",gf,[e.connections.gistCount?(l(),d("p",yf,u(e.connections.gistCount)+" gist(s) use your GitHub App connection when available.",1)):p("v-if",!0),t[17]||(t[17]=n("p",null,"Switch all dependent repositories before revoking access. Gists can use your GitHub App connection.",-1)),e.connections.appConnected?(l(),d("button",{key:1,class:"connection-link connection-danger",disabled:e.busy||e.connections.resources.some(o=>o.connection==="oauth"),onClick:t[4]||(t[4]=o=>e.disconnectOAuth())},"Revoke OAuth access",8,bf)):p("v-if",!0)])):p("v-if",!0)])]),n("section",wf,[n("div",kf,[t[21]||(t[21]=n("h2",null,"Repository connections",-1)),n("span",Ef,u(e.connections.resources?.length||0)+" resources",1)]),t[23]||(t[23]=n("p",null,"Check access, then switch each resource to the GitHub App. After reinstalling the App, reconnect existing resources here to keep their anonymous URLs and published snapshots.",-1)),e.connections.resources?.length?p("v-if",!0):(l(),d("div",Cf,[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("div",null,[n("h3",null,"No repository connections yet"),n("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),n("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(l(!0),d(K,null,ne(e.connections.resources,o=>(l(),d("div",{class:"connection-resource",key:o.type+o.id},[n("div",Sf,[n("strong",null,u(o.name||o.id),1),n("small",null,u(o.type)+" \xB7 "+u(o.id),1)]),n("span",{class:P(["connection-badge",{"connection-badge-muted":o.connection==="oauth"}])},u(o.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),!["archived","removed","preparing","queue","removing","expiring"].includes(o.status)&&(o.status!=="download"||o.type==="pull-request"&&(!o.statusDate||new Date(o.statusDate).getTime()<=Date.now()-3e5))&&e.connections.appEnabled&&e.connections.appConnected?(l(),d("div",_f,[n("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:i=>e.changeConnection(o,"github-app",!0)},"Check read-only access",8,Nf),o.eligible?(l(),d("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:i=>e.changeConnection(o,"github-app",!1)},u(o.connection==="github-app"?"Reconnect read-only access":"Switch to read-only access"),9,Rf)):p("v-if",!0),o.eligible===!1?(l(),d("span",Df,"Access unavailable. Allow this repository on GitHub, then check again.")):p("v-if",!0)])):p("v-if",!0),!["archived","removed","preparing","queue","removing","expiring"].includes(o.status)&&(o.status!=="download"||o.type==="pull-request"&&(!o.statusDate||new Date(o.statusDate).getTime()<=Date.now()-3e5))&&o.connection==="github-app"&&e.connections.oauthConnected?(l(),d("button",{key:1,class:"connection-link",disabled:e.busy,onClick:i=>e.changeConnection(o,"oauth",!1)},"Use OAuth",8,Tf)):p("v-if",!0)]))),128)),t[24]||(t[24]=n("p",{class:"connection-footnote"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),v(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):p("v-if",!0)])}var Af={class:"container paper-page auth-page"},Of={class:"auth-layout"},Pf={class:"auth-options"},If={key:0},Vf={key:0,class:"btn btn-ink auth-continue",target:"_self",href:"/github/login?recover=1"},qf={key:1},Mf={key:1},Uf={key:2,class:"auth-legacy"},$f={key:3,role:"status"};function Tl(e,t){return l(),d("div",Af,[t[5]||(t[5]=n("a",{class:"auth-back",href:"/"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-left"})]),v(" Anonymous GitHub")],-1)),n("div",Of,[t[4]||(t[4]=fe('
Your research, ready for review

Your code.
Your identity,
protected.
Sign in to GitHub

Sign in to create and manage your anonymizations.

',1)),n("div",Pf,[e.accountRecovery?(l(),d("section",If,[t[0]||(t[0]=n("h2",null,"Verify your existing account",-1)),t[1]||(t[1]=n("p",null,"We found an existing account. Verify it with your previous GitHub connection to keep your anonymizations. Future sign-ins will use the GitHub App.",-1)),e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("a",Vf,"Verify with previous GitHub connection")):(l(),d("p",qf,"Account verification is currently unavailable. Please try again later."))])):p("v-if",!0),e.site_options?.GITHUB_APP_ENABLED&&!e.accountRecovery?(l(),d("section",Mf,[...t[2]||(t[2]=[fe('
Read-only access

Continue with GitHub

Connect through the GitHub App with read-only repository access.

  • You choose which repositories to share
  • No permission to write to your code
Sign in with GitHub Your existing anonymizations and connections stay with your account.',6)])])):p("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(l(),d("section",Uf,[...t[3]||(t[3]=[n("div",{class:"connection-title"},[n("h2",null,"Continue with GitHub")],-1),n("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),n("a",{class:"connection-link",target:"_self",href:"/github/login"},[v("Sign in with GitHub "),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-right"})])],-1)])])):p("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(l(),d("p",$f,"GitHub sign-in is currently unavailable. Please try again later.")):p("v-if",!0)])])])}var Lf={class:"paper-empty"};function Al(e,t){return l(),d("div",Lf,[...t[0]||(t[0]=[fe('
Error \xB7 404

This link
isn\u2019t here.

The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.

',1)])])}var Ff={class:"container paper-page admin-page"},Bf={class:"admin-summary"},Hf={class:"summary-total"},zf=["aria-pressed"],jf={class:"count"},Gf=["aria-pressed"],Wf={class:"count"},Kf=["aria-pressed"],Yf={class:"count"},Jf=["aria-pressed"],Qf={class:"count"},Xf=["aria-pressed"],Zf={class:"count"},xf={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},eh={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},th={class:"admin-filter-row"},nh={class:"search-wrap"},oh={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},sh={key:0,class:"admin-search-hint"},ih={class:"admin-filter-inline","aria-label":"Pagination"},rh=["disabled"],ah={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},lh=["disabled"],dh={key:0,class:"admin-filter-row"},uh={class:"admin-active-chips"},ch={class:"key"},ph=["onClick"],fh={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},hh={class:"paper-table-head",role:"row"},mh={role:"columnheader"},vh={role:"columnheader"},gh={role:"columnheader"},yh={class:"paper-table-row",role:"row"},bh={class:"cell-anon",role:"cell"},wh={class:"anon-text"},kh=["textContent","href"],Eh={class:"anon-sub"},Ch={class:"cell-status",role:"cell"},Sh=["textContent"],_h={class:"cell-views num",role:"cell"},Nh=["textContent","href"],Rh={class:"cell-expires",role:"cell"},Dh={class:"cell-actions",role:"cell"},Th={class:"dropdown"},Ah={class:"dropdown-menu dropdown-menu-right"},Oh=["href"],Ph=["href"],Ih=["href"],Vh=["onClick"],qh={key:0,class:"paper-table-empty"},Mh={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},Uh={style:{"font-size":"12px",color:"var(--ink-muted)"}},$h={key:0,class:"pagination-compact"},Lh=["disabled"],Fh=["max"],Bh=["disabled"],Hh={class:"admin-filter-inline"},zh={class:"form-control form-control-sm"};function Ol(e,t){let o=ge("field"),i=ge("form");return l(),d("div",Ff,[t[47]||(t[47]=fe('
Admin \xA0/\xA0 Conferences

Conferences

',3)),n("div",Bf,[n("span",Hf,u(e.total>=0?e.fmt.number(e.total):"\u2026"),1),n("button",{type:"button",class:P(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[13]||(t[13]=v("Ready ",-1)),n("span",jf,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,zf),n("button",{type:"button",class:P(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[14]||(t[14]=v("Preparing ",-1)),n("span",Wf,u(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,Gf),n("button",{type:"button",class:P(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[15]||(t[15]=v("Errored ",-1)),n("span",Yf,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,Kf),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[16]||(t[16]=v("Expired ",-1)),n("span",Qf,u(e.fmt?.number(e.statusCountFor("expired"))),1)],10,Jf),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[17]||(t[17]=v("Removed ",-1)),n("span",Zf,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,Xf)]),e.fetchError?(l(),d("div",xf,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",eh,[n("div",th,[n("div",nh,[D(n("input",oh,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",sh,"/"))]),t[22]||(t[22]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export",-1)])]),n("span",ih,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,rh),n("span",ah,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,lh)])]),e.chips?.length?(l(),d("div",dh,[n("div",uh,[(l(!0),d(K,null,ne(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",ch,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,ph)]))),128))])])):p("v-if",!0)])),[[i,e.viewState]]),n("div",fh,[n("div",hh,[n("div",mh,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="name"}]),onClick:t[8]||(t[8]=s=>e.sortBy("name"))},[t[25]||(t[25]=v("Conference ",-1)),e.sortIcon("name")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("name")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[24]||(t[24]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",vh,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[9]||(t[9]=s=>e.sortBy("status"))},[t[27]||(t[27]=v("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[26]||(t[26]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[30]||(t[30]=n("div",{role:"columnheader",class:"num"},"Repos",-1)),n("div",gh,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[10]||(t[10]=s=>e.sortBy("startDate"))},[t[29]||(t[29]=v("Window ",-1)),e.sortIcon("startDate")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("startDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[31]||(t[31]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(K,null,ne(e.filteredConferences,(s,r)=>(l(),d("div",yh,[n("div",bh,[t[33]||(t[33]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",wh,[n("a",{class:"repo-name",textContent:u(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,kh),n("div",Eh,[n("span",null,u(s?.conferenceID),1),t[32]||(t[32]=v("\xA0\xB7\xA0",-1)),n("span",null,u(e.fmt?.number(s?.price||0))+" \u20AC",1)])])]),n("div",Ch,[n("span",{class:P(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,Sh)]),n("div",_h,[t[34]||(t[34]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:"Show repositories in this conference",textContent:u(e.fmt?.number(s?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+s?.conferenceID)},null,8,Nh)]),n("div",Rh,[t[35]||(t[35]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v(" "+u(e.fmt?.date(s?.startDate))+" \u2013 "+u(e.fmt?.date(s?.endDate)),1)]),n("div",Dh,[n("div",Th,[t[41]||(t[41]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",Ah,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[36]||(t[36]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit",-1)])],8,Oh),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View",-1)])],8,Ph),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+s?.conferenceID)},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),v(" View repositories",-1)])],8,Ih),t[40]||(t[40]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeConference(s),["prevent"])},[...t[39]||(t[39]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove",-1)])],8,Vh),[[W,s?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(l(),d("div",qh,[...t[42]||(t[42]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No conferences match the current filters.",-1)])])):p("v-if",!0)]),n("div",Mh,[n("span",Uh,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",$h,[n("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),v(" Previous",-1)])],8,Lh),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,Fh),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[44]||(t[44]=[v("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Bh)])):p("v-if",!0),n("span",Hh,[t[46]||(t[46]=n("label",null,"Per page",-1)),D((l(),d("select",zh,[...t[45]||(t[45]=[fe('',5)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var jh={class:"container paper-page admin-page errors-page"},Gh={class:"errors-header"},Wh={class:"errors-actions"},Kh={class:"kpi-grid"},Yh={class:"kpi-card"},Jh={class:"kpi-value"},Qh={key:0},Xh={key:1},Zh={class:"kpi-card kpi-error"},xh={class:"kpi-value"},em={class:"kpi-sub"},tm={class:"kpi-card kpi-warn"},nm={class:"kpi-value"},om={class:"kpi-sub"},sm={class:"kpi-card kpi-info"},im={class:"kpi-value"},rm={class:"kpi-sub"},am={class:"kpi-value"},lm={class:"kpi-sub"},dm={key:0,class:"dropped-warn"},um={class:"volume-chart"},cm={class:"volume-bars"},pm=["title"],fm={class:"errors-toolbar","aria-label":"Error filters"},hm={class:"seg-tabs"},mm={class:"search-wrap"},vm={type:"search",class:"form-control",placeholder:"code:repo_not_found module:route status:>=400",autocomplete:"off"},gm={key:0,class:"filter-count"},ym={class:"select-wrap"},bm={class:"form-control form-control-sm"},wm={class:"select-wrap"},km={class:"form-control form-control-sm"},Em={class:"autoref"},Cm={type:"checkbox"},Sm={key:0,class:"admin-empty"},_m={key:1,class:"errors-pager"},Nm={key:2,class:"errors-list"},Rm=["onClick"],Dm={class:"col-when"},Tm={class:"when-rel"},Am={class:"when-abs"},Om={class:"col-sev"},Pm={class:"sev-label"},Im={class:"col-mod"},Vm={class:"pill pill-module"},qm={class:"col-msg"},Mm={class:"msg-code"},Um={key:0,class:"msg-context"},$m={key:1,class:"msg-detail"},Lm={key:2,class:"msg-url"},Fm={class:"col-count"},Bm={key:0,class:"count-pill"},Hm={key:1,class:"count-pill count-pill-muted"},zm={class:"col-status"},jm={key:0,class:"errors-row-detail"},Gm={class:"detail-tabs"},Wm=["onClick"],Km=["onClick"],Ym=["onClick"],Jm={class:"detail-body"},Qm={class:"detail-main"},Xm={key:0},Zm={key:1,class:"stack-pre"},xm={key:2,class:"related-list"},ev={class:"when-abs"},tv={class:"msg-url"},nv={class:"detail-actions"},ov=["onClick"],sv=["onClick"],iv={key:0,class:"copy-hint"},rv={class:"detail-aside"},av={class:"aside-block"},lv=["title"],dv={class:"aside-block"},uv=["title"],cv={class:"aside-block"},pv={class:"aside-value"},fv={key:0,class:"aside-sub"},hv={key:0,class:"aside-block"},mv=["href"],vv={key:1,class:"aside-block"},gv={class:"aside-value mono"};function Pl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",jh,[t[32]||(t[32]=n("div",{class:"paper-crumbs"},[v("Admin \xA0/\xA0 "),n("span",{class:"here"},"Errors")],-1)),n("header",Gh,[t[10]||(t[10]=n("h1",{class:"paper-page-title"},"Errors",-1)),n("div",Wh,[n("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=s=>e.exportCsv())},[...t[8]||(t[8]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export CSV",-1)])]),n("button",{class:"btn btn-sm btn-danger-soft",type:"button",onClick:t[1]||(t[1]=s=>e.clearAll())},[...t[9]||(t[9]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Clear all",-1)])])])]),t[33]||(t[33]=fe('',1)),n("section",Kh,[n("div",Yh,[t[11]||(t[11]=n("div",{class:"kpi-label"},"Last 24h",-1)),n("div",Jh,u(e.stats?.last24h),1),n("div",{class:P(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h?(l(),d("span",Qh,u(e.stats?.delta>0?"+":"")+u(e.stats?.delta)+"% vs yesterday",1)):p("v-if",!0),e.stats?.prev24h?p("v-if",!0):(l(),d("span",Xh,"no prior baseline"))],2)]),n("div",Zh,[t[12]||(t[12]=n("div",{class:"kpi-label"},"Errors (5xx)",-1)),n("div",xh,u(e.stats?.severity?.error),1),n("div",em,u(e.stats?.unique?.error)+" unique",1)]),n("div",tm,[t[13]||(t[13]=n("div",{class:"kpi-label"},"Warnings (4xx)",-1)),n("div",nm,u(e.stats?.severity?.warn),1),n("div",om,u(e.stats?.unique?.warn)+" unique",1)]),n("div",sm,[t[14]||(t[14]=n("div",{class:"kpi-label"},"Info (auth, 404)",-1)),n("div",im,u(e.stats?.severity?.info),1),n("div",rm,u(e.stats?.unique?.info)+" unique",1)]),n("div",{class:P(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[15]||(t[15]=n("div",{class:"kpi-label"},"Captured",-1)),n("div",am,u(e.total),1),n("div",lm,[v(" cap "+u(e.cap)+" \xB7 "+u(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(l(),d("span",dm," \xB7 "+u(e.stats?.dropped)+" dropped",1)):p("v-if",!0)])],2)]),n("section",um,[t[16]||(t[16]=fe('
Volume \xB7 24h \xB7 1h bucketserror warn info
',1)),n("div",cm,[(l(!0),d(K,null,ne(e.stats?.buckets,(s,r)=>(l(),d("div",{class:"volume-bar",key:r,title:e.bucketTitle(s)},[n("span",{class:"seg seg-error",style:qe({height:e.barPx(s,"error")+"px"})},null,4),n("span",{class:"seg seg-warn",style:qe({height:e.barPx(s,"warn")+"px"})},null,4),n("span",{class:"seg seg-info",style:qe({height:e.barPx(s,"info")+"px"})},null,4)],8,pm))),128))])]),D((l(),d("form",fm,[n("div",hm,[n("button",{type:"button",class:P({active:e.query?.bucket===""}),onClick:t[2]||(t[2]=s=>e.setBucket(""))},"All",2),n("button",{type:"button",class:P({active:e.query?.bucket==="error"}),onClick:t[3]||(t[3]=s=>e.setBucket("error"))},"5xx",2),n("button",{type:"button",class:P({active:e.query?.bucket==="warn"}),onClick:t[4]||(t[4]=s=>e.setBucket("warn"))},"4xx",2),n("button",{type:"button",class:P({active:e.query?.bucket==="info"}),onClick:t[5]||(t[5]=s=>e.setBucket("info"))},"Info",2)]),n("div",mm,[t[17]||(t[17]=n("svg",{class:"ui-icon search-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)),D(n("input",vm,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(l(),d("span",gm,u(e.parsedFilterCount)+" filter"+u(e.parsedFilterCount>1?"s":""),1)):p("v-if",!0)]),n("div",ym,[t[19]||(t[19]=n("label",null,"Sort",-1)),D((l(),d("select",bm,[...t[18]||(t[18]=[n("option",{value:"recent"},"Most recent",-1),n("option",{value:"count"},"Most frequent",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.sort=s},value:e.query?.sort,form:null,options:{}}]])]),n("div",wm,[t[21]||(t[21]=n("label",null,"Group",-1)),D((l(),d("select",km,[...t[20]||(t[20]=[n("option",{value:""},"Off",-1),n("option",{value:"code"},"By code",-1),n("option",{value:"module"},"By module",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.group=s},value:e.query?.group,form:null,options:{}}]])]),n("label",Em,[D(n("input",Cm,null,512),[[o,{state:e.viewState,set:s=>{e.query.autoRefresh=s},value:e.query?.autoRefresh,form:null,options:{}}]]),t[22]||(t[22]=v(" Auto-refresh ",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[6]||(t[6]=s=>e.refreshNow()),"aria-label":"Refresh"},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])),[[i,e.viewState]]),e.visible?.length?p("v-if",!0):(l(),d("div",Sm,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(l(),d("div",_m,[n("span",null,"Showing "+u(e.entries?.length)+" of "+u(e.total)+" captured",1),n("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=s=>e.loadMore())},"Load older")])):p("v-if",!0),e.visible?.length?(l(),d("div",Nm,[t[31]||(t[31]=fe('
WhenSeverityModuleMessageCountStatus
',1)),(l(!0),d(K,null,ne(e.visible,(s,r)=>(l(),d("div",{class:P(["errors-row",{open:e.expanded[s?._key]}]),key:s?._key},[n("div",{class:"errors-row-main",onClick:a=>e.toggle(s)},[n("div",Dm,[n("div",Tm,u(e.relTime(s?.ts)),1),n("div",Am,u(e.absTimeShort(s?.ts)),1)]),n("div",Om,[n("span",{class:P(["sev-dot","sev-"+s?._bucket])},null,2),n("span",Pm,u(e.fmt?.title(s?._bucket)),1)]),n("div",Im,[n("span",Vm,u(s?.module),1)]),n("div",qm,[n("strong",Mm,u(s?.displayMessage),1),s?.displayContext&&s?.displayContext!==s?.displayMessage?(l(),d("span",Um,u(s?.displayContext),1)):p("v-if",!0),s?._detail?(l(),d("span",$m,u(s?._detail),1)):p("v-if",!0),s?._url?(l(),d("div",Lm,u(s?._url),1)):p("v-if",!0)]),n("div",Fm,[s?.count>1?(l(),d("span",Bm,"\xD7"+u(s?.count),1)):p("v-if",!0),s?.count===1?(l(),d("span",Hm,"\xD71")):p("v-if",!0)]),n("div",zm,[s?._status?(l(),d("span",{key:0,class:P(["status-pill","status-"+s?._bucket])},u(s?._status),3)):p("v-if",!0)])],8,Rm),e.expanded[s?._key]?(l(),d("div",jm,[n("div",Gm,[n("button",{type:"button",class:P({active:e.detailTab[s?._key]==="raw"||!e.detailTab[s?._key]}),onClick:a=>e.detailTab[s._key]="raw"},"Raw",10,Wm),s?._stack?(l(),d("button",{key:0,type:"button",class:P({active:e.detailTab[s?._key]==="stack"}),onClick:a=>e.detailTab[s._key]="stack"},"Stack",10,Km)):p("v-if",!0),s?.count>1?(l(),d("button",{key:1,type:"button",class:P({active:e.detailTab[s?._key]==="related"}),onClick:a=>e.detailTab[s._key]="related"},"Related ("+u(s?.count)+")",11,Ym)):p("v-if",!0)]),n("div",Jm,[n("div",Qm,[(e.detailTab[s?._key]||"raw")==="raw"?(l(),d("pre",Xm,u(s?._detailJson),1)):p("v-if",!0),e.detailTab[s?._key]==="stack"?(l(),d("pre",Zm,u(s?._stack),1)):p("v-if",!0),e.detailTab[s?._key]==="related"?(l(),d("div",xm,[(l(!0),d(K,null,ne(s?._related,(a,c)=>(l(),d("div",{class:"related-row",key:c},[n("span",ev,u(e.absTimeShort(a?.ts)),1),n("span",tv,u(a?._url),1),a?._status?(l(),d("span",{key:0,class:P(["status-pill","status-"+a?._bucket])},u(a?._status),3)):p("v-if",!0)]))),128))])):p("v-if",!0),n("div",nv,[n("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:a=>e.copyCurl(s)},[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),v(" Copy curl",-1)])],8,ov),n("button",{class:"btn btn-sm",type:"button",onClick:a=>e.copyJson(s)},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-clipboard"})],-1),v(" Copy JSON",-1)])],8,sv),e.copyHint?(l(),d("span",iv,u(e.copyHint),1)):p("v-if",!0)])]),n("aside",rv,[n("div",av,[t[26]||(t[26]=n("div",{class:"aside-label"},"First seen",-1)),n("div",{class:"aside-value",title:e.absTime(s?._firstSeen)},u(e.relTime(s?._firstSeen)),9,lv)]),n("div",dv,[t[27]||(t[27]=n("div",{class:"aside-label"},"Last seen",-1)),n("div",{class:"aside-value",title:e.absTime(s?.ts)},u(e.relTime(s?.ts)),9,uv)]),n("div",cv,[t[28]||(t[28]=n("div",{class:"aside-label"},"Occurrences",-1)),n("div",pv,[v(u(s?.count),1),s?._lastHourCount?(l(),d("span",fv," \xB7 "+u(s?._lastHourCount)+" this hour",1)):p("v-if",!0)])]),s?._repoId?(l(),d("div",hv,[t[29]||(t[29]=n("div",{class:"aside-label"},"Repository",-1)),n("a",{class:"aside-value",href:e.safeUrl("/r/"+s?._repoId)},u(s?._repoId),9,mv)])):p("v-if",!0),s?._url?(l(),d("div",vv,[t[30]||(t[30]=n("div",{class:"aside-label"},"URL",-1)),n("div",gv,u(s?._url),1)])):p("v-if",!0)])])])):p("v-if",!0)],2))),128))])):p("v-if",!0)])}var yv={class:"container paper-page admin-page overview-page"},bv={key:0,class:"admin-empty"},wv={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},kv={key:2},Ev={class:"ov-kpi-row"},Cv={class:"ov-kpi-card"},Sv={class:"ov-kpi-value"},_v={class:"ov-kpi-sub"},Nv={class:"ov-kpi-card"},Rv={class:"ov-kpi-sub"},Dv={class:"ov-kpi-card"},Tv={class:"ov-kpi-sub"},Av={class:"ov-kpi-card"},Ov={class:"ov-kpi-sub"},Pv={class:"ov-kpi-card"},Iv={class:"ov-kpi-value"},Vv={class:"ov-kpi-sub"},qv={class:"ov-daily-row"},Mv={class:"ov-daily-card"},Uv={class:"ov-daily-value"},$v={class:"ov-daily-card"},Lv={class:"ov-daily-value"},Fv={class:"ov-daily-sub"},Bv={class:"ov-daily-card"},Hv={class:"ov-daily-value"},zv={class:"ov-chart-row"},jv={class:"ov-chart-card"},Gv={key:0,class:"ov-spark-bars"},Wv=["data-tip","aria-label"],Kv={key:1,class:"ov-spark-x"},Yv={class:"ov-chart-card"},Jv={key:0,class:"ov-spark-bars"},Qv=["data-tip","aria-label"],Xv={key:1,class:"ov-spark-x"},Zv={class:"ov-chart-card"},xv={class:"ov-chart-head"},eg={class:"ov-chart-legend"},tg={key:0,class:"ov-spark-bars"},ng=["data-tip","aria-label"],og={key:1,class:"ov-spark-x"},sg={class:"ov-chart-card"},ig={key:0,class:"ov-spark-bars"},rg=["data-tip","aria-label"],ag={key:1,class:"ov-spark-x"},lg={class:"ov-triple-row"},dg={class:"ov-panel-card"},ug={class:"ov-panel-head"},cg={class:"ov-panel-meta"},pg={class:"ov-stacked-bar"},fg={class:"ov-bar-legend"},hg={href:"/admin/repositories",class:"ov-legend-item"},mg={class:"ov-legend-n"},vg={href:"/admin/repositories",class:"ov-legend-item"},gg={class:"ov-legend-n"},yg={href:"/admin/repositories",class:"ov-legend-item"},bg={class:"ov-legend-n"},wg={href:"/admin/repositories",class:"ov-legend-item"},kg={class:"ov-legend-n"},Eg={href:"/admin/repositories",class:"ov-legend-item"},Cg={class:"ov-legend-n"},Sg={class:"ov-panel-card"},_g={class:"ov-panel-head"},Ng={class:"ov-panel-meta"},Rg={class:"ov-error-bars"},Dg={class:"ov-ebar-row"},Tg={class:"ov-ebar-track"},Ag={class:"ov-ebar-n"},Og={class:"ov-ebar-row"},Pg={class:"ov-ebar-track"},Ig={class:"ov-ebar-n"},Vg={class:"ov-ebar-row"},qg={class:"ov-ebar-track"},Mg={class:"ov-ebar-n"},Ug={key:0,class:"ov-panel-foot"},$g={href:"/admin/errors"},Lg={class:"ov-panel-card"},Fg={class:"ov-routes-table"},Bg={class:"ov-route-row",href:"/admin/queues"},Hg={class:"ov-route-n"},zg={class:"ov-route-n"},jg={class:"ov-route-row",href:"/admin/queues"},Gg={class:"ov-route-n"},Wg={class:"ov-route-n"},Kg={class:"ov-route-row",href:"/admin/queues"},Yg={class:"ov-route-n"},Jg={class:"ov-route-n"},Qg={class:"ov-services-card"},Xg={class:"ov-services-head"},Zg={class:"ov-panel-meta"},xg={class:"ov-services-grid"},ey={class:"ov-svc"},ty={class:"ov-svc-info"},ny={class:"ov-svc-meta"},oy={class:"ov-svc-detail"},sy={class:"ov-svc"},iy={class:"ov-svc-info"},ry={key:0,class:"ov-svc-meta"},ay={key:1,class:"ov-svc-meta"},ly={class:"ov-svc"},dy={class:"ov-svc-info"},uy={key:0,class:"ov-svc-meta"},cy={key:1,class:"ov-svc-meta"},py={class:"ov-svc"},fy={class:"ov-svc-info"},hy={key:0,class:"ov-svc-meta"},my={key:1,class:"ov-svc-meta"},vy={class:"ov-svc"},gy={class:"ov-svc-info"},yy={class:"ov-svc-meta"},by={class:"ov-panel-card ov-cache","aria-labelledby":"cache-heading"},wy={class:"ov-panel-head ov-performance-head"},ky={class:"ov-performance-window"},Ey={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},Cy={key:1,class:"ov-performance-empty",role:"status"},Sy={key:0,class:"ov-performance-note"},_y={key:1,class:"ov-performance-note"},Ny={key:2,class:"ov-performance-message ov-performance-warning",role:"status"},Ry={key:3,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache storage budgets"},Dy={class:"ov-metrics-table"},Ty={scope:"row"},Ay={key:4,class:"ov-performance-note"},Oy={key:5,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Cache events and processing durations"},Py={class:"ov-metrics-table"},Iy={scope:"row"},Vy={key:6,class:"ov-performance-empty",role:"status"},qy={class:"ov-performance-note"},My={class:"ov-panel-card ov-performance","aria-labelledby":"performance-heading"},Uy={class:"ov-panel-head ov-performance-head"},$y={class:"ov-performance-window"},Ly={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},Fy={key:1,class:"ov-performance-empty",role:"status"},By={key:2},Hy={class:"paper-tabs ov-performance-tabs",role:"tablist","aria-label":"Performance metrics"},zy=["aria-selected","tabindex"],jy=["aria-selected","tabindex"],Gy=["aria-selected","tabindex"],Wy={id:"performance-routes",role:"tabpanel","aria-labelledby":"performance-routes-tab"},Ky={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Route latency metrics, scroll for more columns"},Yy={class:"ov-metrics-table"},Jy={scope:"row",class:"ov-metric-name"},Qy={class:"num"},Xy={class:"num"},Zy={class:"num"},xy={class:"num"},eb={class:"num"},tb={key:1,class:"ov-performance-empty"},ob={id:"performance-processes",role:"tabpanel","aria-labelledby":"performance-processes-tab"},sb={key:0,class:"ov-performance-message ov-performance-warning",role:"status"},ib={key:1,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Process resource metrics, scroll for more columns"},rb={class:"ov-metrics-table"},ab={scope:"row",class:"ov-metric-name"},lb={key:0,class:"ov-metric-warn"},db={class:"num"},ub={class:"num"},cb={class:"num"},pb={class:"num"},fb={class:"num"},hb={class:"num"},mb={class:"num"},vb={class:"num"},gb={id:"performance-stages",role:"tabpanel","aria-labelledby":"performance-stages-tab"},yb={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Work stage metrics, scroll for more columns"},bb={class:"ov-metrics-table"},wb={scope:"row",class:"ov-metric-name"},kb={class:"num"},Eb={class:"num"},Cb={class:"num"},Sb={key:1,class:"ov-performance-empty"};function Il(e,t){return l(),d("div",yv,[t[79]||(t[79]=fe('
Admin \xA0/\xA0 Overview

Overview

',3)),e.loading?(l(),d("div",bv,"Loading overview\u2026")):p("v-if",!0),e.error?(l(),d("div",wv,[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.error),1)])):p("v-if",!0),e.data?(l(),d("div",kv,[p(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Ev,[n("div",Cv,[t[14]||(t[14]=n("div",{class:"ov-kpi-label"},[v("Repositories "),n("span",{class:"ov-dot ov-dot-ok"})],-1)),n("div",Sv,u(e.humanNum(e.data?.repos?.total)),1),n("div",_v,"+"+u(e.data?.repos?.newRepos24h)+" \xB7 last 24h",1)]),n("div",Nv,[t[15]||(t[15]=n("div",{class:"ov-kpi-label"},"CPU",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>80}])},u(e.data?.system?.cpuPercent)+"%",3),n("div",Rv,u(e.data?.system?.cpuCount)+" cores \xB7 load "+u(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)]),n("div",Dv,[t[16]||(t[16]=n("div",{class:"ov-kpi-label"},"Memory",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>85}])},u(e.data?.system?.memPercent)+"%",3),n("div",Tv,u(e.humanBytes(e.data?.system?.memUsed))+" / "+u(e.humanBytes(e.data?.system?.memTotal)),1)]),n("div",Av,[t[17]||(t[17]=n("div",{class:"ov-kpi-label"},"Disk",-1)),n("div",{class:P(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>85}])},u(e.data?.system?.diskPercent)+"%",3),n("div",Ov,u(e.humanBytes(e.data?.system?.diskUsed))+" / "+u(e.humanBytes(e.data?.system?.diskTotal))+" \xB7 "+u(e.data?.system?.diskMount),1)]),n("div",Pv,[t[18]||(t[18]=n("div",{class:"ov-kpi-label"},"Uptime",-1)),n("div",Iv,u(e.humanDuration(e.data?.system?.uptime)),1),n("div",Vv,u(e.data?.system?.nodeVersion)+" \xB7 "+u(e.data?.system?.platform),1)])]),p(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",qv,[n("div",Mv,[t[19]||(t[19]=n("div",{class:"ov-daily-label"},"New repos today",-1)),n("div",Uv,"+"+u(e.fmt?.number(e.data?.daily?.today?.repositories)),1),t[20]||(t[20]=n("div",{class:"ov-daily-sub"},"since yesterday",-1))]),n("div",$v,[t[21]||(t[21]=n("div",{class:"ov-daily-label"},"New users today",-1)),n("div",Lv,"+"+u(e.fmt?.number(e.data?.daily?.today?.users)),1),n("div",Fv,u(e.fmt?.number(e.data?.users?.total))+" total users",1)]),n("div",Bv,[t[22]||(t[22]=n("div",{class:"ov-daily-label"},"Page views today",-1)),n("div",Hv,"+"+u(e.fmt?.number(e.data?.daily?.today?.pageViews)),1),t[23]||(t[23]=n("div",{class:"ov-daily-sub"},"since yesterday",-1))])]),p(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",zv,[n("div",jv,[t[24]||(t[24]=n("div",{class:"ov-chart-head"},[n("span",{class:"ov-chart-title"},"Daily page views \xB7 30d"),n("span",{class:"ov-chart-legend"},[n("span",{class:"ov-dot-legend ov-dot-accent"}),v("views/day")])],-1)),e.data?.history?.length?(l(),d("div",Gv,[(l(!0),d(K,null,ne(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyPageViews)+" views"},[n("span",{class:"ov-spark-fill",style:qe({height:e.historyBarH(o,"dailyPageViews")+"px"})},null,4)],8,Wv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",Kv,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),n("div",Yv,[t[25]||(t[25]=n("div",{class:"ov-chart-head"},[n("span",{class:"ov-chart-title"},"New repos \xB7 30d"),n("span",{class:"ov-chart-legend"},[n("span",{class:"ov-dot-legend ov-dot-ok-fill"}),v("repos/day")])],-1)),e.data?.history?.length?(l(),d("div",Jv,[(l(!0),d(K,null,ne(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyRepositories)+" repos"},[n("span",{class:"ov-spark-fill ov-spark-fill-alt",style:qe({height:e.historyBarH(o,"dailyRepositories")+"px"})},null,4)],8,Qv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",Xv,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),n("div",Zv,[n("div",xv,[t[27]||(t[27]=n("span",{class:"ov-chart-title"},"Users \xB7 30d",-1)),n("span",eg,[t[26]||(t[26]=n("span",{class:"ov-dot-legend ov-dot-user-fill"},null,-1)),v("total users \xB7 "+u(e.fmt?.number(e.historyRange("nbUsers").min))+"\u2013"+u(e.fmt?.number(e.historyRange("nbUsers").max)),1)])]),e.data?.history?.length?(l(),d("div",tg,[(l(!0),d(K,null,ne(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users","aria-label":e.historyLabel(o)+": "+e.fmt?.number(o?.nbUsers)+" users"},[n("span",{class:"ov-spark-fill ov-spark-fill-user",style:qe({height:e.historyRangeH(o,"nbUsers")+"px"})},null,4)],8,ng))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",og,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),n("div",sg,[t[28]||(t[28]=n("div",{class:"ov-chart-head"},[n("span",{class:"ov-chart-title"},"New users \xB7 30d"),n("span",{class:"ov-chart-legend"},[n("span",{class:"ov-dot-legend ov-dot-new-user-fill"}),v("users/day")])],-1)),e.data?.history?.length?(l(),d("div",ig,[(l(!0),d(K,null,ne(e.data?.history,(o,i)=>(l(),d("div",{class:"ov-spark-col has-tip",key:i,"data-tip":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users","aria-label":e.historyLabel(o)+": +"+e.fmt?.number(o?.dailyUsers)+" users"},[n("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:qe({height:e.historyBarH(o,"dailyUsers")+"px"})},null,4)],8,rg))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",ag,[n("span",null,u(e.historyLabel(e.data?.history[0])),1),n("span",null,u(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),n("span",null,u(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)])]),p(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",lg,[p(" Repo status breakdown "),n("div",dg,[n("div",ug,[t[29]||(t[29]=n("span",{class:"ov-panel-title"},"Repo status",-1)),n("span",cg,u(e.fmt?.number(e.data?.repos?.total))+" total",1)]),n("div",pg,[n("span",{class:"ov-bar-seg ov-bar-ready",title:"Ready",style:qe({width:e.barPct("ready")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:qe({width:e.barPct("preparing")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-error",title:"Error",style:qe({width:e.barPct("error")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-expired",title:"Expired",style:qe({width:e.barPct("expired")+"%"})},null,4),n("span",{class:"ov-bar-seg ov-bar-removed",title:"Removed",style:qe({width:e.barPct("removed")+"%"})},null,4)]),n("div",fg,[n("a",hg,[t[30]||(t[30]=n("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[31]||(t[31]=v(" ready ",-1)),n("span",mg,u(e.fmt?.number(e.statusCount("ready"))),1)]),n("a",vg,[t[32]||(t[32]=n("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[33]||(t[33]=v(" preparing ",-1)),n("span",gg,u(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),n("a",yg,[t[34]||(t[34]=n("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[35]||(t[35]=v(" error ",-1)),n("span",bg,u(e.fmt?.number(e.statusCount("error"))),1)]),n("a",wg,[t[36]||(t[36]=n("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[37]||(t[37]=v(" expired ",-1)),n("span",kg,u(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),n("a",Eg,[t[38]||(t[38]=n("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[39]||(t[39]=v(" removed ",-1)),n("span",Cg,u(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),p(" Error breakdown "),n("div",Sg,[n("div",_g,[t[40]||(t[40]=n("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),n("span",Ng,u(e.data?.errors?.last24h)+" total",1)]),n("div",Rg,[n("div",Dg,[t[41]||(t[41]=n("span",{class:"ov-ebar-label"},"5xx",-1)),n("span",Tg,[n("span",{class:"ov-ebar-fill ov-ebar-error",style:qe({width:e.errPct("error")+"%"})},null,4)]),n("span",Ag,u(e.data?.errors?.severity?.error),1)]),n("div",Og,[t[42]||(t[42]=n("span",{class:"ov-ebar-label"},"4xx",-1)),n("span",Pg,[n("span",{class:"ov-ebar-fill ov-ebar-warn",style:qe({width:e.errPct("warn")+"%"})},null,4)]),n("span",Ig,u(e.data?.errors?.severity?.warn),1)]),n("div",Vg,[t[43]||(t[43]=n("span",{class:"ov-ebar-label"},"Info",-1)),n("span",qg,[n("span",{class:"ov-ebar-fill ov-ebar-info",style:qe({width:e.errPct("info")+"%"})},null,4)]),n("span",Mg,u(e.data?.errors?.severity?.info),1)])]),e.data?.repos?.recentErrors24h?(l(),d("div",Ug,[n("a",$g,u(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):p("v-if",!0)]),p(" Top routes / queues "),n("div",Lg,[t[48]||(t[48]=n("div",{class:"ov-panel-head"},[n("span",{class:"ov-panel-title"},"Queues"),n("span",{class:"ov-panel-meta"},"by state")],-1)),n("div",Fg,[t[47]||(t[47]=fe('
QueueActiveWaitFailed
',1)),n("a",Bg,[t[44]||(t[44]=n("span",{class:"ov-route-name"},"download",-1)),n("span",Hg,u(e.data?.queues?.download?.active),1),n("span",zg,u(e.data?.queues?.download?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},u(e.data?.queues?.download?.failed),3)]),n("a",jg,[t[45]||(t[45]=n("span",{class:"ov-route-name"},"remove",-1)),n("span",Gg,u(e.data?.queues?.remove?.active),1),n("span",Wg,u(e.data?.queues?.remove?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},u(e.data?.queues?.remove?.failed),3)]),n("a",Kg,[t[46]||(t[46]=n("span",{class:"ov-route-name"},"cache",-1)),n("span",Yg,u(e.data?.queues?.cache?.active),1),n("span",Jg,u(e.data?.queues?.cache?.waiting),1),n("span",{class:P(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},u(e.data?.queues?.cache?.failed),3)])])])]),p(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),n("section",Qg,[n("div",Xg,[t[49]||(t[49]=n("span",{class:"ov-panel-title"},"Services",-1)),n("span",Zg,u(e.fmt?.number(e.data?.users?.total))+" users \xB7 "+u(e.data?.conferences?.total)+" conferences",1)]),n("div",xg,[n("div",ey,[t[51]||(t[51]=n("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),n("div",ty,[t[50]||(t[50]=n("span",{class:"ov-svc-name"},"web",-1)),n("span",ny,u(e.data?.system?.nodeVersion),1)]),n("span",oy,"uptime "+u(e.humanDuration(e.data?.system?.uptime)),1)]),n("div",sy,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",iy,[t[52]||(t[52]=n("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(l(),d("span",ry,u(e.queueTotal(e.data?.queues?.download))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.download)?p("v-if",!0):(l(),d("span",ay,"idle"))])]),n("div",ly,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",dy,[t[53]||(t[53]=n("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(l(),d("span",uy,u(e.queueTotal(e.data?.queues?.cache))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.cache)?p("v-if",!0):(l(),d("span",cy,"idle"))])]),n("div",py,[n("span",{class:P(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),n("div",fy,[t[54]||(t[54]=n("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(l(),d("span",hy,u(e.queueTotal(e.data?.queues?.remove))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.remove)?p("v-if",!0):(l(),d("span",my,"idle"))])]),n("div",vy,[n("span",{class:P(["ov-svc-dot",e.data?.repos?.recentErrors24h>10?"ov-dot-warn":"ov-dot-ok"])},null,2),n("div",gy,[t[55]||(t[55]=n("span",{class:"ov-svc-name"},"errors",-1)),n("span",yy,u(e.data?.errors?.last24h)+" / 24h",1)])])])])])):p("v-if",!0),n("section",by,[n("div",wy,[t[60]||(t[60]=n("div",null,[n("h2",{class:"ov-panel-title",id:"cache-heading"},"Cache"),n("p",{class:"ov-performance-note"},"Shared storage, repeated reads and anonymization work \xB7 refreshes every 30 seconds")],-1)),n("div",ky,[t[58]||(t[58]=n("label",{for:"cache-window"},"Time range",-1)),D(n("select",{id:"cache-window",class:"form-control form-control-sm","onUpdate:modelValue":t[0]||(t[0]=o=>e.cacheMinutes=o),onChange:t[1]||(t[1]=o=>e.loadCache())},[...t[56]||(t[56]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1),n("option",{value:1440},"Last 24 hours",-1),n("option",{value:10080},"Last 7 days",-1)])],544),[[pn,e.cacheMinutes,void 0,{number:!0}]]),t[59]||(t[59]=n("label",{for:"cache-traffic"},"Traffic",-1)),D(n("select",{id:"cache-traffic",class:"form-control form-control-sm","onUpdate:modelValue":t[2]||(t[2]=o=>e.cacheTraffic=o)},[...t[57]||(t[57]=[fe('',6)])],512),[[pn,e.cacheTraffic]])])]),e.cacheError?(l(),d("div",Ey,[n("span",null,u(e.cacheError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[3]||(t[3]=o=>e.loadCache())},"Retry")])):p("v-if",!0),!e.cacheReport&&!e.cacheError?(l(),d("p",Cy,"Loading cache monitoring\u2026")):p("v-if",!0),e.cacheReport?.available?(l(),d(K,{key:2},[e.cacheReport.enabled?p("v-if",!0):(l(),d("p",Sy,"Shared blob storage is disabled. Inspection and legacy-cache activity are still measured.")),e.cacheReport.filesystemSupported?p("v-if",!0):(l(),d("p",_y,"Shared blobs require a local filesystem. The configured storage continues to use its existing cache.")),e.cacheReport.dropped?(l(),d("p",Ny,u(e.cacheReport.dropped)+" telemetry events were dropped. Totals may be incomplete.",1)):p("v-if",!0),e.cacheReport.source?(l(),d("div",Ry,[n("table",Dy,[t[61]||(t[61]=n("caption",{class:"sr-only"},"Current shared-cache storage and byte budgets",-1)),t[62]||(t[62]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Pool"),n("th",{scope:"col"},"Allocated / budget"),n("th",{scope:"col"},"Reserved for fills"),n("th",{scope:"col"},"Original bytes"),n("th",{scope:"col"},"Blobs"),n("th",{scope:"col"},"Active readers")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne([{name:"Source blobs",data:e.cacheReport.source},{name:"Transformed output",data:e.cacheReport.results}],o=>D((l(),d("tr",{key:o.name},[n("th",Ty,u(o.name),1),n("td",null,u(e.humanBytes(o.data?.allocatedBytes))+" / "+u(e.humanBytes(o.data?.budgetBytes)),1),n("td",null,u(e.humanBytes(o.data?.reservedBytes)),1),n("td",null,u(e.humanBytes(o.data?.originalBytes)),1),n("td",null,u(o.data?.blobs),1),n("td",null,u(o.data?.activeReaders),1)])),[[W,o.data]])),128))])])])):p("v-if",!0),e.cacheReport.source?(l(),d("p",Ay,"Source request hit rate: "+u(e.cacheRate("source","count"))+" \xB7 Source byte hit rate: "+u(e.cacheRate("source","bytes"))+" \xB7 Decision hit rate: "+u(e.cacheRate("decision","count")),1)):p("v-if",!0),t[65]||(t[65]=n("p",{class:"ov-performance-note"},"Reuse counts measure consecutive reads of the same blob within each interval. Codec timings are elapsed stream time, not CPU time; eviction times measure how long a blob was idle. Known monitors are identified by request metadata; other automation may remain in file reads.",-1)),e.cacheRows().length?(l(),d("div",Oy,[n("table",Py,[t[63]||(t[63]=n("caption",{class:"sr-only"},"Cache events for the selected time range and traffic",-1)),t[64]||(t[64]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Event"),n("th",{scope:"col"},"Traffic"),n("th",{scope:"col"},"Count"),n("th",{scope:"col"},"Bytes"),n("th",{scope:"col"},"Mean measured time"),n("th",{scope:"col"},"p95 bound")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne(e.cacheRows(),o=>(l(),d("tr",{key:o.name+":"+o.traffic},[n("th",Iy,u(e.cacheEventName(o.name)),1),n("td",null,u(o.traffic),1),n("td",null,u(o.count),1),n("td",null,u(e.humanBytes(o.bytes)),1),n("td",null,u(o.ms?(o.ms/o.count).toFixed(2)+" ms":"Not timed"),1),n("td",null,u(e.cacheP95(o)),1)]))),128))])])])):(l(),d("p",Vy,"No cache events in this time range for the selected traffic.")),n("p",qy,"Updated "+u(e.sampleAge(e.cacheReport))+" seconds ago. Minute history is retained for 48 hours; hourly history for 30 days.",1)],64)):p("v-if",!0)]),n("section",My,[n("div",Uy,[t[68]||(t[68]=n("div",null,[n("h2",{class:"ov-panel-title",id:"performance-heading"},"Request performance"),n("p",{class:"ov-performance-note"},"Request latency and process health \xB7 refreshes every 30 seconds")],-1)),n("div",$y,[t[67]||(t[67]=n("label",{for:"performance-window"},"Time range",-1)),D(n("select",{id:"performance-window",class:"form-control form-control-sm","onUpdate:modelValue":t[4]||(t[4]=o=>e.performanceMinutes=o),onChange:t[5]||(t[5]=o=>e.loadPerformance()),"aria-label":"Performance time range"},[...t[66]||(t[66]=[n("option",{value:15},"Last 15 minutes",-1),n("option",{value:60},"Last hour",-1)])],544),[[pn,e.performanceMinutes,void 0,{number:!0}]])])]),e.performanceError?(l(),d("div",Ly,[t[69]||(t[69]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("span",null,u(e.performanceError),1),n("button",{type:"button",class:"btn btn-sm",onClick:t[6]||(t[6]=o=>e.loadPerformance())},"Retry")])):p("v-if",!0),!e.performance&&!e.performanceError?(l(),d("p",Fy,"Loading performance monitoring\u2026")):p("v-if",!0),e.performance?.available?(l(),d("div",By,[n("div",Hy,[n("button",{id:"performance-routes-tab",type:"button",class:P(["paper-tab",{active:e.performanceTab==="routes"}]),role:"tab","aria-selected":e.performanceTab==="routes",tabindex:e.performanceTab==="routes"?0:-1,"aria-controls":"performance-routes",onClick:t[7]||(t[7]=o=>e.performanceTab="routes"),onKeydown:t[8]||(t[8]=o=>e.previewTabKeydown(o))},"Routes",42,zy),n("button",{id:"performance-processes-tab",type:"button",class:P(["paper-tab",{active:e.performanceTab==="processes"}]),role:"tab","aria-selected":e.performanceTab==="processes",tabindex:e.performanceTab==="processes"?0:-1,"aria-controls":"performance-processes",onClick:t[9]||(t[9]=o=>e.performanceTab="processes"),onKeydown:t[10]||(t[10]=o=>e.previewTabKeydown(o))},"Processes",42,jy),n("button",{id:"performance-stages-tab",type:"button",class:P(["paper-tab",{active:e.performanceTab==="stages"}]),role:"tab","aria-selected":e.performanceTab==="stages",tabindex:e.performanceTab==="stages"?0:-1,"aria-controls":"performance-stages",onClick:t[11]||(t[11]=o=>e.performanceTab="stages"),onKeydown:t[12]||(t[12]=o=>e.previewTabKeydown(o))},"Work stages",42,Gy)]),D(n("div",Wy,[e.performance.routes?.length?(l(),d("div",Ky,[n("table",Yy,[t[70]||(t[70]=n("caption",{class:"sr-only"},"Route latency for the selected time range",-1)),t[71]||(t[71]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Route"),n("th",{scope:"col",class:"num"},"Requests"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"First byte p95"),n("th",{scope:"col",class:"num"},"p95"),n("th",{scope:"col",class:"num"},"p99"),n("th",{scope:"col",class:"num"},"Interrupted"),n("th",{scope:"col",class:"num"},"5xx"),n("th",{scope:"col",class:"num"},"Slow")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne(e.performance.routes,o=>(l(),d("tr",{key:o.service+o.method+o.route},[n("th",Jy,[n("span",null,u(o.route),1),n("small",null,u(o.service)+" \xB7 "+u(o.method),1)]),n("td",Qy,u(e.fmt.number(o.count)),1),n("td",Xy,u(e.formatMs(o.avgMs)),1),n("td",Zy,u(e.firstByteBound(o)),1),n("td",xy,u(e.latencyBound(o,"p95UpperMs")),1),n("td",eb,u(e.latencyBound(o,"p99UpperMs")),1),n("td",{class:P(["num",{"ov-metric-warn":o.aborted>0}])},u(e.fmt.number(o.aborted)),3),n("td",{class:P(["num",{"ov-metric-warn":o.errors>0}])},u(e.fmt.number(o.errors)),3),n("td",{class:P(["num",{"ov-metric-warn":o.slow>0}])},u(e.fmt.number(o.slow)),3)]))),128))])])])):(l(),d("p",tb,"No recorded requests in this time range yet."))],512),[[W,e.performanceTab==="routes"]]),D(n("div",ob,[t[75]||(t[75]=n("p",{class:"ov-performance-note"},"API and streamer processes \xB7 latest sample per instance",-1)),e.performance.instances?.length?(l(),d("div",ib,[n("table",rb,[t[73]||(t[73]=n("caption",{class:"sr-only"},"API and streamer process resource usage",-1)),t[74]||(t[74]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Process"),n("th",{scope:"col",class:"num"},"RSS / limit"),n("th",{scope:"col",class:"num"},"CPU"),n("th",{scope:"col",class:"num"},"Event loop p95"),n("th",{scope:"col",class:"num"},"Active requests"),n("th",{scope:"col",class:"num"},"Sockets / CLOSE_WAIT"),n("th",{scope:"col",class:"num"},"Workers / waiting"),n("th",{scope:"col",class:"num"},"Sample age"),n("th",{scope:"col",class:"num"},"Dropped batches / metrics")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne(e.performance.instances,o=>(l(),d("tr",{key:o.instance,class:P({"ov-metric-warning-row":e.performanceWarning(o)})},[n("th",ab,[n("span",null,u(o.instance),1),e.performanceWarning(o)?(l(),d("small",lb,[...t[72]||(t[72]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),v(" Needs attention",-1)])])):p("v-if",!0)]),n("td",db,[v(u(e.humanBytes(o.memory.rss))+" / "+u(e.humanBytes(o.memoryLimitBytes)),1),n("small",null,"Peak "+u(e.humanBytes(e.peakRss(o))),1)]),n("td",ub,u(o.cpuPercent.toFixed(1))+"%",1),n("td",cb,u(o.eventLoop.p95Ms.toFixed(1))+" ms",1),n("td",pb,u(o.activeRequests),1),n("td",fb,u(o.sockets?.descriptors??"Unavailable")+" / "+u(o.sockets?.closeWait??"Unavailable"),1),n("td",hb,u(o.workers?.running??0)+" / "+u(o.workers?.waiting??0),1),n("td",mb,u(e.sampleAge(o))+" s",1),n("td",vb,u(o.droppedBatches)+" / "+u(o.droppedMetrics),1)],2))),128))])])])):(l(),d("div",sb,"No recent process samples. Monitoring coverage is incomplete."))],512),[[W,e.performanceTab==="processes"]]),D(n("div",gb,[e.performance.stages?.some(o=>o.metric!=="first_byte")?(l(),d("div",yb,[n("table",bb,[t[76]||(t[76]=n("caption",{class:"sr-only"},"Work stages and cache results",-1)),t[77]||(t[77]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Work stage"),n("th",{scope:"col",class:"num"},"Samples"),n("th",{scope:"col",class:"num"},"Average"),n("th",{scope:"col",class:"num"},"p95")])],-1)),n("tbody",null,[(l(!0),d(K,null,ne(e.performance.stages.filter(o=>o.metric!=="first_byte"),o=>(l(),d("tr",{key:o.service+o.metric},[n("th",wb,[n("span",null,u(o.metric),1),n("small",null,u(o.service),1)]),n("td",kb,u(e.fmt.number(o.count)),1),n("td",Eb,u(e.formatMs(o.avgMs)),1),n("td",Cb,u(e.latencyBound(o,"p95UpperMs")),1)]))),128))])])])):(l(),d("p",Sb,"No recorded work stages or cache results in this time range yet."))],512),[[W,e.performanceTab==="stages"]]),t[78]||(t[78]=n("details",{class:"ov-performance-help"},[n("summary",null,"How to read these metrics"),n("p",null,"Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked \u201CNeeds attention\u201D have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.")],-1))])):p("v-if",!0)])])}var _b={class:"container paper-page admin-page"},Nb={class:"q-header"},Rb={class:"q-header-actions"},Db={class:"q-range-btns"},Tb={class:"q-cards"},Ab=["aria-pressed","onKeydown","onClick"],Ob={class:"q-card-head"},Pb=["textContent"],Ib=["textContent"],Vb={class:"q-card-sub"},qb={key:0,class:"q-card-bar"},Mb={key:0,class:"q-detail"},Ub={class:"q-throughput"},$b={class:"q-section-label"},Lb={class:"q-section-right"},Fb={class:"q-stats-panel"},Bb={class:"q-section-label"},Hb={class:"q-stats-grid"},zb={class:"q-stat"},jb=["textContent"],Gb={class:"q-stat"},Wb=["textContent"],Kb={class:"q-stat"},Yb=["textContent"],Jb={class:"q-stat"},Qb=["textContent"],Xb={class:"q-stat"},Zb=["textContent"],xb={class:"q-stat"},e1=["textContent"],t1={class:"q-stats-actions"},n1=["disabled"],o1={class:"q-jobs"},s1={class:"q-jobs-header"},i1={class:"q-section-label"},r1={class:"q-state-filters"},a1={class:"q-state-toggle"},l1={type:"checkbox"},d1={class:"q-search-row"},u1={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},c1={class:"q-auto-refresh"},p1={type:"checkbox"},f1={key:0,class:"q-table"},h1=["onClick"],m1={class:"q-cell-state"},v1=["textContent"],g1=["textContent"],y1={class:"q-cell-id"},b1=["textContent","href"],w1={class:"q-cell-payload"},k1=["textContent"],E1={key:0,class:"q-payload-detail"},C1=["textContent"],S1=["textContent"],_1={class:"q-cell-progress"},N1={key:0,class:"q-progress-wrap"},R1=["textContent"],D1={class:"q-cell-actions"},T1=["onClick"],A1=["onClick"],O1={key:0,class:"q-detail-row"},P1={colspan:"7"},I1={class:"q-job-detail"},V1={class:"q-job-detail-grid"},q1={class:"q-job-detail-item"},M1={class:"q-job-detail-value"},U1=["textContent","href"],$1={class:"q-job-detail-item"},L1={class:"q-job-detail-value"},F1=["textContent"],B1={key:0,class:"q-job-detail-item"},H1=["textContent"],z1={key:1,class:"q-job-detail-item"},j1=["textContent"],G1={key:2,class:"q-job-detail-item"},W1={class:"q-job-detail-value"},K1={key:3,class:"q-job-detail-item"},Y1=["textContent"],J1={key:4,class:"q-job-detail-item"},Q1=["textContent"],X1={key:5,class:"q-job-detail-item"},Z1=["textContent"],x1={key:6,class:"q-job-detail-item"},ew=["textContent"],tw={key:7,class:"q-job-detail-item"},nw=["textContent"],ow={key:0,class:"q-job-detail-error"},sw=["textContent"],iw={key:1},rw=["textContent"],aw={class:"q-job-detail-actions"},lw=["onClick"],dw=["onClick"],uw=["href"],cw={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},pw={key:0},fw={key:1};function Vl(e,t){let o=ge("field");return l(),d("div",_b,[t[48]||(t[48]=n("div",{class:"paper-crumbs"},[v("Admin \xA0/\xA0 "),n("span",{class:"here"},"Queues")],-1)),n("div",Nb,[t[12]||(t[12]=n("h1",{class:"paper-page-title"},"Queues",-1)),n("div",Rb,[n("div",Db,[n("button",{class:P(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[0]||(t[0]=i=>e.setRange("1h"))},"1h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[1]||(t[1]=i=>e.setRange("6h"))},"6h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[2]||(t[2]=i=>e.setRange("24h"))},"24h",2),n("button",{class:P(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[3]||(t[3]=i=>e.setRange("7d"))},"7d",2)]),n("button",{class:"btn btn-sm",onClick:t[4]||(t[4]=i=>e.pauseAll())},"Pause all"),n("button",{class:"btn btn-sm btn-danger-soft",onClick:t[5]||(t[5]=i=>e.drainSelected())},"Drain "+u(e.selectedQueue),1)])]),t[49]||(t[49]=fe('',1)),p(" Queue overview cards "),n("div",Tb,[(l(!0),d(K,null,ne(e.queueList,(i,s)=>(l(),d("div",{class:P(["q-card",{selected:e.selectedQueue==i?.key,paused:i?.paused}]),role:"button",tabindex:"0","aria-pressed":e.selectedQueue===i.key,onKeydown:[An(de(r=>e.selectQueue(i.key),["prevent"]),["enter"]),An(de(r=>e.selectQueue(i.key),["prevent"]),["space"])],onClick:r=>e.selectQueue(i.key)},[n("div",Ob,[n("span",{class:P(["q-dot",{"q-dot-red":i?.paused||i?.counts?.failed>0}])},null,2),n("span",{class:"q-card-name",textContent:u(i?.label)},null,8,Pb)]),n("div",{class:"q-card-count",textContent:u((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0))},null,8,Ib),n("div",Vb,[n("span",null,"waiting \xB7 "+u(i?.counts?.active||0)+" active",1),i?.counts?.active?(l(),d("div",qb,[n("div",{class:"q-card-bar-fill",style:qe({width:i?.counts?.active/((i?.counts?.waiting||0)+(i?.counts?.active||0)+(i?.counts?.delayed||0)||1)*100+"%"})},null,4)])):p("v-if",!0)])],42,Ab))),256))]),p(" Detail: throughput chart + stats panel "),e.selectedStats?(l(),d("div",Mb,[n("div",Ub,[n("div",$b,[v(u(e.selectedQueue)+" \xB7 throughput ",1),n("span",Lb,[t[13]||(t[13]=n("span",{class:"q-legend-completed"},"\u25CF",-1)),t[14]||(t[14]=v(" completed ",-1)),t[15]||(t[15]=n("span",{class:"q-legend-failed"},"\u25CF",-1)),t[16]||(t[16]=v(" failed ",-1)),t[17]||(t[17]=n("span",{class:"q-legend-exec"},"- -",-1)),v(" avg time \xB7 "+u(e.range),1)])]),t[18]||(t[18]=n("div",{class:"q-chart-wrap"},[n("canvas",{id:"q-throughput-chart",height:"180"}),n("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}}),n("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}})],-1))]),n("div",Fb,[n("div",Bb,u(e.selectedQueue)+" \xB7 stats",1),n("div",Hb,[n("div",zb,[t[19]||(t[19]=n("div",{class:"q-stat-label"},"Waiting",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.waiting||0)},null,8,jb)]),n("div",Gb,[t[20]||(t[20]=n("div",{class:"q-stat-label"},"Active",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.active||0)},null,8,Wb)]),n("div",Kb,[t[21]||(t[21]=n("div",{class:"q-stat-label"},"Completed (24h)",-1)),n("div",{class:"q-stat-value",textContent:u(e.fmt?.number(e.selectedStats?.completed24h))},null,8,Yb)]),n("div",Jb,[t[22]||(t[22]=n("div",{class:"q-stat-label"},"Failed (24h)",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.failed24h||0)},null,8,Qb)]),n("div",Xb,[t[23]||(t[23]=n("div",{class:"q-stat-label"},"Delayed",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.counts?.delayed||0)},null,8,Zb)]),n("div",xb,[t[24]||(t[24]=n("div",{class:"q-stat-label"},"Workers",-1)),n("div",{class:"q-stat-value",textContent:u(e.selectedStats?.workers||0)},null,8,e1)])]),n("div",t1,[n("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=i=>e.togglePause())},u(e.selectedStats?.paused?"Resume":"Pause"),1),n("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=i=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,n1),n("button",{class:"btn btn-sm",onClick:t[8]||(t[8]=i=>e.emptyQueue())},"Empty")])])])):p("v-if",!0),e.actionError?(l(),d("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=i=>e.actionError=null)},[t[25]||(t[25]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),v(" "+u(e.actionError),1)])):p("v-if",!0),p(" Jobs table "),n("div",o1,[n("div",s1,[n("div",i1,"All jobs \xB7 "+u(e.selectedQueue),1),n("div",r1,[(l(!0),d(K,null,ne(e.allStates,(i,s)=>(l(),d("label",a1,[D(n("input",l1,null,512),[[o,{state:e.viewState,set:r=>{e.stateFilter[i]=r},value:e.stateFilter[i],form:null,options:{}}]]),n("span",{class:P("q-state-chip q-state-"+i)},u(i),3)]))),256))])]),n("div",d1,[D(n("input",u1,null,512),[[o,{state:e.viewState,set:i=>{e.query.search=i},value:e.query?.search,form:null,options:{}}]]),n("label",c1,[D(n("input",p1,null,512),[[o,{state:e.viewState,set:i=>{e.query.autoRefresh=i},value:e.query?.autoRefresh,form:null,options:{}}]]),t[26]||(t[26]=v(" Auto-refresh ",-1))]),n("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[10]||(t[10]=i=>e.refreshNow()),"aria-label":"Refresh"},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])]),e.filteredJobs().length>0?(l(),d("table",f1,[t[46]||(t[46]=n("thead",null,[n("tr",null,[n("th",null,"State"),n("th",null,"Job id"),n("th",null,"Payload"),n("th",null,"Attempts"),n("th",null,"Duration"),n("th",null,"Progress"),n("th")])],-1)),(l(!0),d(K,null,ne(e.filteredJobs(),(i,s)=>(l(),d("tbody",null,[n("tr",{style:{cursor:"pointer"},class:P({"q-row-failed":i?._state=="failed","q-row-expanded":e.expanded[i?.id]}),onClick:r=>e.toggleJob(i)},[n("td",m1,[n("span",{textContent:u(i?._state),class:P("q-state-badge q-state-"+i?._state)},null,10,v1),i?._state=="delayed"&&i?.delayUntil?(l(),d("span",{key:0,class:"q-delay-hint",textContent:u(e.delayCountdown(i?.delayUntil))},null,8,g1)):p("v-if",!0)]),n("td",y1,[(l(),d("svg",{class:P(["ui-icon q-chevron",{"q-chevron-open":e.expanded[i?.id]}]),"aria-hidden":"true"},[...t[28]||(t[28]=[n("use",{href:"#ui-icon-chevron-right"},null,-1)])],2)),n("a",{target:"_blank",textContent:u("job:"+e.fmt.limitTo(i?.id,6)),onClick:t[11]||(t[11]=r=>r.stopPropagation()),href:e.safeUrl("/r/"+i?.id)},null,8,b1)]),n("td",w1,[n("span",{textContent:u(i?.name||"anonymize")},null,8,k1),i?.data?.repoId&&i?.data?.repoId!==i?.name?(l(),d("span",E1," \xB7 "+u(i?.data?.repoId),1)):p("v-if",!0)]),n("td",{class:"q-cell-num",textContent:u(i?.attemptsMade||1)},null,8,C1),n("td",{class:"q-cell-num",textContent:u(e.jobDuration(i))},null,8,S1),n("td",_1,[e.jobProgressPct(i)!==null?(l(),d("div",N1,[n("div",{class:"q-progress-bar",style:qe({"--pct":e.jobProgressPct(i)+"%"})},null,4),n("span",{class:"q-progress-label",textContent:u(e.jobProgressPct(i)+"%")},null,8,R1)])):p("v-if",!0)]),n("td",D1,[i?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm btn-icon",title:"Retry",onClick:r=>{e.retryJob(i),r.stopPropagation()},"aria-label":"Retry job"},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])],8,T1)):p("v-if",!0),n("button",{class:"btn btn-sm btn-icon",title:"Remove","aria-label":"Remove job",onClick:r=>{e.removeJob(i),r.stopPropagation()}},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,A1)])],10,h1),e.expanded[i?.id]?(l(),d("tr",O1,[n("td",P1,[n("div",I1,[n("div",V1,[n("div",q1,[t[31]||(t[31]=n("span",{class:"q-job-detail-label"},"Job id",-1)),n("span",M1,[n("a",{target:"_blank",textContent:u(i?.id),href:e.safeUrl("/r/"+i?.id)},null,8,U1)])]),n("div",$1,[t[32]||(t[32]=n("span",{class:"q-job-detail-label"},"State",-1)),n("span",L1,[n("span",{textContent:u(i?._state),class:P("q-state-badge q-state-"+i?._state)},null,10,F1)])]),i?.data?.repoId?(l(),d("div",B1,[t[33]||(t[33]=n("span",{class:"q-job-detail-label"},"Repo ID",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.data?.repoId)},null,8,H1)])):p("v-if",!0),i?.timestamp?(l(),d("div",z1,[t[34]||(t[34]=n("span",{class:"q-job-detail-label"},"Created",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.timestamp))},null,8,j1)])):p("v-if",!0),i?._state=="delayed"&&i?.delayUntil?(l(),d("div",G1,[t[35]||(t[35]=n("span",{class:"q-job-detail-label"},"Retry at",-1)),n("span",W1,u(e.humanTime(i?.delayUntil))+" ("+u(e.delayCountdown(i?.delayUntil))+")",1)])):p("v-if",!0),i?.processedOn?(l(),d("div",K1,[t[36]||(t[36]=n("span",{class:"q-job-detail-label"},"Processed",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.processedOn))},null,8,Y1)])):p("v-if",!0),i?.finishedOn?(l(),d("div",J1,[t[37]||(t[37]=n("span",{class:"q-job-detail-label"},"Finished",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.humanTime(i?.finishedOn))},null,8,Q1)])):p("v-if",!0),i?.attemptsMade?(l(),d("div",X1,[t[38]||(t[38]=n("span",{class:"q-job-detail-label"},"Attempts",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.attemptsMade)},null,8,Z1)])):p("v-if",!0),i?.progress&&i?.progress?.status?(l(),d("div",x1,[t[39]||(t[39]=n("span",{class:"q-job-detail-label"},"Status",-1)),n("span",{class:"q-job-detail-value",textContent:u(i?.progress?.status)},null,8,ew)])):p("v-if",!0),e.jobProgressPct(i)!==null?(l(),d("div",tw,[t[40]||(t[40]=n("span",{class:"q-job-detail-label"},"Progress",-1)),n("span",{class:"q-job-detail-value",textContent:u(e.jobProgressPct(i)+"%")},null,8,nw)])):p("v-if",!0)]),i?.failedReason?(l(),d("div",ow,[t[41]||(t[41]=n("span",{class:"q-job-detail-label"},"Error",-1)),n("div",{class:"q-error-reason",textContent:u(i?.failedReason)},null,8,sw)])):p("v-if",!0),i?.stacktrace?.length?(l(),d("div",iw,[t[42]||(t[42]=n("span",{class:"q-job-detail-label"},"Stacktrace",-1)),(l(!0),d(K,null,ne(i?.stacktrace,(r,a)=>(l(),d("pre",{class:"q-error-stack",key:a},[n("code",{textContent:u(r)},null,8,rw)]))),128))])):p("v-if",!0),n("div",aw,[i?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",onClick:r=>e.retryJob(i)},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Retry",-1)])],8,lw)):p("v-if",!0),n("button",{class:"btn btn-sm",onClick:r=>e.removeJob(i)},[...t[44]||(t[44]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove",-1)])],8,dw),n("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+i?.id)},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1),v(" View repo",-1)])],8,uw)])])])])):p("v-if",!0)]))),256))])):p("v-if",!0),e.filteredJobs().length==0?(l(),d("div",cw,[t[47]||(t[47]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1)),e.query?.search?p("v-if",!0):(l(),d("span",pw,"No jobs in the "+u(e.selectedQueue)+" queue.",1)),e.query?.search?(l(),d("span",fw,"No jobs match the current filters.")):p("v-if",!0)])):p("v-if",!0)])])}var hw={class:"container paper-page admin-page"},mw={class:"admin-summary"},vw={class:"summary-total"},gw={class:"summary-meta"},yw=["aria-pressed"],bw={class:"count"},ww=["aria-pressed"],kw={class:"count"},Ew=["aria-pressed"],Cw={class:"count"},Sw=["aria-pressed"],_w={class:"count"},Nw=["aria-pressed"],Rw={class:"count"},Dw={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},Tw={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},Aw={class:"admin-filter-row"},Ow={class:"search-wrap"},Pw={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},Iw={key:0,class:"admin-search-hint"},Vw={class:"admin-filter-inline"},qw={type:"text",class:"form-control form-control-sm",placeholder:"username"},Mw={class:"admin-filter-inline"},Uw={type:"text",class:"form-control form-control-sm",placeholder:"ID"},$w={class:"admin-filter-inline","aria-label":"Pagination"},Lw=["disabled"],Fw={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},Bw=["disabled"],Hw={key:0,class:"admin-filter-row"},zw={class:"admin-active-chips"},jw={class:"key"},Gw=["onClick"],Ww={key:1,class:"bulk-bar"},Kw={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},Yw={class:"paper-table-head",role:"row"},Jw={role:"columnheader",style:{width:"28px"}},Qw=["checked"],Xw={role:"columnheader"},Zw={role:"columnheader"},xw={role:"columnheader",class:"num"},ek={role:"columnheader"},tk={role:"cell",style:{width:"28px"}},nk={type:"checkbox","aria-label":"Select repository"},ok={class:"cell-anon",role:"cell"},sk={class:"anon-text"},ik=["textContent","href"],rk={class:"anon-sub"},ak=["textContent","href"],lk={key:0},dk=["textContent","href"],uk={key:1},ck=["textContent","href"],pk={key:2},fk={class:"cell-status",role:"cell"},hk={class:"status-line"},mk=["textContent"],vk=["textContent","title"],gk={class:"cell-views num",role:"cell"},yk=["textContent"],bk={class:"cell-expires",role:"cell"},wk=["textContent"],kk={class:"cell-actions",role:"cell"},Ek={class:"dropdown"},Ck={class:"dropdown-menu dropdown-menu-right"},Sk=["href"],_k=["href"],Nk=["href"],Rk=["onClick"],Dk=["onClick"],Tk=["onClick"],Ak=["onClick"],Ok=["onClick"],Pk=["onClick"],Ik={key:0,class:"paper-table-empty"},Vk={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},qk={style:{"font-size":"12px",color:"var(--ink-muted)"}},Mk={key:0,class:"pagination-compact"},Uk=["disabled"],$k=["max"],Lk=["disabled"],Fk={class:"admin-filter-inline"},Bk={class:"form-control form-control-sm"};function ql(e,t){let o=ge("field"),i=ge("form");return l(),d("div",hw,[t[69]||(t[69]=fe('
Admin \xA0/\xA0 Repositories

Repositories

',3)),n("div",mw,[n("span",vw,u(e.total>=0?e.fmt.number(e.total):"\u2026"),1),n("span",gw,u(e.fmt?.humanFileSize(e.totalSize))+" on disk",1),n("button",{type:"button",class:P(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[18]||(t[18]=v("Ready ",-1)),n("span",bw,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,yw),n("button",{type:"button",class:P(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[19]||(t[19]=v("Preparing ",-1)),n("span",kw,u(e.fmt?.number(e.statusCountFor("preparing")+e.statusCountFor("download"))),1)],10,ww),n("button",{type:"button",class:P(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[20]||(t[20]=v("Errored ",-1)),n("span",Cw,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,Ew),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[21]||(t[21]=v("Expired ",-1)),n("span",_w,u(e.fmt?.number(e.statusCountFor("expired")+e.statusCountFor("expiring"))),1)],10,Sw),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[22]||(t[22]=v("Removed ",-1)),n("span",Rw,u(e.fmt?.number(e.statusCountFor("removed")+e.statusCountFor("removing"))),1)],10,Nw)]),e.fetchError?(l(),d("div",Dw,[t[23]||(t[23]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",Tw,[p(" Row 1: search + scoped inputs + headline actions "),n("div",Aw,[n("div",Ow,[D(n("input",Pw,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",Iw,"/"))]),n("span",Vw,[t[24]||(t[24]=n("label",null,"Owner",-1)),D(n("input",qw,null,512),[[o,{state:e.viewState,set:s=>{e.query.owner=s},value:e.query?.owner,form:null,options:{}}]])]),n("span",Mw,[t[25]||(t[25]=n("label",null,"Conference",-1)),D(n("input",Uw,null,512),[[o,{state:e.viewState,set:s=>{e.query.conference=s},value:e.query?.conference,form:null,options:{}}]])]),t[29]||(t[29]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export",-1)])]),n("span",$w,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,Lw),n("span",Fw,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Bw)])]),p(" Row 2: appears only when there are active filter chips "),e.chips?.length?(l(),d("div",Hw,[n("div",zw,[(l(!0),d(K,null,ne(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",jw,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button","aria-label":"Remove filter",onClick:a=>e.clearFilter(s.key)},[...t[30]||(t[30]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,Gw)]))),128))])])):p("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",Ww,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[31]||(t[31]=v(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=s=>e.bulkRefresh())},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[9]||(t[9]=s=>e.bulkRemoveCache())},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),v(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[10]||(t[10]=s=>e.clearSelection())},"Clear")])):p("v-if",!0),n("div",Kw,[n("div",Yw,[n("div",Jw,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[11]||(t[11]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,Qw)]),n("div",Xw,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[12]||(t[12]=s=>e.sortBy("source.repositoryName"))},[t[35]||(t[35]=v("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",Zw,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[13]||(t[13]=s=>e.sortBy("status"))},[t[37]||(t[37]=v("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[36]||(t[36]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",xw,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[14]||(t[14]=s=>e.sortBy("pageView"))},[t[39]||(t[39]=v("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[38]||(t[38]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",ek,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[15]||(t[15]=s=>e.sortBy("anonymizeDate"))},[t[41]||(t[41]=v("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[40]||(t[40]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[42]||(t[42]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(K,null,ne(e.filteredRepositories,(s,r)=>(l(),d("div",{class:P(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[n("div",tk,[D(n("input",nk,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),n("div",ok,[t[47]||(t[47]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",sk,[n("a",{class:"repo-name",target:"_blank",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,ik),n("div",rk,[n("a",{textContent:u(s?.source?.repositoryName),href:e.safeUrl("https://github.com/"+s?.source?.repositoryName+"/")},null,8,ak),s?.options?.update?(l(),d("span",lk,[t[43]||(t[43]=v("\xA0\xB7\xA0",-1)),n("a",{textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,dk)])):p("v-if",!0),s?.options?.update?p("v-if",!0):(l(),d("span",uk,[t[44]||(t[44]=v("\xA0\xB7\xA0@",-1)),n("a",{textContent:u(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,ck)])),s?.conference?(l(),d("span",pk,[t[45]||(t[45]=v("\xA0\xB7\xA0",-1)),t[46]||(t[46]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),v(" "+u(s?.conference),1)])):p("v-if",!0),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.humanFileSize(s?.size?.storage)),1),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.number(s?.options?.terms?.length))+" "+u(s?.options?.terms?.length===1?"term":"terms"),1)])])]),n("div",fk,[n("span",hk,[n("span",{class:P(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,mk)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:u(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,vk)):p("v-if",!0)]),n("div",gk,[t[48]||(t[48]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[49]||(t[49]=v()),n("span",{textContent:u(e.fmt?.number(s?.pageView||0))},null,8,yk)]),n("div",bk,[t[50]||(t[50]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[51]||(t[51]=v()),n("span",{textContent:u(e.fmt?.humanTime(s?.anonymizeDate))},null,8,wk)]),n("div",kk,[n("div",Ek,[t[63]||(t[63]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",Ck,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[52]||(t[52]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit",-1)])],8,Sk),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[53]||(t[53]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View repo",-1)])],8,_k),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[54]||(t[54]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),v(" View page",-1)])],8,Nk)):p("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.fetchGithubInfo(s),["prevent"])},[...t[55]||(t[55]=[n("i",{class:"fab fa-github"},null,-1),v(" Live GitHub info",-1)])],8,Rk),t[61]||(t[61]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[56]||(t[56]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force update",-1)])],8,Dk),[[W,s?.status=="ready"||s?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Enable",-1)])],8,Tk),[[W,s?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.showStatusMessage(s),["prevent"])},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),v(" View status message",-1)])],8,Ak),[[W,s?.statusMessage]]),t[62]||(t[62]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removeCache(s),["prevent"])},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),v(" Remove cache",-1)])],8,Ok),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeRepository(s),["prevent"])},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove",-1)])],8,Pk),[[W,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",Ik,[...t[64]||(t[64]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No repositories match the current filters.",-1)])])):p("v-if",!0)]),n("div",Vk,[n("span",qk,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",Mk,[n("button",{class:"btn btn-sm",onClick:t[16]||(t[16]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[65]||(t[65]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),v(" Previous ",-1)])],8,Uk),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,$k),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[17]||(t[17]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[66]||(t[66]=[v(" Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Lk)])):p("v-if",!0),n("span",Fk,[t[68]||(t[68]=n("label",null,"Per page",-1)),D((l(),d("select",Bk,[...t[67]||(t[67]=[fe('',5)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var Hk={class:"container paper-page admin-page"},zk={class:"paper-crumbs"},jk={class:"here"},Gk={class:"paper-page-title"},Wk={key:0,class:"user-detail-card"},Kk={class:"user-header"},Yk=["src"],Jk={class:"status-dot-wrap"},Qk=["textContent"],Xk={key:0,class:"type-badge type-repo"},Zk={class:"user-actions",style:{"margin-top":"4px"}},xk={class:"user-detail-grid"},e0={class:"detail-value"},t0={class:"detail-value"},n0={key:0,class:"detail-value",style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},o0={key:1,class:"detail-value text-muted"},s0={class:"detail-value"},i0=["href"],r0={class:"detail-value"},a0={class:"detail-value"},l0={key:0},d0={key:1,class:"text-muted"},u0={class:"detail-value"},c0={key:0,style:{"margin-top":"20px"}},p0={class:"paper-table w-100",style:{"margin-top":"10px"}},f0={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},h0={class:"cell-anon",role:"cell"},m0={class:"anon-text"},v0=["textContent"],g0={class:"cell-expires",role:"cell"},y0={key:1,class:"admin-section-header"},b0={class:"section-count"},w0={key:2,class:"user-detail-card"},k0={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},E0={key:0,class:"alert alert-warning",role:"alert"},C0={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},S0={key:1,class:"paper-table w-100"},_0={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},N0=["textContent"],R0=["textContent"],D0={role:"cell"},T0={key:0},A0={key:1,class:"text-muted"},O0={role:"cell"},P0=["onClick"],I0={key:2,class:"paper-table-empty"},V0={class:"admin-section-header"},q0={class:"section-count"},M0={class:"admin-summary"},U0={class:"summary-total"},$0=["aria-pressed"],L0={class:"count"},F0=["aria-pressed"],B0={class:"count"},H0=["aria-pressed"],z0={class:"count"},j0=["aria-pressed"],G0={class:"count"},W0=["aria-pressed"],K0={class:"count"},Y0={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},J0={class:"admin-filter-row"},Q0={class:"search-wrap"},X0={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},Z0={key:3,class:"bulk-bar"},x0={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},eE={class:"paper-table-head",role:"row"},tE={role:"columnheader",style:{width:"28px"}},nE=["checked"],oE={role:"columnheader"},sE={role:"columnheader"},iE={role:"columnheader",class:"num"},rE={role:"columnheader"},aE={role:"cell",style:{width:"28px"}},lE={type:"checkbox","aria-label":"Select repository"},dE={class:"cell-anon",role:"cell"},uE={class:"anon-text"},cE=["textContent","href"],pE={class:"anon-sub"},fE=["textContent","href"],hE={key:0},mE=["textContent","href"],vE={key:1},gE=["textContent","href"],yE={key:2},bE={class:"cell-status",role:"cell"},wE={class:"status-line"},kE=["textContent"],EE=["textContent","title"],CE=["textContent"],SE=["textContent"],_E={class:"cell-actions",role:"cell"},NE={class:"dropdown"},RE={class:"dropdown-menu dropdown-menu-right"},DE=["href"],TE=["href"],AE=["href"],OE=["onClick"],PE=["onClick"],IE=["onClick"],VE=["onClick"],qE=["onClick"],ME=["onClick"],UE={key:0,class:"paper-table-empty"};function Ml(e,t){let o=ge("field"),i=ge("form");return l(),d("div",Hk,[n("div",zk,[t[22]||(t[22]=n("a",{href:"/admin/"},"Admin",-1)),t[23]||(t[23]=v(" \xA0/\xA0 ",-1)),t[24]||(t[24]=n("a",{href:"/admin/users"},"Users",-1)),t[25]||(t[25]=v(" \xA0/\xA0 ",-1)),n("span",jk,u(e.userInfo?.username||"Profile"),1)]),n("h1",Gk,u(e.userInfo?.username||"User"),1),t[87]||(t[87]=fe('',1)),e.userInfo?(l(),d("div",Wk,[n("div",Kk,[e.userInfo?.photo?(l(),d("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,Yk)):p("v-if",!0),n("div",null,[n("h2",null,[v(u(e.userInfo?.username)+" ",1),n("span",Jk,[n("span",{class:P(["status-dot",{"status-ready":e.userInfo?.status=="active","status-removed":e.userInfo?.status!="active"}])},null,2),n("span",{textContent:u(e.fmt?.title(e.userInfo?.status))},null,8,Qk)]),e.userInfo?.isAdmin?(l(),d("span",Xk,"Admin")):p("v-if",!0)]),n("div",Zk,[e.userInfo?.status!=="banned"?(l(),d("button",{key:0,class:"btn btn-sm text-danger",onClick:t[0]||(t[0]=s=>e.banUser())},[...t[26]||(t[26]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),v(" Ban",-1)])])):p("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(l(),d("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=s=>e.activateUser())},[...t[27]||(t[27]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Activate",-1)])])):p("v-if",!0),e.userInfo?.isAdmin?p("v-if",!0):(l(),d("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=s=>e.promoteUser())},[...t[28]||(t[28]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-shield"})],-1),v(" Promote to admin",-1)])])),e.userInfo?.isAdmin?(l(),d("button",{key:3,class:"btn btn-sm text-danger",onClick:t[3]||(t[3]=s=>e.demoteUser())},[...t[29]||(t[29]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user-minus"})],-1),v(" Remove admin",-1)])])):p("v-if",!0)])])]),n("div",xk,[t[32]||(t[32]=n("div",{class:"detail-label"},"ID",-1)),n("div",e0,u(e.userInfo?._id),1),t[33]||(t[33]=n("div",{class:"detail-label"},"Email",-1)),n("div",t0,u(e.userInfo?.emails?.[0]?.email),1),t[34]||(t[34]=n("div",{class:"detail-label"},"Access token",-1)),e.userInfo?.accessTokens?.github?(l(),d("div",n0,u(e.userInfo?.accessTokens?.github),1)):p("v-if",!0),e.userInfo?.accessTokens?.github?p("v-if",!0):(l(),d("div",o0,"None stored")),t[35]||(t[35]=n("div",{class:"detail-label"},"GitHub",-1)),n("div",s0,[n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[30]||(t[30]=n("i",{class:"fab fa-github"},null,-1)),v(" "+u(e.userInfo?.username),1)],8,i0)]),t[36]||(t[36]=n("div",{class:"detail-label"},"Created",-1)),n("div",r0,u(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[37]||(t[37]=n("div",{class:"detail-label"},"Last connection",-1)),n("div",a0,[e.userInfo?.accessTokenDates?.github?(l(),d("span",l0,u(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):p("v-if",!0),e.userInfo?.accessTokenDates?.github?p("v-if",!0):(l(),d("span",d0,"never"))]),t[38]||(t[38]=n("div",{class:"detail-label"},"GitHub repos",-1)),n("div",u0,[v(u(e.userInfo?.repositories?.length)+" repositories ",1),n("button",{class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=s=>e.showRepos=!e.showRepos)},u(e.showRepos?"Hide":"Show"),1),n("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=s=>e.getGitHubRepositories())},[...t[31]||(t[31]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Refresh ",-1)])])])]),e.showRepos?(l(),d("div",c0,[t[41]||(t[41]=n("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),n("div",p0,[(l(!0),d(K,null,ne(e.userInfo?.repositories,(s,r)=>(l(),d("div",f0,[n("div",h0,[t[39]||(t[39]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",m0,[n("span",{class:"repo-name",textContent:u(s?.name)},null,8,v0)])]),n("div",g0,[t[40]||(t[40]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-database"})],-1)),v(" "+u(e.fmt?.humanFileSize(s?.size)),1)])]))),256))])])):p("v-if",!0)])):p("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",y0,[t[42]||(t[42]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-key"})]),v(" API tokens")],-1)),n("span",b0,u(e.tokens?.length),1)])):p("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",w0,[t[48]||(t[48]=n("p",{class:"paper-page-lede"},[v("Personal API tokens for this admin account. Send as "),n("code",null,"Authorization: Bearer "),v(" to authenticate without GitHub OAuth (useful for development).")],-1)),D((l(),d("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=de(s=>e.submitForm(s,()=>{e.createToken()}),["prevent"]))},[D(n("input",k0,null,512),[[o,{state:e.viewState,set:s=>{e.tokenForm.name=s},value:e.tokenForm?.name,form:null,options:{}}]]),t[43]||(t[43]=n("button",{type:"submit",class:"btn btn-ink"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})]),v(" Generate")],-1))],32)),[[i,e.viewState]]),e.tokenForm?.plaintext?(l(),d("div",E0,[t[44]||(t[44]=n("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),n("pre",C0,u(e.tokenForm?.plaintext),1),n("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=s=>e.tokenForm.plaintext=null)},"Dismiss")])):p("v-if",!0),e.tokens?.length?(l(),d("div",S0,[t[46]||(t[46]=n("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[n("div",{role:"columnheader"},"Name"),n("div",{role:"columnheader"},"Created"),n("div",{role:"columnheader"},"Last used"),n("div",{role:"columnheader","aria-label":"Actions"})],-1)),(l(!0),d(K,null,ne(e.tokens,(s,r)=>(l(),d("div",_0,[n("div",{role:"cell",textContent:u(s?.name)},null,8,N0),n("div",{role:"cell",textContent:u(e.fmt?.humanTime(s?.createdAt))},null,8,R0),n("div",D0,[s?.lastUsedAt?(l(),d("span",T0,u(e.fmt?.humanTime(s?.lastUsedAt)),1)):p("v-if",!0),s?.lastUsedAt?p("v-if",!0):(l(),d("span",A0,"never"))]),n("div",O0,[n("button",{class:"btn btn-sm text-danger btn-icon",title:"Revoke","aria-label":"Revoke token",onClick:a=>e.revokeToken(s)},[...t[45]||(t[45]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)])],8,P0)])]))),256))])):p("v-if",!0),e.tokens?.length?p("v-if",!0):(l(),d("div",I0,[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No tokens yet.",-1)])]))])):p("v-if",!0),n("div",V0,[t[49]||(t[49]=n("h2",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})]),v(" Anonymized repositories")],-1)),n("span",q0,u(e.repositories?.length),1)]),n("div",M0,[n("span",U0,u(e.fmt?.number(e.repositories?.length)),1),n("button",{type:"button",class:P(["summary-pill ok",{active:e.filters?.status?.ready===!1}]),title:"Toggle ready filter",onClick:t[8]||(t[8]=s=>e.filters.status.ready=!e.filters.status.ready),"aria-pressed":e.filters?.status?.ready===!1},[t[50]||(t[50]=v("Ready ",-1)),n("span",L0,u(e.fmt?.number(e.statusCountFor("ready"))),1)],10,$0),n("button",{type:"button",class:P(["summary-pill warn",{active:e.filters?.status?.preparing===!1}]),title:"Toggle preparing filter",onClick:t[9]||(t[9]=s=>e.filters.status.preparing=!e.filters.status.preparing),"aria-pressed":e.filters?.status?.preparing===!1},[t[51]||(t[51]=v("Preparing ",-1)),n("span",B0,u(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,F0),n("button",{type:"button",class:P(["summary-pill error",{active:e.filters?.status?.error===!1}]),title:"Toggle errored filter",onClick:t[10]||(t[10]=s=>e.filters.status.error=!e.filters.status.error),"aria-pressed":e.filters?.status?.error===!1},[t[52]||(t[52]=v("Errored ",-1)),n("span",z0,u(e.fmt?.number(e.statusCountFor("error"))),1)],10,H0),n("button",{type:"button",class:P(["summary-pill",{active:e.filters?.status?.expired===!1}]),title:"Toggle expired filter",onClick:t[11]||(t[11]=s=>e.filters.status.expired=!e.filters.status.expired),"aria-pressed":e.filters?.status?.expired===!1},[t[53]||(t[53]=v("Expired ",-1)),n("span",G0,u(e.fmt?.number(e.statusCountFor("expired"))),1)],10,j0),n("button",{type:"button",class:P(["summary-pill",{active:e.filters?.status?.removed===!1}]),title:"Toggle removed filter",onClick:t[12]||(t[12]=s=>e.filters.status.removed=!e.filters.status.removed),"aria-pressed":e.filters?.status?.removed===!1},[t[54]||(t[54]=v("Removed ",-1)),n("span",K0,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,W0)]),D((l(),d("form",Y0,[n("div",J0,[n("div",Q0,[D(n("input",X0,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),t[56]||(t[56]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[13]||(t[13]=s=>e.exportCsv())},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export",-1)])])])])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",Z0,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[57]||(t[57]=v(" selected",-1))]),n("button",{class:"btn btn-sm",type:"button",onClick:t[14]||(t[14]=s=>e.bulkRefresh())},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force refresh",-1)])]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[15]||(t[15]=s=>e.bulkRemoveCache())},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),v(" Remove cache",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[16]||(t[16]=s=>e.clearSelection())},"Clear")])):p("v-if",!0),n("div",x0,[n("div",eE,[n("div",tE,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[17]||(t[17]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,nE)]),n("div",oE,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[18]||(t[18]=s=>e.sortBy("source.repositoryName"))},[t[61]||(t[61]=v("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[60]||(t[60]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",sE,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[19]||(t[19]=s=>e.sortBy("status"))},[t[63]||(t[63]=v("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[62]||(t[62]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",iE,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[20]||(t[20]=s=>e.sortBy("pageView"))},[t[65]||(t[65]=v("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[64]||(t[64]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),n("div",rE,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[21]||(t[21]=s=>e.sortBy("anonymizeDate"))},[t[67]||(t[67]=v("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[66]||(t[66]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[68]||(t[68]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(K,null,ne(e.filteredRepositories,(s,r)=>(l(),d("div",{class:P(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[n("div",aE,[D(n("input",lE,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),n("div",dE,[t[73]||(t[73]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",uE,[n("a",{class:"repo-name",target:"_blank",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,cE),n("div",pE,[n("a",{textContent:u(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,fE),s?.options?.update?(l(),d("span",hE,[t[69]||(t[69]=v("\xA0\xB7\xA0",-1)),n("a",{textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,mE)])):p("v-if",!0),s?.options?.update?p("v-if",!0):(l(),d("span",vE,[t[70]||(t[70]=v("\xA0\xB7\xA0@",-1)),n("a",{textContent:u(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,gE)])),s?.conference?(l(),d("span",yE,[t[71]||(t[71]=v("\xA0\xB7\xA0",-1)),t[72]||(t[72]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),v(" "+u(s?.conference),1)])):p("v-if",!0),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.humanFileSize(s?.size?.storage)),1),n("span",null,"\xA0\xB7\xA0"+u(e.fmt?.number(s?.options?.terms?.length))+" "+u(s?.options?.terms?.length===1?"term":"terms"),1)])])]),n("div",bE,[n("span",wE,[n("span",{class:P(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,kE)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:u(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,EE)):p("v-if",!0)]),n("div",{class:"cell-views num",role:"cell",textContent:u(e.fmt?.number(s?.pageView||0))},null,8,CE),n("div",{class:"cell-expires",role:"cell",textContent:u(e.fmt?.humanTime(s?.anonymizeDate))},null,8,SE),n("div",_E,[n("div",NE,[t[85]||(t[85]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",RE,[n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit",-1)])],8,DE),n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View repo",-1)])],8,TE),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),v(" View page",-1)])],8,AE)):p("v-if",!0),n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.fetchGithubInfo(s),["prevent"])},[...t[77]||(t[77]=[n("i",{class:"fab fa-github"},null,-1),v(" Live GitHub info",-1)])],8,OE),t[83]||(t[83]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[78]||(t[78]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force update",-1)])],8,PE),[[W,s?.status=="ready"||s?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[79]||(t[79]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Enable",-1)])],8,IE),[[W,s?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.showStatusMessage(s),["prevent"])},[...t[80]||(t[80]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1),v(" View status message",-1)])],8,VE),[[W,s?.statusMessage]]),t[84]||(t[84]=n("div",{class:"dropdown-divider"},null,-1)),n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removeCache(s),["prevent"])},[...t[81]||(t[81]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-broom"})],-1),v(" Remove cache",-1)])],8,qE),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeRepository(s),["prevent"])},[...t[82]||(t[82]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove",-1)])],8,ME),[[W,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",UE,[...t[86]||(t[86]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No repositories match the current filters.",-1)])])):p("v-if",!0)])])}var $E={class:"container paper-page admin-page"},LE={class:"admin-summary"},FE={class:"summary-total"},BE=["aria-pressed"],HE={class:"count"},zE=["aria-pressed"],jE={class:"count"},GE=["aria-pressed"],WE={class:"count"},KE={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},YE={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},JE={class:"admin-filter-row"},QE={class:"search-wrap"},XE={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},ZE={key:0,class:"admin-search-hint"},xE={class:"admin-filter-inline"},eC={class:"form-control form-control-sm"},tC={class:"admin-filter-inline","aria-label":"Pagination"},nC=["disabled"],oC={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},sC=["disabled"],iC={key:0,class:"admin-filter-row"},rC={class:"admin-active-chips"},aC={class:"key"},lC=["onClick"],dC={key:1,class:"bulk-bar"},uC={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},cC={class:"paper-table-head admin-users-row",role:"row"},pC={role:"columnheader",style:{width:"28px"}},fC=["checked"],hC={role:"columnheader"},mC={role:"columnheader"},vC={role:"cell",style:{width:"28px"}},gC={type:"checkbox","aria-label":"Select user"},yC={class:"cell-anon",role:"cell"},bC=["src"],wC={class:"anon-text"},kC=["textContent","href"],EC={class:"anon-sub"},CC={key:0},SC=["href"],_C={key:1},NC={class:"cell-views num",role:"cell"},RC=["textContent","href"],DC={class:"cell-status",role:"cell"},TC=["textContent"],AC={class:"cell-status",role:"cell"},OC={key:0,class:"type-badge type-repo"},PC={key:1,class:"empty-dash"},IC={class:"cell-actions",role:"cell"},VC={class:"dropdown"},qC={class:"dropdown-menu dropdown-menu-right"},MC=["href"],UC=["href"],$C=["onClick"],LC=["onClick"],FC={key:0,class:"paper-table-empty"},BC={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},HC={style:{"font-size":"12px",color:"var(--ink-muted)"}},zC={key:0,class:"pagination-compact"},jC=["disabled"],GC=["max"],WC=["disabled"],KC={class:"admin-filter-inline"},YC={class:"form-control form-control-sm"};function Ul(e,t){let o=ge("field"),i=ge("form");return l(),d("div",$E,[t[46]||(t[46]=fe('
Admin \xA0/\xA0 Users

Users

',3)),n("div",LE,[n("span",FE,u(e.total>=0?e.fmt.number(e.total):"\u2026"),1),n("button",{type:"button",class:P(["summary-pill ok",{active:e.query?.status=="active"}]),onClick:t[0]||(t[0]=s=>{e.query.status=e.query.status=="active"?"":"active",e.query.page=1}),"aria-pressed":e.query?.status=="active"},[t[13]||(t[13]=v("Active ",-1)),n("span",HE,u(e.fmt?.number(e.statusCountFor("active"))),1)],10,BE),n("button",{type:"button",class:P(["summary-pill error",{active:e.query?.status=="banned"}]),onClick:t[1]||(t[1]=s=>{e.query.status=e.query.status=="banned"?"":"banned",e.query.page=1}),"aria-pressed":e.query?.status=="banned"},[t[14]||(t[14]=v("Banned ",-1)),n("span",jE,u(e.fmt?.number(e.statusCountFor("banned"))),1)],10,zE),n("button",{type:"button",class:P(["summary-pill",{active:e.query?.status=="removed"}]),onClick:t[2]||(t[2]=s=>{e.query.status=e.query.status=="removed"?"":"removed",e.query.page=1}),"aria-pressed":e.query?.status=="removed"},[t[15]||(t[15]=v("Removed ",-1)),n("span",WE,u(e.fmt?.number(e.statusCountFor("removed"))),1)],10,GE)]),e.fetchError?(l(),d("div",KE,[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",YE,[n("div",JE,[n("div",QE,[D(n("input",XE,null,512),[[o,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",ZE,"/"))]),n("span",xE,[t[18]||(t[18]=n("label",null,"Role",-1)),D((l(),d("select",eC,[...t[17]||(t[17]=[n("option",{value:""},"Any",-1),n("option",{value:"admin"},"Admin",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.role=s},value:e.query?.role,form:null,options:{}}]])]),t[22]||(t[22]=n("span",{class:"admin-filter-spacer"},null,-1)),n("button",{class:"btn btn-sm",type:"button",onClick:t[3]||(t[3]=s=>e.exportCsv())},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-export"})],-1),v(" Export",-1)])]),n("span",tC,[n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[4]||(t[4]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,nC),n("span",oC,u(e.query?.page)+"/"+u(e.totalPage||1),1),n("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[5]||(t[5]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,sC)])]),e.chips?.length?(l(),d("div",iC,[n("div",rC,[(l(!0),d(K,null,ne(e.chips,(s,r)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[n("span",aC,u(s?.label),1),n("span",null,u(s?.value),1),n("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,lC)]))),128))])])):p("v-if",!0)])),[[i,e.viewState]]),e.selectedCount()>0?(l(),d("div",dC,[n("span",null,[n("strong",null,u(e.selectedCount()),1),t[24]||(t[24]=v(" selected",-1))]),n("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[6]||(t[6]=s=>e.bulkBan())},[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),v(" Ban",-1)])]),n("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=s=>{e.selected={},e.allSelected=!1})},"Clear")])):p("v-if",!0),n("div",uC,[n("div",cC,[n("div",pC,[n("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[8]||(t[8]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,fC)]),n("div",hC,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="username"}]),onClick:t[9]||(t[9]=s=>e.sortBy("username"))},[t[27]||(t[27]=v("User ",-1)),e.sortIcon("username")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("username")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[26]||(t[26]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[30]||(t[30]=n("div",{role:"columnheader",class:"num"},"Repos",-1)),n("div",mC,[n("button",{type:"button",class:P(["sortable",{active:e.query?.sort=="status"}]),onClick:t[10]||(t[10]=s=>e.sortBy("status"))},[t[29]||(t[29]=v("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:P(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[31]||(t[31]=n("div",{role:"columnheader"},"Role",-1)),t[32]||(t[32]=n("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(K,null,ne(e.filteredUsers,(s,r)=>(l(),d("div",{class:P(["paper-table-row admin-users-row",{"row-selected":e.selected[s?.username]}]),role:"row"},[n("div",vC,[D(n("input",gC,null,512),[[o,{state:e.viewState,set:a=>{e.selected[s.username]=a},value:e.selected[s?.username],form:null,options:{}}]])]),n("div",yC,[s?.photo?(l(),d("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(s?.photo)},null,8,bC)):p("v-if",!0),n("div",wC,[n("a",{class:"repo-name",textContent:u(s?.username),href:e.safeUrl("/admin/users/"+s?.username)},null,8,kC),n("div",EC,[s?.emails?.[0]?.email?(l(),d("span",CC,u(s?.emails?.[0]?.email)+" \xB7 ",1)):p("v-if",!0),n("a",{target:"_blank",href:e.safeUrl("https://github.com/"+s?.username)},[t[33]||(t[33]=n("i",{class:"fab fa-github"},null,-1)),v(" "+u(s?.username),1)],8,SC),s?.dateOfEntry?(l(),d("span",_C,"\xA0\xB7\xA0Joined "+u(e.fmt?.humanTime(s?.dateOfEntry)),1)):p("v-if",!0)])])]),n("div",NC,[t[34]||(t[34]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),n("a",{title:"Show this user's repositories",textContent:u(e.fmt?.number(s?.repoCount||0)),href:e.safeUrl("/admin/repositories?owner="+s?.username)},null,8,RC)]),n("div",DC,[n("span",{class:P(["status-dot",{"status-ready":s?.status=="active","status-removed":s?.status=="removed"||s?.status=="banned"}])},null,2),n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,TC)]),n("div",AC,[s?.isAdmin?(l(),d("span",OC,"Admin")):p("v-if",!0),s?.isAdmin?p("v-if",!0):(l(),d("span",PC,"\u2014"))]),n("div",IC,[n("div",VC,[t[40]||(t[40]=n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})])],-1)),n("div",qC,[n("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+s?.username)},[...t[35]||(t[35]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View details",-1)])],8,MC),n("a",{class:"dropdown-item",href:e.safeUrl("/admin/repositories?owner="+s?.username)},[...t[36]||(t[36]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),v(" View repositories",-1)])],8,UC),t[39]||(t[39]=n("div",{class:"dropdown-divider"},null,-1)),D(n("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.banUser(s),["prevent"])},[...t[37]||(t[37]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-ban"})],-1),v(" Ban",-1)])],8,$C),[[W,s?.status=="active"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.activateUser(s),["prevent"])},[...t[38]||(t[38]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Activate",-1)])],8,LC),[[W,s?.status=="removed"||s?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(l(),d("div",FC,[...t[41]||(t[41]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No users match the current filters.",-1)])])):p("v-if",!0)]),n("div",BC,[n("span",HC,u(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",zC,[n("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[42]||(t[42]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1),v(" Previous",-1)])],8,jC),D(n("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,GC),[[o,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),n("span",null,"of "+u(e.totalPage),1),n("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[43]||(t[43]=[v("Next ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,WC)])):p("v-if",!0),n("span",KC,[t[45]||(t[45]=n("label",null,"Per page",-1)),D((l(),d("select",YC,[...t[44]||(t[44]=[n("option",{value:"10"},"10",-1),n("option",{value:"25"},"25",-1),n("option",{value:"50"},"50",-1),n("option",{value:"100"},"100",-1)])])),[[o,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var JC={class:"anonymize-landing"},QC={class:"anonymize-landing-inner"},XC={class:"form-group mt-4 mb-2"},ZC={class:"source-url-label-row"},xC={key:0,class:"repo-access","aria-label":"GitHub access"},e2={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},t2=["aria-pressed","disabled"],n2=["aria-pressed","disabled"],o2={key:1,class:"connection-badge"},s2={id:"sourceUrl-landing",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},i2={key:0,class:"draft-status",role:"status"},r2={key:1,class:"text-danger",role:"alert"},a2={key:2,class:"repo-access-details","aria-label":"GitHub access"},l2={class:"repo-access-main"},d2={class:"repo-access-controls"},u2={key:1,class:"connection-link",href:"/connections"},c2={class:"repo-access-note"},p2={key:0},f2={class:"anonymize-workspace"},h2={class:"anonymize-topbar"},m2={class:"anonymize-topbar-inner"},v2={class:"anonymize-topbar-head"},g2={class:"paper-page-title anonymize-topbar-title"},y2={key:0},b2={key:1},w2={key:0,class:"alert alert-info",role:"status"},k2={key:1,class:"alert alert-info",role:"status"},E2={key:1},C2={class:"anonymize-mobile-tabs",role:"tablist","aria-label":"Anonymization workspace"},S2=["aria-selected","tabindex"],_2=["aria-selected","tabindex"],N2={key:2,class:"anonymize-preview-empty",id:"workspace-preview",role:"status"},R2={class:"anonymize-split"},D2=["role","aria-labelledby"],T2={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},A2={class:"anonymize-fields"},O2={class:"paper-settings-section"},P2={class:"form-group"},I2={class:"source-url-label-row"},V2={key:0,class:"repo-access","aria-label":"GitHub access"},q2={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},M2=["aria-pressed","disabled"],U2=["aria-pressed","disabled"],$2={key:1,class:"connection-badge"},L2=["disabled"],F2={class:"invalid-feedback"},B2={class:"invalid-feedback"},H2={class:"invalid-feedback"},z2={class:"invalid-feedback"},j2={key:0,class:"repo-access-details","aria-label":"Previous repository configuration"},G2={key:0,class:"form-group"},W2=["value"],K2={key:1},Y2={class:"repo-access-controls"},J2=["href"],Q2={key:1,class:"repo-access-details","aria-label":"GitHub access"},X2={class:"repo-access-main"},Z2={class:"repo-access-controls"},x2={key:1,class:"connection-link",href:"/connections"},eS={class:"repo-access-note"},tS={key:0},nS={key:2,class:"repo-access-details"},oS=["disabled"],sS={key:0,role:"status"},iS={key:3,class:"repo-access-details"},rS={key:0,role:"status"},aS={key:4,class:"form-grid-2"},lS={class:"form-group"},dS={class:"input-group"},uS={class:"form-control",id:"branch",name:"branch"},cS=["textContent","value"],pS={class:"input-group-append"},fS={class:"form-group"},hS=["disabled"],mS={class:"invalid-feedback"},vS={class:"invalid-feedback"},gS={class:"form-check"},yS={class:"form-check-input",type:"checkbox",id:"update",name:"update"},bS={class:"paper-settings-section"},wS={class:"form-group"},kS=["disabled"],ES={class:"form-text text-muted"},CS={class:"invalid-feedback"},SS={class:"form-group"},_S=["disabled"],NS={class:"form-text text-muted"},RS={class:"invalid-feedback"},DS={class:"form-group"},TS=["disabled"],AS={class:"form-text text-muted"},OS={class:"invalid-feedback"},PS={class:"form-group"},IS={class:"redaction-syntax"},VS={class:"form-text text-muted"},qS={class:"warning-feedback"},MS={class:"invalid-feedback"},US={class:"paper-settings-section"},$S={class:"form-check"},LS={class:"form-check-input",type:"checkbox",id:"link",name:"link"},FS={class:"form-check"},BS={class:"form-check-input",type:"checkbox",id:"image",name:"image"},HS={class:"form-check"},zS={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},jS={class:"form-check"},GS={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},WS={class:"form-check"},KS=["disabled"],YS={key:0,class:"form-text text-muted"},JS={key:1,class:"form-text text-muted"},QS={key:0,class:"form-text text-muted"},XS={class:"form-check"},ZS={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},xS={class:"form-check"},e_={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},t_={class:"form-check"},n_={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},o_={class:"form-check"},s_={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},i_={class:"form-check"},r_={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},a_={class:"form-check"},l_={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},d_={class:"form-check"},u_={class:"form-check-input",type:"checkbox",id:"title",name:"title"},c_={class:"form-check"},p_={class:"form-check-input",type:"checkbox",id:"body",name:"body"},f_={class:"form-check"},h_={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},m_={class:"form-check"},v_={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},g_={class:"form-check"},y_={class:"form-check-input",type:"checkbox",id:"username",name:"username"},b_={class:"form-check"},w_={class:"form-check-input",type:"checkbox",id:"date",name:"date"},k_={class:"form-check"},E_={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},C_={class:"paper-settings-section hosting-settings",id:"repository-hosting","aria-labelledby":"hosting-heading"},S_={key:0,class:"hosting-usage"},__={key:0},N_={key:1},R_={key:2},D_={key:3},T_={class:"expiration-choices"},A_={class:"expiration-choice"},O_=["checked","disabled"],P_={key:0,class:"dated-options"},I_={key:0,class:"hosting-date"},V_=["min","max"],q_={class:"invalid-feedback"},M_={class:"invalid-feedback"},U_={class:"hosting-property"},$_={key:1,class:"expiration-choice"},L_=["checked","disabled"],F_={key:0},B_={key:1,class:"form-text text-muted"},H_={class:"form-group conference-field"},z_={class:"form-text text-muted"},j_=["href"],G_={class:"invalid-feedback"},W_={class:"form-text text-muted"},K_={key:2,class:"inline-hosting"},Y_={key:0,role:"alert",class:"text-danger"},J_={key:1,role:"alert",class:"text-danger"},Q_=["disabled"],X_={key:2,role:"status"},Z_={key:3,role:"status",class:"form-text text-muted"},x_={key:0,class:"capacity-reason"},eN={key:1,class:"subscription-choice"},tN={class:"billing-cycle"},nN=["value","checked","onChange"],oN={class:"hosting-terms"},sN={key:2,role:"status"},iN={key:3,class:"capacity-options"},rN=["disabled"],aN={key:5,class:"hosting-terms"},lN={key:6,class:"repository-pass"},dN=["disabled"],uN={class:"paper-settings-section"},cN={class:"form-group"},pN={style:{position:"relative"}},fN={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},hN={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},mN=["onClick"],vN=["src"],gN=["textContent"],yN=["textContent"],bN={class:"coauthor-list"},wN={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},kN=["src"],EN=["textContent","href"],CN=["onClick"],SN={class:"form-text text-muted"},_N=["textContent"],NN={key:1,class:"draft-status",role:"status"},RN={key:2,class:"draft-status"},DN={class:"anonymize-submit-bar"},TN=["disabled"],AN=["disabled"],ON={key:2,class:"checkout-return-note"},PN=["disabled"],IN=["disabled"],VN=["disabled"],qN=["disabled"],MN=["role","aria-labelledby"],UN={class:"anonymize-preview-head"},$N={key:0,class:"anonymize-preview-status",role:"status"},LN={key:1,class:"anonymize-preview-status",role:"status"},FN={key:2,class:"anonymize-preview-status",role:"alert"},BN={key:3,class:"anonymize-preview-status"},HN=["innerHTML"],zN=["role","aria-labelledby"],jN={class:"anonymize-preview-head"},GN={key:0,class:"anonymize-preview-status",role:"status"},WN={key:1,class:"anonymize-preview-status",role:"status"},KN={key:2,class:"anonymize-preview-status",role:"alert"},YN={key:3,class:"anonymize-preview-body"},JN={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},QN={class:"pr-title mb-1"},XN={key:0},ZN=["textContent"],xN={key:0},eR={key:1},tR={key:2},nR={class:"pr-comments mt-3"},oR={class:"pr-comment"},sR={class:"pr-comment-head"},iR=["textContent"],rR={key:0,class:"pr-comment-date"},aR={key:3},lR={class:"pr-comments"},dR={class:"pr-comment"},uR={class:"pr-comment-head"},cR={key:0,class:"pr-comment-author"},pR=["textContent"],fR=["textContent"],hR={key:0,class:"pr-comment-body"},mR=["role","aria-labelledby"],vR={class:"anonymize-preview-head"},gR={key:0,class:"anonymize-preview-status",role:"status"},yR={key:1,class:"anonymize-preview-status",role:"status"},bR={key:2,class:"anonymize-preview-status",role:"alert"},wR={key:3,class:"anonymize-preview-body"},kR={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},ER={class:"pr-title mb-1"},CR={key:0},SR=["textContent"],_R={key:0},NR={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--paper-bg-alt)"}},RR={key:2,class:"paper-tabs",role:"tablist"},DR=["aria-selected","tabindex"],TR=["aria-selected","tabindex"],AR=["textContent"],OR={key:3,class:"anonymize-preview-status"},PR={class:"paper-tab-content"},IR={key:0,role:"tabpanel",id:"preview-pr-diff-panel","aria-labelledby":"preview-pr-diff-tab"},VR=["innerHTML"],qR={key:1,role:"tabpanel",id:"preview-pr-comments-panel","aria-labelledby":"preview-pr-comments-tab"},MR={class:"pr-comments"},UR={class:"pr-comment"},$R={class:"pr-comment-head"},LR={key:0,class:"pr-comment-author"},FR=["textContent"],BR=["textContent"],HR={key:0,class:"pr-comment-body"};function $l(e,t){let o=Ge("gist-file"),i=Ge("markdown"),s=ge("field"),r=ge("form");return l(),d("div",{class:P(["anonymize-page h-100",{"mobile-preview-active":e.mobilePane==="preview","preview-expanded":e.previewExpanded}])},[p(" ===== STATE 1: No URL \u2014 centered input ===== "),D(n("div",JC,[n("div",QC,[t[48]||(t[48]=n("div",{class:"paper-crumbs"},[v("My work \xA0/\xA0 "),n("span",{class:"here"},"New anonymization")],-1)),t[49]||(t[49]=n("h1",{class:"paper-page-title"},[v("New "),n("em",null,"anonymization")],-1)),t[50]||(t[50]=n("p",{class:"paper-page-lede"}," Paste a GitHub repository, pull-request, or gist URL. We\u2019ll fetch it, redact the terms you choose in text files, and give you a share link. Images and PDFs are served unchanged when enabled. Review them before sharing. ",-1)),n("div",XC,[n("div",ZC,[t[44]||(t[44]=n("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",xC,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",e2,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=a=>e.chooseGitHubConnection("github-app"))},[...t[43]||(t[43]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(),n("span",{class:"sr-only"},"Read-only ",-1),v("GitHub App",-1)])],8,t2),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,n2)])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",o2,u((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):p("v-if",!0)])):p("v-if",!0)]),D(n("input",s2,null,512),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]])]),e.draftRestored?(l(),d("div",i2,[t[45]||(t[45]=v("Your unsaved draft was restored. ",-1)),n("button",{type:"button",class:"draft-discard",onClick:t[2]||(t[2]=a=>e.discardDraft())},"Discard draft")])):p("v-if",!0),e.sourceUrlError?(l(),d("p",r2,u(e.sourceUrlError),1)):p("v-if",!0),t[51]||(t[51]=n("small",{class:"form-text",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(l(),d("aside",a2,[n("div",l2,[n("div",d2,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=a=>e.grantGitHubAccess())},[...t[46]||(t[46]=[v("Manage access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",u2,u(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):p("v-if",!0)])]),n("div",c2,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(l(),d("span",p2,"Signing in does not grant access to private repositories. Use Manage access to select this repository, then return here. Organization access may require administrator approval.")):p("v-if",!0),t[47]||(t[47]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),v(" Anonymized content is public, even from private repositories.")],-1))])])):p("v-if",!0)])],512),[[W,!e.workspaceOpen&&!e.isUpdate]]),p(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),D(n("div",f2,[n("header",h2,[n("div",m2,[n("div",v2,[n("h1",g2,[e.isUpdate?p("v-if",!0):(l(),d("span",y2,"New anonymization")),e.isUpdate?(l(),d("span",b2,"Edit anonymization")):p("v-if",!0)]),D(n("span",{class:P(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},u(e.detectedType==="repo"?"Repo":e.detectedType==="pr"?"PR":"Gist"),3),[[W,e.detectedType]])])])]),e.detectedType==="gist"&&e.gistAppRequired?(l(),d("aside",w2,[t[52]||(t[52]=n("p",null,"Reconnect your GitHub account to read this gist. Your draft will be restored when you return.",-1)),n("button",{type:"button",class:"btn btn-ink",onClick:t[4]||(t[4]=a=>e.connectGistApp())},"Connect GitHub App to access gists")])):p("v-if",!0),e.detectedType==="gist"&&e.gistOAuthRequired?(l(),d("aside",k2,[t[53]||(t[53]=n("p",null,"Connect GitHub OAuth to access gists. Your account and existing anonymizations stay the same, and your draft will be restored when you return.",-1)),t[54]||(t[54]=n("p",null,"GitHub's legacy OAuth connection includes write access to private repositories.",-1)),e.githubConnections?.oauthEnabled?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[5]||(t[5]=a=>e.connectGistOAuth())},"Connect GitHub OAuth to access gists")):(l(),d("p",E2,"GitHub OAuth is currently unavailable. Please try again later."))])):p("v-if",!0),n("nav",C2,[n("button",{id:"workspace-settings-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="settings","aria-controls":"workspace-settings",tabindex:e.mobilePane==="settings"?0:-1,onKeydown:t[6]||(t[6]=a=>e.previewTabKeydown(a)),onClick:t[7]||(t[7]=a=>e.selectMobilePane("settings"))},"Settings",40,S2),n("button",{id:"workspace-preview-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="preview","aria-controls":"workspace-preview",tabindex:e.mobilePane==="preview"?0:-1,onKeydown:t[8]||(t[8]=a=>e.previewTabKeydown(a)),onClick:t[9]||(t[9]=a=>e.selectMobilePane("preview"))},"Reviewer preview",40,_2)]),e.detectedType!=="repo"&&!e.details?(l(),d("div",N2,u(e.sourceLoading?"Loading source\u2026":"Choose an accessible source to see its preview."),1)):p("v-if",!0),n("div",R2,[p(" Form column (left) "),n("div",{id:"workspace-settings",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-settings-tab":null,class:"anonymize-form-col overflow-auto"},[D((l(),d("form",T2,[n("div",A2,[n("section",O2,[t[69]||(t[69]=n("h2",{class:"paper-section-eyebrow"},"Source & access",-1)),n("div",P2,[n("div",I2,[t[56]||(t[56]=n("label",{class:"paper-field-label",for:"sourceUrl"},"GitHub URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",V2,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",q2,[n("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[10]||(t[10]=a=>e.chooseGitHubConnection("github-app"))},[...t[55]||(t[55]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(),n("span",{class:"sr-only"},"Read-only ",-1),v("GitHub App",-1)])],8,M2),n("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[11]||(t[11]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,U2)])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",$2,u((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):p("v-if",!0)])):p("v-if",!0)]),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,L2),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),D(n("div",F2," Please provide a valid GitHub URL. ",512),[[W,e.anonymize?.sourceUrl?.errors?.github]]),D(n("div",B2," Not accessible. The organization may restrict access. ",512),[[W,e.anonymize?.sourceUrl?.errors?.access]]),D(n("div",H2," Does not exist or is not accessible. ",512),[[W,e.anonymize?.sourceUrl?.errors?.missing]]),D(n("div",z2," Already anonymized. ",512),[[W,e.anonymize?.sourceUrl?.errors?.used]])]),!e.isUpdate&&e.previousConfigurations.length?(l(),d("aside",j2,[t[58]||(t[58]=n("p",{role:"status"},"You have already anonymized this repository. Use the existing configuration to keep its anonymous link and avoid creating another repository.",-1)),e.previousConfigurations.length>1?(l(),d("div",G2,[t[57]||(t[57]=n("label",{class:"paper-field-label",for:"previousConfiguration"},"Previous anonymization",-1)),D(n("select",{id:"previousConfiguration",class:"form-control","onUpdate:modelValue":t[12]||(t[12]=a=>e.previousConfigurationId=a)},[(l(!0),d(K,null,ne(e.previousConfigurations,a=>(l(),d("option",{key:a.repoId,value:a.repoId},u(a.repoId),9,W2))),128))],512),[[pn,e.previousConfigurationId]])])):(l(),d("p",K2,u(e.previousConfigurationId),1)),t[59]||(t[59]=n("p",null,"You can review and update its settings before saving.",-1)),n("div",Y2,[n("a",{class:"btn btn-ink",href:e.existingConfigurationUrl()},"Use existing configuration",8,J2),n("button",{type:"button",class:"btn btn-link",onClick:t[13]||(t[13]=a=>e.previousConfigurations=[])},"Create a separate anonymization")])])):p("v-if",!0),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected?(l(),d("aside",Q2,[n("div",X2,[n("div",Z2,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[14]||(t[14]=a=>e.grantGitHubAccess())},[...t[60]||(t[60]=[v("Manage access ",-1),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",x2,u(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):p("v-if",!0)])]),n("div",eS,[e.error&&e.detectedType!=="gist"&&e.githubConnection==="github-app"?(l(),d("span",tS,"Signing in does not grant access to private repositories. Use Manage access to select this repository, then return here. Organization access may require administrator approval.")):p("v-if",!0),t[61]||(t[61]=n("span",null,[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),v(" Anonymized content is public, even from private repositories.")],-1))])])):p("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.accessRepairAllowed&&e.githubConnections?.appEnabled&&e.githubConnection==="github-app"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",nS,[t[62]||(t[62]=n("p",null,"If this repository became private or its App installation changed, repair its access here. This keeps the same anonymous URL and published commit.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.repairingGitHubAccess,onClick:t[15]||(t[15]=a=>e.repairGitHubAccess())},"Repair GitHub access",8,oS),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[16]||(t[16]=a=>e.grantGitHubAccess())},"Manage access"),e.accessRepairMessage?(l(),d("p",sS,u(e.accessRepairMessage),1)):p("v-if",!0)])):p("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",iS,[t[63]||(t[63]=n("p",null,"If you deleted and recreated this repository, reconnect it before choosing a branch.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[17]||(t[17]=a=>e.reconnectSource())},"Reconnect source repository"),e.reconnectRepositoryId?(l(),d("p",rS,"Source reloaded. Review the branch, commit, and anonymization preview, then save to replace the published snapshot.")):p("v-if",!0)])):p("v-if",!0),e.detectedType==="repo"?(l(),d("div",aS,[n("div",lS,[t[65]||(t[65]=n("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),n("div",dS,[D((l(),d("select",uS,[(l(!0),d(K,null,ne(e.branches,(a,c)=>(l(),d("option",{textContent:u(a?.name),value:a?.name},null,8,cS))),256))])),[[s,{state:e.viewState,set:a=>{e.source.branch=a},value:e.source?.branch,form:"anonymize",options:{}}]]),n("div",pS,[n("button",{class:"btn btn-icon refresh-branches",type:"button",title:"Refresh branches",onClick:t[18]||(t[18]=a=>e.getBranches(!0)),"aria-label":"Refresh branches"},[...t[64]||(t[64]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1)])])])])]),n("div",fS,[t[66]||(t[66]=n("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,hS),[[s,{state:e.viewState,set:a=>{e.source.commit=a},value:e.source?.commit,form:"anonymize",options:{}}]]),D(n("div",mS," The commit SHA is not valid. ",512),[[W,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),D(n("div",vS," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[W,e.anonymize?.commit?.errors?.exists]])])])):p("v-if",!0),D(n("div",gS,[D(n("input",yS,null,512),[[s,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"anonymize",options:{}}]]),t[67]||(t[67]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[68]||(t[68]=n("small",{class:"form-text text-muted"},"Follows the latest version, at most once an hour.",-1))],512),[[W,e.detectedType]])]),D(n("section",bS,[t[87]||(t[87]=n("h2",{class:"paper-section-eyebrow"},"Anonymization",-1)),D(n("div",wS,[t[70]||(t[70]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,kS),[[s,{state:e.viewState,set:a=>{e.repoId=a},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",ES,"anonymous.4open.science/r/"+u(e.repoId),1),D(n("div",CS,"ID can only contain letters and numbers.",512),[[W,e.anonymize?.repoId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},u(e.repoId)+" is already used.",513),[[W,e.anonymize?.repoId?.errors?.used]])],512),[[W,e.detectedType==="repo"]]),D(n("div",SS,[t[73]||(t[73]=n("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,_S),[[s,{state:e.viewState,set:a=>{e.pullRequestId=a},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",NS,[t[71]||(t[71]=v("Your share link will be ",-1)),n("code",null,"anonymous.4open.science/pr/"+u(e.pullRequestId),1),t[72]||(t[72]=v(".",-1))]),D(n("div",RS,"ID can only contain letters and numbers.",512),[[W,e.anonymize?.pullRequestId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestId)+" is already used.",513),[[W,e.anonymize?.pullRequestId?.errors?.used]])],512),[[W,e.detectedType==="pr"]]),D(n("div",DS,[t[76]||(t[76]=n("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,TS),[[s,{state:e.viewState,set:a=>{e.gistId=a},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",AS,[t[74]||(t[74]=v("Your share link will be ",-1)),n("code",null,"anonymous.4open.science/gist/"+u(e.gistId),1),t[75]||(t[75]=v(".",-1))]),D(n("div",OS,"ID can only contain letters and numbers.",512),[[W,e.anonymize?.gistId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},u(e.gistId)+" is already used.",513),[[W,e.anonymize?.gistId?.errors?.used]])],512),[[W,e.detectedType==="gist"]]),n("div",PS,[t[85]||(t[85]=n("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),D(n("textarea",{class:P(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[s,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"anonymize",options:{debounce:250}}]]),t[86]||(t[86]=n("small",{class:"form-text text-muted"},"One term per line.",-1)),n("details",IS,[t[83]||(t[83]=n("summary",null,"Regex & replacement syntax",-1)),t[84]||(t[84]=v()),n("small",VS,[t[77]||(t[77]=v("Regex is supported. Replaced by ",-1)),n("code",null,u(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[78]||(t[78]=v(", or use ",-1)),t[79]||(t[79]=n("code",null,"term=>replacement",-1)),t[80]||(t[80]=v(" to pick your own (e.g. ",-1)),t[81]||(t[81]=n("code",null,"Anonymous=>ABC",-1)),t[82]||(t[82]=v(").",-1))])]),D(n("div",qS,"Regex characters detected. Escape them if unintentional.",512),[[W,e.termsRegexWarning]]),D(n("div",MS,"Terms are in an invalid format.",512),[[W,e.anonymize?.terms?.errors?.format]])])],512),[[W,e.detectedType]]),D(n("section",US,[t[107]||(t[107]=n("h2",{class:"paper-section-eyebrow"},"Display",-1)),D(n("div",null,[n("div",$S,[D(n("input",LS,null,512),[[s,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"anonymize",options:{}}]]),t[88]||(t[88]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),n("div",FS,[D(n("input",BS,null,512),[[s,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"anonymize",options:{}}]]),t[89]||(t[89]=n("label",{class:"form-check-label",for:"image"},"Display images",-1))]),n("div",HS,[D(n("input",zS,null,512),[[s,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[90]||(t[90]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1))]),n("div",jS,[D(n("input",GS,null,512),[[s,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[91]||(t[91]=n("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))]),n("div",WS,[D(n("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,KS),[[s,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"anonymize",options:{}}]]),t[92]||(t[92]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),e.details?.hasPage?p("v-if",!0):(l(),d("small",YS,u(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),1)),e.details?.hasPage&&e.details?.pageSource?.branch&&e.source?.branch&&e.details.pageSource.branch!==e.source.branch?(l(),d("small",JS,u(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),1)):p("v-if",!0)])],512),[[W,e.detectedType==="repo"]]),e.detectedType==="repo"&&(e.options.image||e.options.pdf)?(l(),d("p",QS,[...t[93]||(t[93]=[v("Images and PDFs are served unchanged. Review their contents and metadata before sharing. ",-1),n("a",{href:"/faq#formats"},"Supported formats",-1)])])):p("v-if",!0),D(n("div",null,[n("div",XS,[D(n("input",ZS,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[94]||(t[94]=n("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),n("div",xS,[D(n("input",e_,null,512),[[s,{state:e.viewState,set:a=>{e.options.content=a},value:e.options?.content,form:"anonymize",options:{}}]]),t[95]||(t[95]=n("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),n("div",t_,[D(n("input",n_,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[96]||(t[96]=n("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),n("div",o_,[D(n("input",s_,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[97]||(t[97]=n("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),n("div",i_,[D(n("input",r_,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[98]||(t[98]=n("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),n("div",a_,[D(n("input",l_,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[99]||(t[99]=n("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[W,e.detectedType==="gist"]]),D(n("div",null,[n("div",d_,[D(n("input",u_,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[100]||(t[100]=n("label",{class:"form-check-label",for:"title"},"PR title",-1))]),n("div",c_,[D(n("input",p_,null,512),[[s,{state:e.viewState,set:a=>{e.options.body=a},value:e.options?.body,form:"anonymize",options:{}}]]),t[101]||(t[101]=n("label",{class:"form-check-label",for:"body"},"PR body",-1))]),n("div",f_,[D(n("input",h_,null,512),[[s,{state:e.viewState,set:a=>{e.options.diff=a},value:e.options?.diff,form:"anonymize",options:{}}]]),t[102]||(t[102]=n("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),n("div",m_,[D(n("input",v_,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[103]||(t[103]=n("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),n("div",g_,[D(n("input",y_,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[104]||(t[104]=n("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),n("div",b_,[D(n("input",w_,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[105]||(t[105]=n("label",{class:"form-check-label",for:"date"},"Dates",-1))]),n("div",k_,[D(n("input",E_,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[106]||(t[106]=n("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[W,e.detectedType==="pr"]])],512),[[W,e.detectedType]]),D(n("section",C_,[t[123]||(t[123]=n("h2",{class:"paper-section-eyebrow",id:"hosting-heading"},"Hosting & expiration",-1)),e.detectedType==="repo"&&e.billing?.enabled?(l(),d("p",S_,[e.isUpdate&&e.role!=="owner"?(l(),d("span",__,"Uses the owner's hosting")):e.hasAuthorHosting()?(l(),d("span",N_,"Your author subscription is active.")):e.conference?(l(),d("span",R_,"Conference hosting is checked on submission.")):e.hostingQuota?.repository?(l(),d("span",D_,u(e.hostingQuota.repository.used)+" of "+u(e.hostingQuota.repository.total)+" active repositories \xB7 Free",1)):p("v-if",!0)])):p("v-if",!0),n("fieldset",T_,[t[113]||(t[113]=n("legend",{class:"sr-only"},"Expiration",-1)),n("label",A_,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode!=="never",onChange:t[19]||(t[19]=a=>e.useDatedHosting()),disabled:e.billingPending},null,40,O_),t[108]||(t[108]=n("span",null,"Expire on a date",-1))]),e.options.expirationMode!=="never"?(l(),d("div",P_,[e.options?.expirationMode!=="never"?(l(),d("div",I_,[t[109]||(t[109]=n("label",{class:"paper-field-label",for:"expirationDate"},"Expires",-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,V_),[[s,{state:e.viewState,set:a=>{e.options.expirationDate=a},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),D(n("div",q_,"Pick a date in the future.",512),[[W,e.anonymize?.expirationDate?.errors?.min]]),D(n("div",{class:"invalid-feedback"},"Pick a date on or before "+u(e.fmt?.date(e.maxExpirationDate))+".",513),[[W,e.anonymize?.expirationDate?.errors?.max]]),D(n("div",M_,"Enter a valid expiration date.",512),[[W,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])):p("v-if",!0),n("div",U_,[t[111]||(t[111]=n("label",{for:"expiration"},"Then",-1)),D(n("select",{id:"expiration",class:"form-control","onUpdate:modelValue":t[20]||(t[20]=a=>e.options.expirationMode=a)},[...t[110]||(t[110]=[n("option",{value:"remove"},"Remove content",-1),n("option",{value:"redirect"},"Redirect to GitHub",-1)])],512),[[pn,e.options.expirationMode]])])])):p("v-if",!0),e.detectedType==="repo"?(l(),d("label",$_,[n("input",{type:"radio",name:"expiration-choice",checked:e.options.expirationMode==="never",onChange:t[21]||(t[21]=a=>e.options.expirationMode="never"),disabled:e.billingPending},null,40,L_),n("span",null,[t[112]||(t[112]=v("Never expire",-1)),e.options.expirationMode!=="never"||e.hasAuthorHosting()?(l(),d("small",F_,u(e.hasAuthorHosting()?"Included in your subscription":"Author subscription"),1)):p("v-if",!0)])])):p("v-if",!0)]),e.options.expirationMode==="redirect"?(l(),d("p",B_,"Visitors will be redirected to the original GitHub source on this date, revealing its identity.")):p("v-if",!0),n("div",H_,[t[114]||(t[114]=n("label",{class:"paper-field-label",for:"conference"},[v("Conference code "),n("span",{class:"paper-optional"},"(optional)")],-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[s,{state:e.viewState,set:a=>{e.conference=a},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(n("small",z_,[n("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},u(e.conference_data?.name),9,j_),v(" expires "+u(e.fmt?.date(e.conference_data?.endDate))+". ",1)],512),[[W,e.conference_data]]),D(n("div",G_,"The conference is not activated.",512),[[W,e.anonymize?.conference?.errors?.activated]]),D(n("small",W_,"Link to a conference to apply its shared defaults.",512),[[W,!e.conference_data]])]),e.detectedType==="repo"&&e.billing?.enabled?(l(),d("div",K_,[e.taskValidationError?(l(),d("p",Y_,u(e.taskValidationError),1)):p("v-if",!0),e.billingError?(l(),d("p",J_,[v(u(e.billingError)+" ",1),n("button",{type:"button",class:"task-text-button",onClick:t[22]||(t[22]=a=>e.loadBilling()),disabled:e.billingBusy},"Reload billing",8,Q_)])):p("v-if",!0),e.billingPending?(l(),d("div",X_,[...t[115]||(t[115]=[n("p",null,[n("strong",null,"Confirming your payment\u2026")],-1),n("p",{class:"form-text text-muted"},"Your draft is saved. Please do not pay again.",-1)])])):e.billingNotice?(l(),d("p",Z_,u(e.billingNotice),1)):p("v-if",!0),e.hostingNeedsPayment()&&!e.billingPending?(l(),d(K,{key:4},[e.options.expirationMode!=="never"?(l(),d("p",x_,u(e.options.update&&!e.hostingQuotaBlocked&&e.hostingQuota?.repository?.used(l(),d("label",{class:P(["cycle-option",{selected:e.selectedHostingPlan()?.id===a.id}]),key:a.id},[n("input",{type:"radio",name:"hosting-plan",value:a.id,checked:e.selectedHostingPlan()?.id===a.id,onChange:c=>e.hostingPlan=a.id},null,40,nN),n("span",null,u(e.billingPrice(a)),1)],2))),128))]),n("p",null,u(e.selectedHostingPlan()?.repositories)+" repositories, "+u(e.billingBytes(e.selectedHostingPlan()?.storage))+". Coauthors included.",1),n("p",oN,"Renews "+u(e.selectedHostingPlan()?.interval==="year"?"annually":"monthly")+" until cancelled. Tax shown at checkout.",1),t[118]||(t[118]=n("p",{class:"hosting-terms"},"If paid access ends, never-expiring repositories expire after 90 days.",-1))])):(l(),d("p",sN,"New purchases are temporarily unavailable. Your draft is kept.")),e.options.expirationMode!=="never"?(l(),d("details",iN,[t[119]||(t[119]=n("summary",null,"Keep using free hosting",-1)),t[120]||(t[120]=n("p",null,"Remove a repository you no longer need, or use conference hosting. Removing a repository affects its review link.",-1)),t[121]||(t[121]=n("a",{href:"/dashboard"},"Review my repositories",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[23]||(t[23]=a=>e.anonymizeRepo(a)),disabled:e.sourceLoading||e.billingBusy},"Recheck capacity and submit",8,rN)])):p("v-if",!0)],64)):e.options.expirationMode==="never"&&!e.billingPending?(l(),d("p",aN,"No scheduled expiration while subscribed. A 90-day grace period applies if paid access ends.")):p("v-if",!0),e.isUpdate&&e.role==="owner"&&!e.hasAuthorHosting()?(l(),d("details",lN,[t[122]||(t[122]=n("summary",null,"Hosting just this repository?",-1)),(l(!0),d(K,null,ne((e.billing?.plans||[]).filter(a=>a.id==="author_pass"),a=>(l(),d("div",{key:a.id},[n("p",null,u(e.billingPrice(a))+" \xB7 "+u(e.billingBytes(a.storage))+" for 180 days. No renewal. Does not include Never expire.",1),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.billingBusy||e.hostingSaving||e.sourceLoading||e.billing.checkoutEnabled===!1||e.billingPending,onClick:t[24]||(t[24]=c=>e.checkoutRepository(!0))},"Review repository pass",8,dN)]))),128))])):p("v-if",!0)])):p("v-if",!0)],512),[[W,e.detectedType]]),D(n("section",uN,[t[127]||(t[127]=n("h2",{class:"paper-section-eyebrow"},"Coauthors",-1)),t[128]||(t[128]=n("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),D(n("div",cN,[t[124]||(t[124]=n("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),n("div",pN,[D(n("input",fN,null,512),[[s,{state:e.viewState,set:a=>{e.coauthorSearch=a},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),D(n("div",hN,[(l(!0),d(K,null,ne(e.coauthorResults,(a,c)=>(l(),d("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:de(f=>e.addCoauthor(a,f),["prevent"])},[n("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(a?.photo)},null,8,vN),n("span",{textContent:u(a?.username)},null,8,gN)],8,mN))),256))],512),[[W,e.coauthorResults?.length>0]])]),D(n("small",{class:"form-text text-muted",textContent:u(e.coauthorError)},null,8,yN),[[W,e.coauthorError]])],512),[[W,e.role==="owner"||e.role==="admin"]]),n("div",bN,[(l(!0),d(K,null,ne(e.coauthors,(a,c)=>(l(),d("div",wN,[a?.photo?(l(),d("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(a?.photo)},null,8,kN)):p("v-if",!0),n("a",{target:"_blank",textContent:u(a?.username),href:e.safeUrl("https://github.com/"+a?.username)},null,8,EN),t[126]||(t[126]=n("span",{class:"type-badge type-coauthor"},"Co-author",-1)),D(n("button",{type:"button",class:"btn btn-sm btn-icon",style:{"margin-left":"auto"},title:"Remove co-author",onClick:f=>e.removeCoauthor(a),"aria-label":"Remove co-author"},[...t[125]||(t[125]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,CN),[[W,e.role==="owner"||e.role==="admin"]])]))),256)),D(n("div",SN," No co-authors yet. ",512),[[W,!e.coauthors||e.coauthors?.length===0]])])],512),[[W,e.isUpdate&&e.detectedType==="repo"]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,_N)):p("v-if",!0),e.draftRestored?(l(),d("div",NN,[t[129]||(t[129]=v("Your unsaved draft was restored. ",-1)),n("button",{type:"button",class:"draft-discard",onClick:t[25]||(t[25]=a=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(l(),d("div",RN,[v(u(e.draftSaved?"Draft saved in this tab for 30 minutes.":"Unsaved changes. Keep this tab open until you save.")+" ",1),n("button",{type:"button",class:"draft-discard",onClick:t[26]||(t[26]=a=>e.discardDraft())},u(e.isUpdate?"Restore saved settings":"Discard changes"),1)])):p("v-if",!0)]),D(n("div",DN,[e.detectedType==="repo"?(l(),d(K,{key:0},[e.billingPending?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[27]||(t[27]=a=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,TN)):(l(),d("button",{key:1,type:"submit",class:"btn btn-ink",disabled:e.sourceLoading||e.billingBusy||e.hostingSaving||e.billingLoading||e.hostingNeedsPayment()&&(!e.authorPlans().length||e.billing?.checkoutEnabled===!1),onClick:t[28]||(t[28]=de(a=>e.submitForm(a,()=>{e.submitRepository(a)}),["prevent"]))},u(e.hostingSaving?"Saving draft\u2026":e.hostingNeedsPayment()?"Continue to checkout":e.isUpdate?"Save changes":"Create anonymous link"),9,AN)),e.hostingNeedsPayment()&&!e.billingPending?(l(),d("p",ON,"Review payment in Stripe, then return to finish.")):p("v-if",!0)],64)):p("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(l(),d("button",{key:1,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[29]||(t[29]=de(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[130]||(t[130]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(" Anonymize Pull Request ",-1)])],8,PN)):p("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(l(),d("button",{key:2,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[30]||(t[30]=de(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[131]||(t[131]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),v(" Update Pull Request ",-1)])],8,IN)):p("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(l(),d("button",{key:3,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[31]||(t[31]=de(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[132]||(t[132]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(" Anonymize Gist ",-1)])],8,VN)):p("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(l(),d("button",{key:4,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[32]||(t[32]=de(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[133]||(t[133]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),v(" Update Gist ",-1)])],8,qN)):p("v-if",!0)],512),[[W,e.detectedType]])])),[[r,e.viewState]])],8,D2),p(" Preview column (right) "),e.detectedType==="repo"?(l(),d("div",{key:0,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",UN,[t[134]||(t[134]=n("strong",null,"README.md",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[33]||(t[33]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",$N,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",LN,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",FN,[t[135]||(t[135]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[34]||(t[34]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),!e.sourceLoading&&!e.readme&&e.previewStatus==="idle"?(l(),d("div",BN,"No README is available to preview. Review the published files before sharing.")):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",{key:4,class:"anonymize-preview-body markdown-body body",innerHTML:e.sanitize(e.html_readme)},null,8,HN)):p("v-if",!0)],8,MN)):p("v-if",!0),e.detectedType==="gist"&&e.details?(l(),d("div",{key:1,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",jN,[t[136]||(t[136]=n("strong",null,"Gist preview",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[35]||(t[35]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",GN,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",WN,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",KN,[t[137]||(t[137]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[36]||(t[36]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",YN,[n("div",JN,[n("h2",QN,[e.options?.title?(l(),d("span",XN,u(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):p("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},u(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,ZN)):p("v-if",!0)]),e.options?.origin?(l(),d("small",xN,"Gist ID: "+u(e.details?.source?.gistId),1)):p("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(l(),d("small",eR,"By @"+u(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):p("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(l(),d("div",tR,[n("ul",nR,[(l(!0),d(K,null,ne(e.previewGistFiles,(a,c)=>(l(),d("li",oR,[n("div",sR,[n("strong",{textContent:u(a?.filename)},null,8,iR),a?.language?(l(),d("span",rR,u(a?.language),1)):p("v-if",!0)]),Ce(o,{file:a,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):p("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(l(),d("div",aR,[t[140]||(t[140]=n("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),n("ul",lR,[(l(!0),d(K,null,ne(e.details?.gist?.comments,(a,c)=>(l(),d("li",dR,[n("div",uR,[e.options?.username?(l(),d("span",cR,[t[138]||(t[138]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[139]||(t[139]=v(" @",-1)),n("span",{textContent:u(e.anonymizeGistContent(a?.author))},null,8,pR)])):p("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(a?.updatedDate))},null,8,fR)):p("v-if",!0)]),e.options?.body?(l(),d("div",hR,[Ce(i,{content:e.anonymizeGistContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0)]))),256))])])):p("v-if",!0)])):p("v-if",!0)],8,zN)):p("v-if",!0),e.detectedType==="pr"&&e.details?(l(),d("div",{key:2,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[n("div",vR,[t[141]||(t[141]=n("strong",null,"Pull request preview",-1)),n("button",{type:"button",class:"task-text-button preview-expand",onClick:t[37]||(t[37]=a=>e.previewExpanded=!e.previewExpanded)},u(e.previewExpanded?"Restore split view":"Expand preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",gR,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",yR,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",bR,[t[142]||(t[142]=n("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),n("button",{class:"btn btn-outline-ink",type:"button",onClick:t[38]||(t[38]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",wR,[n("div",kR,[n("h2",ER,[e.options?.title?(l(),d("span",CR,u(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):p("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},u(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,SR)):p("v-if",!0)]),e.options?.origin?(l(),d("small",_R,"Pull Request on "+u(e.details?.pullRequest?.baseRepositoryFullName),1)):p("v-if",!0),e.options?.body?(l(),d("div",NR,[Ce(i,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0),e.options?.diff||e.options?.comments?(l(),d("nav",RR,[e.options?.diff?(l(),d("button",{key:0,class:P(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",id:"preview-pr-diff-tab","aria-selected":e.prTabState?.active==="diff","aria-controls":"preview-pr-diff-panel",tabindex:e.prTabState?.active==="diff"?0:-1,onKeydown:t[39]||(t[39]=a=>e.previewTabKeydown(a)),onClick:t[40]||(t[40]=a=>e.prTabState.active="diff")},[...t[143]||(t[143]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),v(" Diff ",-1)])],42,DR)):p("v-if",!0),e.options?.comments?(l(),d("button",{key:1,class:P(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",id:"preview-pr-comments-tab","aria-selected":e.prTabState?.active==="comments","aria-controls":"preview-pr-comments-panel",tabindex:e.prTabState?.active==="comments"?0:-1,onKeydown:t[41]||(t[41]=a=>e.previewTabKeydown(a)),onClick:t[42]||(t[42]=a=>e.prTabState.active="comments")},[t[144]||(t[144]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,AR)],42,TR)):p("v-if",!0)])):p("v-if",!0),!e.options?.diff&&!e.options?.comments?(l(),d("div",OR,"Diff and comments are hidden by your display settings.")):p("v-if",!0),n("div",PR,[e.options?.diff&&e.prTabState?.active=="diff"?(l(),d("div",IR,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,VR)])):p("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(l(),d("div",qR,[n("ul",MR,[(l(!0),d(K,null,ne(e.details?.pullRequest?.comments,(a,c)=>(l(),d("li",UR,[n("div",$R,[e.options?.username?(l(),d("span",LR,[t[145]||(t[145]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[146]||(t[146]=v(" @",-1)),n("span",{textContent:u(e.anonymizePrContent(a?.author))},null,8,FR)])):p("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(a?.updatedDate))},null,8,BR)):p("v-if",!0)]),e.options?.body?(l(),d("div",HR,[Ce(i,{content:e.anonymizePrContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0)]))),256))])])):p("v-if",!0)])])):p("v-if",!0)],8,mR)):p("v-if",!0)])],512),[[W,e.workspaceOpen||e.isUpdate]])],2)}var zR={class:"container-fluid h-100 anonymize-page"},jR={class:"row h-100 flex-column flex-md-row"},GR={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},WR={class:"form-group"},KR={class:"form-group"},YR={class:"form-check"},JR={class:"form-check-input",type:"checkbox",id:"update",name:"update"},QR={class:"form-group"},XR={class:"form-text text-muted"},ZR=["href"],xR={class:"invalid-feedback"},eD={class:"form-text text-muted"},tD={class:"form-group"},nD={id:"idHelp",class:"form-text text-muted"},oD={class:"invalid-feedback"},sD={class:"form-group"},iD={class:"invalid-feedback"},rD={class:"form-group"},aD={class:"form-control",id:"expiration",name:"expiration"},lD={class:"form-group",id:"expiration-date-form"},dD={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},uD={class:"accordion mb-3",id:"options"},cD={class:"card"},pD={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},fD={class:"card-body"},hD={class:"form-group mb-0"},mD={class:"form-check"},vD={class:"form-check-input",type:"checkbox",id:"link",name:"link"},gD={class:"form-check"},yD={class:"form-check-input",type:"checkbox",id:"image",name:"image"},bD={class:"form-check"},wD={class:"form-check-input",type:"checkbox",id:"date",name:"date"},kD={class:"form-check"},ED={class:"form-check-input",type:"checkbox",id:"username",name:"username"},CD={class:"form-check"},SD={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},_D={class:"form-check"},ND={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},RD={class:"form-check"},DD={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},TD={class:"form-check"},AD={class:"form-check-input",type:"checkbox",id:"title",name:"title"},OD={class:"form-check"},PD={class:"form-check-input",type:"checkbox",id:"body",name:"body"},ID=["textContent"],VD={class:"anonymize-submit-bar"},qD={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},MD={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},UD={class:"pr-title mb-1"},$D={key:0},LD=["textContent"],FD={key:0},BD={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},HD={class:"nav nav-tabs",id:"myTab",role:"tablist"},zD={key:0,class:"nav-item",role:"presentation"},jD={key:1,class:"nav-item",role:"presentation"},GD=["textContent"],WD={class:"tab-content",id:"pills-tabContent"},KD={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},YD={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},JD={style:{"overflow-x":"auto"}},QD=["innerHTML"],XD={key:0,class:"pr-comments list-group"},ZD={class:"pr-comment list-group-item"},xD={class:"d-flex w-100 justify-content-between flex-wrap"},eT={key:0,class:"mb-1"},tT=["textContent"],nT={class:"mb-1"};function Ll(e,t){let o=Ge("markdown"),i=ge("field"),s=ge("form");return l(),d("div",zR,[n("div",jR,[n("div",GR,[n("div",{class:P(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[D((l(),d("form",{class:P(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=fe('
Anonymize \xA0/\xA0 Pull request

Anonymize a pull request

Fill in the details \u2014 it only takes a minute.

Source
',4)),p(" pullRequestUrl "),n("div",WR,[t[2]||(t[2]=n("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestUrl=r},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[W,e.anonymize?.pullRequestUrl?.errors?.access]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[W,e.anonymize?.pullRequestUrl?.errors?.missing]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestUrl)+" is already anonymized ",513),[[W,e.anonymize?.pullRequestUrl?.errors?.used]])]),D(n("div",null,[n("div",KR,[n("div",YR,[D(n("input",JR,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=n("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})]),v(" Conference ID ")],-1)),p(" Conference "),n("div",QR,[t[5]||(t[5]=n("label",{for:"conference"},[v("Conference ID "),n("span",{class:"text-muted"},"(Optional)")],-1)),D(n("input",{class:P(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[i,{state:e.viewState,set:r=>{e.conference=r},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(n("small",XR,[n("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},u(e.conference_data?.name),9,ZR),v(" will expire on "+u(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[W,e.conference_data]]),D(n("div",xR," The conference is not activated. ",512),[[W,e.anonymize?.conference?.errors?.activated]]),D(n("small",eD," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[W,!e.conference_data]])]),t[27]||(t[27]=n("div",{class:"paper-section-eyebrow anonymize-section-title"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),v(" Anonymization Options ")],-1)),p(" Pull Request ID "),n("div",tD,[t[6]||(t[6]=n("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[i,{state:e.viewState,set:r=>{e.pullRequestId=r},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),n("small",nD,"Id used in the url: https://anonymous.4open.science/r/"+u(e.pullRequestId),1),D(n("div",oD," Repository id can only contain letters and numbers ",512),[[W,e.anonymize?.pullRequestId?.errors?.format]]),D(n("div",{class:"invalid-feedback"},u(e.pullRequestId)+" is already used ",513),[[W,e.anonymize?.pullRequestId?.errors?.used]])]),p(" Terms "),n("div",sD,[t[7]||(t[7]=n("label",{for:"terms"},"Terms to anonymize",-1)),D(n("textarea",{class:P(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=n("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),D(n("div",iD," Terms are in an invalid format ",512),[[W,e.anonymize?.terms?.errors?.format]])]),n("div",rD,[t[10]||(t[10]=n("label",{for:"expiration"},"Expiration strategy",-1)),D((l(),d("select",aD,[...t[9]||(t[9]=[n("option",{value:"never",selected:""},"Never expire",-1),n("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),n("option",{value:"remove"},"Remove when expired",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),D(n("div",lD,[t[12]||(t[12]=n("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),D(n("input",dD,null,512),[[i,{state:e.viewState,set:r=>{e.options.expirationDate=r},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),D(n("small",{class:"form-text text-muted"},"After "+u(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[W,e.options?.expirationMode=="remove"]]),D(n("small",{class:"form-text text-muted"},"After "+u(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+u(e.pullRequestUrl)+".",513),[[W,e.options?.expirationMode=="redirect"]])],512),[[W,e.options?.expirationMode!="never"]]),n("div",uD,[n("div",cD,[t[25]||(t[25]=fe('

',1)),n("div",pD,[n("div",fD,[n("div",hD,[n("div",mD,[D(n("input",vD,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),n("div",gD,[D(n("input",yD,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),n("div",bD,[D(n("input",wD,null,512),[[i,{state:e.viewState,set:r=>{e.options.date=r},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=n("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=n("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),n("div",kD,[D(n("input",ED,null,512),[[i,{state:e.viewState,set:r=>{e.options.username=r},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"username"},"Display username",-1))]),n("div",CD,[D(n("input",SD,null,512),[[i,{state:e.viewState,set:r=>{e.options.comments=r},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),n("div",_D,[D(n("input",ND,null,512),[[i,{state:e.viewState,set:r=>{e.options.diff=r},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),n("div",RD,[D(n("input",DD,null,512),[[i,{state:e.viewState,set:r=>{e.options.origin=r},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),n("div",TD,[D(n("input",AD,null,512),[[i,{state:e.viewState,set:r=>{e.options.title=r},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=n("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),n("div",OD,[D(n("input",PD,null,512),[[i,{state:e.viewState,set:r=>{e.options.body=r},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[W,e.pullRequestUrl]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,ID)):p("v-if",!0),D(n("div",VD,[e.isUpdate?p("v-if",!0):(l(),d("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=de(r=>e.submitForm(r,()=>{e.anonymizePullRequest(r)}),["prevent"]))},[...t[28]||(t[28]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(" Anonymize ",-1)])])),e.isUpdate?(l(),d("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=de(r=>e.submitForm(r,()=>{e.updatePullRequest(r)}),["prevent"]))},[...t[29]||(t[29]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-save"})],-1),v(" Update ",-1)])])):p("v-if",!0)],512),[[W,e.pullRequestUrl]])],2)),[[s,e.viewState]])],2)]),e.details?(l(),d("div",qD,[n("div",MD,[n("h2",UD,[e.options?.title?(l(),d("span",$D,u(e.anonymize(e.details?.pullRequest?.title)),1)):p("v-if",!0),n("span",{class:P(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},u(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:u(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,LD)):p("v-if",!0)]),e.options?.origin?(l(),d("small",FD,"Pull Request on "+u(e.details?.pullRequest?.baseRepositoryFullName),1)):p("v-if",!0),e.options?.body?(l(),d("div",BD,[Ce(o,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0),n("ul",HD,[e.options?.diff?(l(),d("li",zD,[...t[31]||(t[31]=[n("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):p("v-if",!0),e.options?.comments?(l(),d("li",jD,[n("button",{class:P(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[n("span",{textContent:u(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,GD)],2)])):p("v-if",!0)]),n("div",WD,[n("div",KD,[e.options?.diff?(l(),d("div",YD,[n("pre",JD,[n("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,QD)])])):p("v-if",!0)]),n("div",{class:P(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(l(),d("ul",XD,[(l(!0),d(K,null,ne(e.details?.pullRequest?.comments,(r,a)=>(l(),d("li",ZD,[n("div",xD,[e.options?.username?(l(),d("h5",eT," @"+u(e.anonymize(r?.author)),1)):p("v-if",!0),e.options?.date?(l(),d("small",{key:1,textContent:u(e.fmt?.date(r?.updatedDate))},null,8,tT)):p("v-if",!0)]),n("p",nT,[e.options?.body?(l(),Ft(o,{key:0,class:"pr-comment-body",content:e.anonymize(r?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):p("v-if",!0)])]))),256))])):p("v-if",!0)],2)])])):p("v-if",!0)])])}var oT={class:"container paper-page claim-page"},sT={class:"paper-settings-main claim-form"},iT={class:"form-group"},rT={class:"invalid-feedback"},aT={class:"form-group"};function Fl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",oT,[t[6]||(t[6]=fe('
My work \xA0/\xA0 Claim

Claim an anonymization

Take ownership of an existing anonymized repository so it appears on your dashboard.

',3)),n("div",sT,[t[5]||(t[5]=n("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),D((l(),d("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{e.claim()}),["prevent"]))},[n("div",iT,[t[1]||(t[1]=n("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",placeholder:"https://github.com/owner/repository",required:""},null,2),[[o,{state:e.viewState,set:s=>{e.repoUrl=s},value:e.repoUrl,form:"claimForm",options:{}}]]),D(n("div",rT," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[W,e.claimForm?.repoUrl?.errors?.not_found]])]),n("div",aT,[t[2]||(t[2]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",placeholder:"e.g. my-paper-7F2A","aria-describedby":"idHelp",required:""},null,2),[[o,{state:e.viewState,set:s=>{e.repoId=s},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=n("small",{id:"idHelp",class:"form-text text-muted"},[v("The ID is the last part of the anonymized URL: "),n("code",null,"anonymous.4open.science/r/"),v(".")],-1))]),t[4]||(t[4]=n("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[i,e.viewState]])])])}var lT={class:"container page paper-page conference-page"},dT={class:"paper-crumbs"},uT={class:"here"},cT={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},pT=["textContent"],fT={key:0,class:"paper-page-lede"},hT=["textContent","href"],mT={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},vT=["textContent"],gT=["href"],yT={class:"paper-meta-rule"},bT=["textContent"],wT=["textContent"],kT={key:0},ET={key:0,class:"conference-payment-status",role:"status"},CT=["disabled"],ST={key:1,role:"alert"},_T={key:2,class:"paper-settings-section","aria-labelledby":"conference-payment-heading"},NT={key:0,role:"status"},RT={key:1,role:"alert"},DT=["disabled"],TT={class:"search-wrap"},AT={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search by ID or source repository\u2026",autocomplete:"off"},OT={class:"dashboard-filter-controls"},PT={class:"dropdown"},IT={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},VT={class:"filter-btn-value"},qT={class:"dropdown-menu","aria-labelledby":"dropdownSort"},MT={class:"form-check dropdown-item"},UT={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},$T={class:"form-check dropdown-item"},LT={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},FT={class:"form-check dropdown-item"},BT={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},HT={class:"form-check dropdown-item"},zT={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},jT={class:"dropdown"},GT={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},WT={key:0,class:"filter-btn-value"},KT={key:1,class:"filter-btn-value"},YT={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},JT={class:"form-check dropdown-item"},QT=["id"],XT=["for"],ZT={class:"dashboard-meta"},xT={class:"dashboard-count"},eA={key:0},tA={key:0},nA={key:1},oA={key:1},sA={key:0,class:"filter-chip"},iA=["onClick","aria-label"],rA={class:"paper-table paper-table-repos w-100",role:"table","aria-label":"Repositories"},aA={class:"cell-anon",role:"cell"},lA={class:"anon-text"},dA=["textContent","href"],uA={class:"anon-sub"},cA={class:"anon-source"},pA=["textContent","href"],fA={key:0},hA=["textContent","href"],mA={key:1},vA=["href"],gA={class:"cell-status",role:"cell"},yA={class:"status-line"},bA=["textContent"],wA={key:0,class:"status-sub"},kA={class:"cell-views num",role:"cell"},EA=["textContent"],CA={class:"cell-expires",role:"cell"},SA={key:0,class:"expires-never"},_A=["textContent"],NA={key:2,class:"expires-past"},RA={key:0},DA={key:3,class:"empty-dash","aria-label":"Not applicable"},TA={class:"cell-actions",role:"cell"},AA={class:"dropdown"},OA=["aria-label"],PA={class:"dropdown-menu dropdown-menu-right"},IA=["href"],VA=["href"],qA={key:0,class:"paper-table-empty"},MA={key:0},UA={key:1},$A={key:2,class:"paper-table-empty-actions"};function Bl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",lT,[n("div",null,[n("div",dT,[t[4]||(t[4]=n("a",{href:"/dashboard"},"My work",-1)),t[5]||(t[5]=v(" \xA0/\xA0 ",-1)),t[6]||(t[6]=n("a",{href:"/conferences"},"Conferences",-1)),t[7]||(t[7]=v(" \xA0/\xA0 ",-1)),n("span",uT,u(e.conference?.conferenceID),1)]),n("div",cT,[n("div",null,[n("h1",{class:"paper-page-title",textContent:u(e.conference?.name)},null,8,pT),e.conference?.url?(l(),d("p",fT,[n("a",{target:"_blank",rel:"noopener",textContent:u(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,hT)])):p("v-if",!0)]),n("div",mT,[n("span",{class:P(["status-pill",{"status-pill-ready":e.conference?.status=="ready","status-pill-removed":e.conference?.status=="removed"||e.conference?.status=="expired"}])},[n("span",{class:P(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),n("span",{textContent:u(e.fmt?.statusLabel(e.conference?.status))},null,8,vT)],2),n("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[8]||(t[8]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit conference",-1)])],8,gT)])]),n("div",yT,[n("span",null,[t[9]||(t[9]=v("ID ",-1)),n("b",{class:"commit-hash",textContent:u(e.conference?.conferenceID)},null,8,bT)]),n("span",null,[t[10]||(t[10]=v("Review window ",-1)),n("b",null,u(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+u(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),n("span",null,[t[11]||(t[11]=v("Repositories ",-1)),n("b",null,u(e.fmt?.number(e.conference?.repositories?.length)),1)]),n("span",null,[t[12]||(t[12]=v("Plan ",-1)),n("b",{textContent:u(e.conference?.plan?.name||e.conference?.plan?.planID||"Free")},null,8,wT)]),e.conference?.price?(l(),d("span",kT,[t[13]||(t[13]=v("Cost so far ",-1)),n("b",null,u(e.fmt?.number(e.conference?.price,2))+" \u20AC",1)])):p("v-if",!0)]),e.billingNotice?(l(),d("div",ET,[n("p",null,u(e.billingNotice),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[0]||(t[0]=s=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,CT)])):p("v-if",!0),e.billingError&&e.conference?.status!=="pending_payment"?(l(),d("p",ST,u(e.billingError),1)):p("v-if",!0),e.conference?.status==="pending_payment"?(l(),d("section",_T,[t[14]||(t[14]=n("h2",{id:"conference-payment-heading"},"Activate your review package",-1)),t[15]||(t[15]=n("p",null,"This conference is waiting for payment. Authors can join after payment is confirmed. Checkout returns to this conference. Authors within the package do not pay separately.",-1)),e.billingLoading?(l(),d("p",NT,"Loading payment options\u2026")):p("v-if",!0),e.billingError?(l(),d("p",RT,u(e.billingError),1)):p("v-if",!0),(l(!0),d(K,null,ne((e.billing?.plans||[]).filter(s=>s.id==="conference"),s=>(l(),d("div",{key:s.id},[n("p",null,u(e.billingPrice(s))+" for up to "+u(s.repositories)+" repositories and "+u(e.billingBytes(s.storage))+" of source files during the review window. Taxes, if applicable, appear at checkout.",1),n("button",{type:"button",class:"btn btn-primary",onClick:t[1]||(t[1]=r=>e.checkout("conference",e.conference.conferenceID)),disabled:e.billingBusy||e.billingPending||e.billing?.checkoutEnabled===!1},u(e.billingBusy?"Please wait\u2026":"Pay for review package"),9,DT)]))),128)),t[16]||(t[16]=n("p",null,[n("a",{href:"/profile#settings-billing"},"Manage invoices")],-1))])):p("v-if",!0),t[37]||(t[37]=n("div",{class:"paper-section-eyebrow"},"Repositories",-1)),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[2]||(t[2]=de(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[n("div",TT,[D(n("input",AT,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",OT,[n("div",PT,[n("button",IT,[t[17]||(t[17]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",VT,u({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),n("div",qT,[t[22]||(t[22]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",MT,[D(n("input",UT,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),n("div",$T,[D(n("input",LT,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[19]||(t[19]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",FT,[D(n("input",BT,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",HT,[D(n("input",zT,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[21]||(t[21]=n("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])]),n("div",jT,[n("button",GT,[t[23]||(t[23]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",WT,"All")):p("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?p("v-if",!0):(l(),d("span",KT,u((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",YT,[t[24]||(t[24]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(K,null,ne(e.statusLabels,(s,r,a)=>(l(),d("div",JT,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,QT),[[o,{state:e.viewState,set:c=>{e.filters.status[r]=c},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},u(s),9,XT)]))),256))])])])],32)),[[i,e.viewState]]),n("div",ZT,[n("span",xT,[e.filteredRepositories?.length===e.conference?.repositories?.length?(l(),d("span",eA,[v(u(e.fmt?.number(e.conference?.repositories?.length))+" repositor",1),e.conference?.repositories?.length===1?(l(),d("span",tA,"y")):p("v-if",!0),e.conference?.repositories?.length!==1?(l(),d("span",nA,"ies")):p("v-if",!0)])):p("v-if",!0),e.filteredRepositories?.length!==e.conference?.repositories?.length?(l(),d("span",oA,u(e.fmt?.number(e.filteredRepositories?.length))+" of "+u(e.fmt?.number(e.conference?.repositories?.length))+" shown",1)):p("v-if",!0)]),(l(!0),d(K,null,ne(e.filters?.status,(s,r,a)=>(l(),d(K,null,[s===!1?(l(),d("span",sA,[v(" Hiding "+u(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:c=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,iA)])):p("v-if",!0)],64))),256))]),n("div",rA,[t[36]||(t[36]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Repository"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Views"),n("div",{role:"columnheader"},"Expires"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(K,null,ne(e.filteredRepositories,(s,r)=>(l(),d("div",{class:P(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error"}]),role:"row",key:s?.repoId},[n("div",aA,[t[27]||(t[27]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[n("use",{href:"#project-type-repo"})],-1)),n("div",lA,[n("a",{class:"repo-name",textContent:u(s?.repoId),href:e.safeUrl("/r/"+s?.repoId+"/")},null,8,dA),n("div",uA,[n("span",cA,[n("a",{target:"_blank",rel:"noopener",textContent:u(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,pA),s?.options?.update&&s?.source?.branch?(l(),d("span",fA,[t[25]||(t[25]=v(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:u(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,hA)])):p("v-if",!0),s?.source?.commit?(l(),d("span",mA,[t[26]||(t[26]=v(" \xB7 ",-1)),n("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},"@"+u(s?.source?.commit?.substring(0,8)),9,vA)])):p("v-if",!0)])])])]),n("div",gA,[n("div",yA,[n("span",{class:P(["status-dot","status-"+(s?.status=="error"?"error":s?.status=="ready"?"ready":s?.status=="expired"||s?.status=="removed"?s?.status:"progress")]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(s?.status))},null,8,bA)]),s?.anonymizeDate?(l(),d("div",wA,"anonymized "+u(e.fmt?.humanTime(s?.anonymizeDate)),1)):p("v-if",!0)]),n("div",kA,[t[28]||(t[28]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),t[29]||(t[29]=v()),n("span",{textContent:u(e.fmt?.number(s?.pageView))},null,8,EA)]),n("div",CA,[t[31]||(t[31]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),s?.status=="ready"&&(s?.options?.expirationMode==="never"||!s?.options?.expirationDate)?(l(),d("span",SA,"Never")):p("v-if",!0),s?.status=="ready"&&s?.options?.expirationMode!=="never"&&s?.options?.expirationDate?(l(),d("span",{key:1,textContent:u(e.fmt?.humanTime(s?.options?.expirationDate))},null,8,_A)):p("v-if",!0),s?.status=="expired"?(l(),d("span",NA,[t[30]||(t[30]=v("Expired",-1)),s?.options?.expirationDate?(l(),d("span",RA,u(e.fmt?.humanTime(s?.options?.expirationDate)),1)):p("v-if",!0)])):p("v-if",!0),s?.status!="ready"&&s?.status!="expired"?(l(),d("span",DA,"\u2014")):p("v-if",!0)]),n("div",TA,[n("div",AA,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+s?.repoId},[...t[32]||(t[32]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,OA),n("div",PA,[n("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[33]||(t[33]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View ",-1)])],8,IA),n("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[34]||(t[34]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit ",-1)])],8,VA)])])])],2))),128)),e.filteredRepositories?.length==0?(l(),d("div",qA,[t[35]||(t[35]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conference?.repositories?.length?p("v-if",!0):(l(),d("span",MA,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(l(),d("span",UA,"Nothing matches the current filters.")):p("v-if",!0),e.conference?.repositories?.length?(l(),d("div",$A,[n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")])):p("v-if",!0)])):p("v-if",!0)])])])}var LA={class:"container page paper-page conferences-page"},FA={class:"row"},BA={class:"w-100"},HA={class:"search-wrap"},zA={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},jA={class:"dashboard-filter-controls"},GA={class:"dropdown"},WA={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},KA={class:"filter-btn-value"},YA={class:"dropdown-menu","aria-labelledby":"dropdownSort"},JA={class:"form-check dropdown-item"},QA={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},XA={class:"form-check dropdown-item"},ZA={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},xA={class:"form-check dropdown-item"},eO={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},tO={class:"dropdown"},nO={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},oO={key:0,class:"filter-btn-value"},sO={key:1,class:"filter-btn-value"},iO={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},rO={class:"form-check dropdown-item"},aO=["id"],lO=["for"],dO={class:"dashboard-meta"},uO={class:"dashboard-count"},cO={key:0},pO={key:0},fO={key:1},hO={key:0,class:"filter-chip"},mO=["onClick","aria-label"],vO={key:0,class:"conference-feedback",role:"alert"},gO={key:1,class:"conference-feedback",role:"status"},yO={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},bO={class:"cell-anon",role:"cell"},wO={class:"anon-text"},kO=["textContent","href"],EO={class:"anon-sub"},CO={class:"anon-source"},SO=["textContent"],_O={key:0},NO=["textContent","href"],RO={class:"cell-status",role:"cell"},DO={class:"status-line"},TO=["textContent"],AO={class:"cell-views num",role:"cell"},OO=["textContent"],PO={class:"cell-expires",role:"cell"},IO={key:0},VO={key:1,class:"empty-dash","aria-label":"No review window"},qO={class:"cell-actions",role:"cell"},MO={class:"dropdown"},UO=["disabled","aria-label"],$O={class:"dropdown-menu dropdown-menu-right"},LO=["href"],FO=["href"],BO={key:0},HO=["onClick"],zO={key:0,class:"paper-table-empty"},jO={key:0},GO={key:1},WO={class:"paper-table-empty-actions"},KO={key:1,href:"/conference/new",class:"btn btn-ink"};function Hl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",LA,[n("div",FA,[n("div",BA,[t[10]||(t[10]=fe('
My work \xA0/\xA0 Conferences

Your conferences

Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.

New conference
',2)),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[n("div",HA,[D(n("input",zA,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",jA,[n("div",GA,[n("button",WA,[t[3]||(t[3]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",KA,u({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),n("div",YA,[t[7]||(t[7]=n("h6",{class:"dropdown-header"},"Order by",-1)),n("div",JA,[D(n("input",QA,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),n("div",XA,[D(n("input",ZA,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[5]||(t[5]=n("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),n("div",xA,[D(n("input",eO,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[6]||(t[6]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),n("div",tO,[n("button",nO,[t[8]||(t[8]=n("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",oO,"All")):p("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?p("v-if",!0):(l(),d("span",sO,u((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),n("div",iO,[t[9]||(t[9]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(K,null,ne(e.statusLabels,(s,r,a)=>(l(),d("div",rO,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+r},null,8,aO),[[o,{state:e.viewState,set:c=>{e.filters.status[r]=c},value:e.filters?.status[r],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+r},u(s),9,lO)]))),256))])])])],32)),[[i,e.viewState]]),n("div",dO,[n("span",uO,[e.filteredConferences?.length===e.conferences?.length?(l(),d("span",cO,[v(u(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(l(),d("span",pO,"s")):p("v-if",!0)])):p("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(l(),d("span",fO,u(e.fmt?.number(e.filteredConferences?.length))+" of "+u(e.fmt?.number(e.conferences?.length))+" shown",1)):p("v-if",!0)]),(l(!0),d(K,null,ne(e.filters?.status,(s,r,a)=>(l(),d(K,null,[s===!1?(l(),d("span",hO,[v(" Hiding "+u(e.statusLabels[r])+" ",1),n("button",{type:"button",class:"filter-chip-close",onClick:c=>{e.filters.status[r]=!0},"aria-label":"Show "+e.statusLabels[r]+" again"},"\xD7",8,mO)])):p("v-if",!0)],64))),256))])]),e.error?(l(),d("div",vO,[n("span",null,u(e.error),1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=s=>e.loadConferences())},"Retry")])):p("v-if",!0),e.loading?(l(),d("div",gO,"Loading conferences\u2026")):p("v-if",!0),n("div",yO,[t[24]||(t[24]=n("div",{class:"paper-table-head",role:"row"},[n("div",{role:"columnheader"},"Conference"),n("div",{role:"columnheader"},"Status"),n("div",{role:"columnheader",class:"num"},"Repos"),n("div",{role:"columnheader"},"Review window"),n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(K,null,ne(e.filteredConferences,(s,r)=>(l(),d("div",{class:P(["paper-table-row row-clickable",{"repo-inactive":s?.status=="expired"||s?.status=="removed"}]),role:"row",key:s?.conferenceID},[n("div",bO,[t[13]||(t[13]=n("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[n("use",{href:"#project-icon-conference"})],-1)),n("div",wO,[n("a",{class:"repo-name",textContent:u(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,kO),n("div",EO,[n("span",CO,[t[12]||(t[12]=v("ID ",-1)),n("span",{class:"commit-hash",textContent:u(s?.conferenceID)},null,8,SO),s?.url?(l(),d("span",_O,[t[11]||(t[11]=v(" \xB7 ",-1)),n("a",{target:"_blank",rel:"noopener",textContent:u(e.fmt?.limitTo(s?.url,60)),href:e.safeUrl(s?.url)},null,8,NO)])):p("v-if",!0)])])])]),n("div",RO,[n("div",DO,[n("span",{class:P(["status-dot","status-"+s?.status]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(s?.status))},null,8,TO)])]),n("div",AO,[t[14]||(t[14]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1)),t[15]||(t[15]=v()),n("span",{textContent:u(e.fmt?.number(s?.nbRepositories||0))},null,8,OO)]),n("div",PO,[t[16]||(t[16]=n("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),s?.startDate?(l(),d("span",IO,u(e.fmt?.date(s?.startDate,"mediumDate"))+" \u2013 "+u(e.fmt?.date(s?.endDate,"mediumDate")),1)):p("v-if",!0),s?.startDate?p("v-if",!0):(l(),d("span",VO,"\u2014"))]),n("div",qO,[n("div",MO,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:s?.removing,"aria-label":"Actions for "+s?.name},[...t[17]||(t[17]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,UO),n("div",$O,[n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[18]||(t[18]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View ",-1)])],8,LO),n("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit ",-1)])],8,FO),s?.status!="removed"?(l(),d("div",BO,[t[21]||(t[21]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeConference(s)},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove ",-1)])],8,HO)])):p("v-if",!0)])])])],2))),128)),!e.loading&&!e.error&&e.filteredConferences?.length==0?(l(),d("div",zO,[t[23]||(t[23]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.conferences?.length==0?(l(),d("span",jO,"You have not created a conference yet.")):p("v-if",!0),e.conferences?.length>0?(l(),d("span",GO,"Nothing matches the current filters.")):p("v-if",!0),n("div",WO,[e.conferences?.length>0?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):p("v-if",!0),e.conferences?.length==0?(l(),d("a",KO,[...t[22]||(t[22]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),v(" New conference",-1)])])):p("v-if",!0)])])):p("v-if",!0)])])])}var YO={class:"container page dashboard-page paper-page"},JO={class:"row"},QO={class:"w-100"},XO={class:"dashboard-heading"},ZO=["open"],xO=["aria-expanded"],eP=["stroke-dasharray"],tP={key:1,d:"M7 12c0-4 4-4 5 0s5 4 5 0-4-4-5 0-5 4-5 0",class:"quota-ring-unlimited"},nP={key:0,class:"quota-summary-value"},oP={key:0},sP={class:"quota-panel",id:"dashboard-usage"},iP={class:"quota-panel-heading"},rP={key:1,class:"quota-loading",role:"status"},aP={class:"search-wrap"},lP={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search projects, IDs, or conferences\u2026",autocomplete:"off"},dP=["aria-expanded"],uP={class:"btn-group",role:"group","aria-label":"Type"},cP=["aria-pressed"],pP=["aria-pressed"],fP=["aria-pressed"],hP=["aria-pressed"],mP={class:"dropdown"},vP={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},gP={class:"filter-btn-value"},yP={class:"sr-only"},bP={class:"dropdown-menu","aria-labelledby":"dropdownSort"},wP={class:"form-check dropdown-item"},kP=["onClick","checked","id"],EP=["for"],CP={class:"dropdown"},SP={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},_P={key:0,class:"filter-btn-value"},NP={key:1,class:"filter-btn-value"},RP={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},DP={class:"form-check dropdown-item"},TP=["id"],AP=["for"],OP={key:0,class:"dashboard-meta"},PP={class:"dashboard-view-tabs",role:"group","aria-label":"Project view"},IP=["aria-pressed"],VP=["aria-pressed","aria-label"],qP={class:"dashboard-count"},MP={key:0},UP={key:0},$P={key:1},LP={class:"dashboard-active-filters"},FP=["onClick","aria-label","title"],BP=["aria-busy"],HP={class:"paper-table-head",role:"row"},zP=["aria-sort"],jP=["aria-sort"],GP=["aria-sort"],WP=["aria-sort"],KP={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},YP=["onClick"],JP={class:"cell-anon",role:"cell"},QP=["aria-label","title"],XP={class:"project-type-svg","aria-hidden":"true"},ZP=["href"],xP={class:"anon-text"},eI={class:"anon-title"},tI=["title","textContent","href"],nI=["textContent"],oI={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},sI={class:"anon-sub"},iI=["title"],rI=["title"],aI=["title"],lI=["textContent"],dI={class:"dashboard-row-meta",role:"presentation"},uI={class:"cell-status",role:"cell"},cI={class:"status-line"},pI=["textContent"],fI=["textContent","title"],hI=["title"],mI=["href"],vI=["onClick"],gI={key:4,class:"status-sub status-sub-date"},yI=["aria-label"],bI={class:"cell-expires",role:"cell"},wI={key:0,class:"expires-never"},kI=["textContent"],EI={key:2,class:"expires-past"},CI={key:3,class:"expires-past"},SI={key:4,class:"empty-dash","aria-label":"Not applicable"},_I={class:"cell-actions",role:"cell"},NI=["onClick","disabled","title","aria-label"],RI=["onClick","data-project-actions","aria-controls","aria-expanded"],DI={key:2,class:"dropdown"},TI=["data-project-actions","aria-label"],AI={class:"dropdown-menu dropdown-menu-right"},OI=["onClick","aria-controls","aria-expanded"],PI=["href"],II=["href"],VI=["onClick","disabled"],qI=["href"],MI=["onClick"],UI=["onClick"],$I=["onClick"],LI={key:5},FI=["onClick"],BI={key:1,class:"project-details-row",role:"row"},HI=["id","onKeydown"],zI={class:"project-details-heading"},jI=["onClick"],GI={class:"project-details-list"},WI={key:0},KI={key:1},YI={key:0},JI={key:2},QI={key:0,class:"project-progress-help"},XI=["href"],ZI=["onSubmit"],xI=["for"],e4=["id"],t4={class:"project-name-controls"},n4=["id","aria-describedby","disabled"],o4=["disabled"],s4={key:0,class:"project-name-error",role:"alert"},i4={key:1,role:"status"},r4={key:0,class:"paper-table-empty"},a4={key:0},l4={key:1},d4={class:"paper-table-empty-actions"},u4={key:1,href:"/anonymize",class:"btn btn-ink"},c4={key:0,class:"dashboard-pagination"},p4={key:0,role:"alert"},f4=["disabled"];function zl(e,t){let o=Ge("quota-usage"),i=ge("field"),s=ge("form");return l(),d("div",YO,[n("div",JO,[n("div",QO,[n("div",XO,[n("div",null,[t[27]||(t[27]=n("h1",{class:"paper-page-title"},"Projects",-1)),t[28]||(t[28]=n("p",{class:"paper-page-lede"},"Manage your anonymous links.",-1)),n("details",{class:"dashboard-quota",open:e.quotaExpanded,onToggle:t[1]||(t[1]=r=>e.quotaExpanded=r.target.open),onKeydown:t[2]||(t[2]=An(de(r=>e.closeQuota(),["prevent","stop"]),["esc"]))},[n("summary",{"aria-controls":"dashboard-usage","aria-expanded":e.quotaExpanded},[(l(),d("svg",{class:P(["quota-summary-ring",e.quota?"quota-"+e.quota.repository.level:""]),viewBox:"0 0 24 24","aria-hidden":"true"},[t[21]||(t[21]=n("circle",{class:"quota-ring-track",cx:"12",cy:"12",r:"9"},null,-1)),e.quota&&!e.quota.repository.unlimited?(l(),d("circle",{key:0,class:"quota-ring-fill",cx:"12",cy:"12",r:"9",pathLength:"100","stroke-dasharray":e.quota.repository.percent+" 100"},null,8,eP)):p("v-if",!0),e.quota?.repository.unlimited?(l(),d("path",tP)):p("v-if",!0)],2)),t[23]||(t[23]=n("span",{class:"quota-summary-label"},"Usage",-1)),e.quota?(l(),d("span",nP,[v(u(e.fmt.number(e.quota.repository.used)),1),e.quota.repository.unlimited?p("v-if",!0):(l(),d("span",oP," / "+u(e.fmt.number(e.quota.repository.total)),1)),t[22]||(t[22]=v(" repos",-1))])):p("v-if",!0),t[24]||(t[24]=n("svg",{class:"project-type-svg quota-summary-chevron","aria-hidden":"true"},[n("use",{href:"#project-icon-chevron"})],-1))],8,xO),n("div",sP,[n("div",iP,[t[26]||(t[26]=n("h2",null,"Account usage",-1)),n("button",{type:"button",class:"project-close","aria-label":"Close usage",onClick:t[0]||(t[0]=r=>e.closeQuota())},[...t[25]||(t[25]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),e.quota?(l(),Ft(o,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",rP,"Loading usage\u2026"))])],40,ZO)]),t[29]||(t[29]=fe('',1))]),p(" Search + filters "),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[9]||(t[9]=de(r=>e.submitForm(r,()=>{r.preventDefault()}),["prevent"]))},[n("div",aP,[D(n("input",lP,null,512),[[i,{state:e.viewState,set:r=>{e.search=r},value:e.search,form:null,options:{}}]])]),n("button",{class:"btn dashboard-filters-toggle",type:"button","aria-expanded":e.filtersExpanded,"aria-controls":"dashboard-filter-controls",onClick:t[3]||(t[3]=r=>e.filtersExpanded=!e.filtersExpanded)},[...t[30]||(t[30]=[v("Filters",-1),n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})],-1)])],8,dP),n("div",{id:"dashboard-filter-controls",class:P(["dashboard-filter-controls",{expanded:e.filtersExpanded}])},[n("div",uP,[n("button",{type:"button",class:P(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[4]||(t[4]=r=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,cP),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="repo"}]),title:"Repositories",onClick:t[5]||(t[5]=r=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},[...t[31]||(t[31]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-repo"})],-1),n("span",{class:"type-filter-label"},"Repos",-1)])],10,pP),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="pr"}]),title:"Pull requests",onClick:t[6]||(t[6]=r=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},[...t[32]||(t[32]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-pr"})],-1),n("span",{class:"type-filter-label"},"PRs",-1)])],10,fP),n("button",{type:"button",class:P(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="gist"}]),title:"Gists",onClick:t[7]||(t[7]=r=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},[...t[33]||(t[33]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1),n("span",{class:"type-filter-label"},"Gists",-1)])],10,hP)]),n("div",{id:"dashboard-extra-filters",class:P(["dashboard-extra-filters",{expanded:e.filtersExpanded}])},[n("div",mP,[n("button",vP,[t[35]||(t[35]=n("span",{class:"filter-btn-label"},"Sort",-1)),n("span",gP,u(e.sortLabel()),1),(l(),d("svg",{class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[34]||(t[34]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)),n("span",yP,u(e.sortDesc()?"descending":"ascending"),1)]),n("div",bP,[t[36]||(t[36]=n("h6",{class:"dropdown-header"},"Order by",-1)),(l(!0),d(K,null,ne(e.sortFields,(r,a,c)=>(l(),d("div",wP,[n("input",{class:"form-check-input",type:"radio",name:"sort",onClick:f=>e.setSort(a,r.defaultDesc),checked:e.isSortedBy(a),id:"sort-"+c},null,8,kP),n("label",{class:"form-check-label",for:"sort-"+c},u(r?.label),9,EP)]))),256)),t[37]||(t[37]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item",onClick:t[8]||(t[8]=r=>e.toggleSortDirection())},u(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])]),n("div",CP,[n("button",SP,[t[38]||(t[38]=n("span",{class:"filter-btn-label"},"Status",-1)),e.hasHiddenStatus()?p("v-if",!0):(l(),d("span",_P,"All")),e.hasHiddenStatus()?(l(),d("span",NP,u(e.hiddenStatusCount())+" hidden",1)):p("v-if",!0)]),n("div",RP,[t[39]||(t[39]=n("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(K,null,ne(e.statusKeyLabels,(r,a,c)=>(l(),d("div",DP,[D(n("input",{class:"form-check-input",type:"checkbox",id:"status-"+a},null,8,TP),[[i,{state:e.viewState,set:f=>{e.filters.status[a]=f},value:e.filters?.status[a],form:null,options:{}}]]),n("label",{class:"form-check-label",for:"status-"+a},u(r),9,AP)]))),256))])])],2)],2)],32)),[[s,e.viewState]]),p(" Result count + active filter chips "),e.loading?p("v-if",!0):(l(),d("div",OP,[n("div",PP,[n("button",{type:"button","aria-pressed":e.projectView==="all",onClick:t[10]||(t[10]=r=>e.setProjectView("all")),"aria-label":"All projects"},[...t[40]||(t[40]=[n("span",{class:"dashboard-view-long"},"All projects",-1),n("span",{class:"dashboard-view-short","aria-hidden":"true"},"All",-1)])],8,IP),n("button",{type:"button","aria-pressed":e.projectView==="attention",onClick:t[11]||(t[11]=r=>e.setProjectView("attention")),"aria-label":"Needs attention "+e.attentionCount()},[t[41]||(t[41]=n("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[42]||(t[42]=n("span",null,"attention",-1)),t[43]||(t[43]=v()),n("span",{class:P(["attention-count",{"has-attention":e.attentionCount()>0}])},u(e.attentionCount()),3)],8,VP)]),n("span",qP,[(e.dashboardTotals?.filtered??e.filteredItems?.length)===(e.dashboardTotals?.total??e.items?.length)?(l(),d("span",MP,[v(u(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" project",1),(e.dashboardTotals?.total??e.items?.length)!==1?(l(),d("span",UP,"s")):p("v-if",!0)])):(l(),d("span",$P,u(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" of "+u(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" shown",1))]),n("div",LP,[(l(!0),d(K,null,ne(e.filters?.status,(r,a,c)=>(l(),d(K,null,[r===!1?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:f=>e.filters.status[a]=!0,"aria-label":"Show "+e.statusKeyLabels[a]+" again",title:"Show "+e.statusKeyLabels[a]+" again"},[v(u(e.statusKeyLabels[a])+" hidden",1),t[44]||(t[44]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))],8,FP)):p("v-if",!0)],64))),256)),e.typeFilter!=="all"?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:t[12]||(t[12]=r=>e.typeFilter="all"),"aria-label":"Show all project types"},[v(u(e.typeFilter==="repo"?"Repositories":e.typeFilter==="pr"?"Pull requests":"Gists"),1),t[45]||(t[45]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1))])):p("v-if",!0),e.showClearFilters()?(l(),d("button",{key:1,type:"button",class:"btn-link-inline",onClick:t[13]||(t[13]=r=>e.clearFilters())},"Clear filters")):p("v-if",!0)])]))]),p(" Table "),n("div",{class:"paper-table paper-table-dashboard",role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[n("div",HP,[n("div",{role:"columnheader","aria-sort":e.isSortedBy("_label")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("_label")}]),onClick:t[14]||(t[14]=r=>e.setSort("_label"))},[t[47]||(t[47]=v(" Project ",-1)),e.isSortedBy("_label")?(l(),d("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[46]||(t[46]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,zP),n("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("status")}]),onClick:t[15]||(t[15]=r=>e.setSort("status"))},[t[49]||(t[49]=v(" Status ",-1)),e.isSortedBy("status")?(l(),d("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[48]||(t[48]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,jP),n("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[16]||(t[16]=r=>e.setSort("pageView"))},[t[51]||(t[51]=v(" Views ",-1)),e.isSortedBy("pageView")?(l(),d("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[50]||(t[50]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,GP),n("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[n("button",{type:"button",class:P(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[17]||(t[17]=r=>e.setSort("options.expirationDate"))},[t[53]||(t[53]=v(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(l(),d("svg",{key:0,class:P(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[52]||(t[52]=[n("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,WP),t[54]||(t[54]=n("div",{role:"columnheader"},[n("span",{class:"sr-only"},"Actions")],-1))]),p(" Loading skeleton: keeps the layout stable while the three lists load "),(l(),d(K,null,ne([1,2,3,4],(r,a)=>(l(),d(K,null,[e.loading?(l(),d("div",KP,[...t[55]||(t[55]=[n("div",{class:"cell-anon",role:"cell"},[n("span",{class:"skeleton skeleton-badge"}),n("div",{class:"anon-text"},[n("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),n("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),n("div",{class:"cell-status",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),n("div",{class:"cell-views num",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),n("div",{class:"cell-expires",role:"cell"},[n("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),n("div",{class:"cell-actions",role:"cell"},null,-1)])])):p("v-if",!0)],64))),64)),(l(!0),d(K,null,ne(e.filteredItems,(r,a)=>(l(),d(K,{key:r?._type+":"+(r?._id||a)},[e.loading?p("v-if",!0):(l(),d("div",{key:0,class:P(["paper-table-row",{"repo-inactive":r?._statusKey=="expired"||r?._statusKey=="removed","repo-error":r?.status=="error","row-clickable":!!r?._viewUrl}]),role:"row",onClick:c=>e.openItem(r,c)},[n("div",JP,[n("span",{class:"project-type-icon",role:"img","aria-label":r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist",title:r?._type==="repo"?"Repository":r?._type==="pr"?"Pull request":"Gist"},[(l(),d("svg",XP,[n("use",{href:"#project-type-"+r._type},null,8,ZP)]))],8,QP),n("div",xP,[n("div",eI,[r?._viewUrl?(l(),d("a",{key:0,class:"repo-name",title:r._label,textContent:u(r?._label),href:e.safeUrl(r?._viewUrl)},null,8,tI)):p("v-if",!0),r?._viewUrl?p("v-if",!0):(l(),d("span",{key:1,class:"repo-name repo-name-static",textContent:u(r?._label)},null,8,nI)),r?.role==="coauthor"?(l(),d("span",oI,"Co-author")):p("v-if",!0)]),n("div",sI,[r?._id?(l(),d("code",{key:0,class:"anonymous-id",title:r._id},u(r._id),9,iI)):p("v-if",!0),r?._type==="repo"&&r?.source?.commit?(l(),d("span",{key:1,class:"commit-hash",title:r.source.commit},u(r.source.commit.substring(0,8)),9,rI)):p("v-if",!0),r?.conference?(l(),d("span",{key:2,class:"cell-conf conf-tag",title:r?.conference},[t[56]||(t[56]=n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),t[57]||(t[57]=v()),n("span",{textContent:u(r?.conference)},null,8,lI)],8,aI)):p("v-if",!0)])])]),n("div",dI,[n("div",uI,[n("div",cI,[n("span",{class:P(["status-dot","status-"+r?._statusKey]),"aria-hidden":"true"},null,2),n("span",{class:"status-word",textContent:u(e.fmt?.statusLabel(r?.status))},null,8,pI)]),r?.status=="error"&&r?.statusMessage?(l(),d("div",{key:0,class:"status-sub status-sub-error",textContent:u(e.fmt?.statusMsg(r?.statusMessage)),title:r?.statusMessage},null,8,fI)):p("v-if",!0),r?._stale?(l(),d("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(r?.anonymizeDate||r?.lastView)}," Last activity "+u(e.fmt?.humanTime(r?.anonymizeDate||r?.lastView))+" \xB7 may be stuck ",9,hI)):p("v-if",!0),r.status==="error"&&r._editUrl?(l(),d("a",{key:2,class:"project-attention-action",href:e.safeUrl(r._editUrl)},"Fix source",8,mI)):p("v-if",!0),r._stale||r._broken?(l(),d("button",{key:3,type:"button",class:"project-attention-action",onClick:de(c=>e.showProjectDetails(r),["stop"])},u(r._broken?"Review details":"Check progress"),9,vI)):p("v-if",!0),r?.status!="error"&&!r?._stale&&r?.anonymizeDate?(l(),d("div",gI," anonymized "+u(e.fmt?.humanTime(r?.anonymizeDate)),1)):p("v-if",!0)]),n("div",{class:"cell-views num",role:"cell","aria-label":e.fmt.number(r.pageView)+" views"},[t[58]||(t[58]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),n("span",null,u(e.fmt.number(r.pageView)),1)],8,yI),n("div",bI,[t[59]||(t[59]=n("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),r?._expiry?.kind==="never"?(l(),d("span",wI,"Never")):p("v-if",!0),r?._expiry?.kind==="date"?(l(),d("span",{key:1,textContent:u(e.fmt?.humanTime(r?._expiry?.date))},null,8,kI)):p("v-if",!0),r?._expiry?.kind==="expired"&&r?._expiry?.date?(l(),d("span",EI,"Expired "+u(e.fmt?.humanTime(r?._expiry?.date)),1)):p("v-if",!0),r?._expiry?.kind==="expired"&&!r?._expiry?.date?(l(),d("span",CI,"Expired")):p("v-if",!0),r?._expiry?.kind==="none"?(l(),d("span",SI,"\u2014")):p("v-if",!0)])]),n("div",_I,[r._viewUrl?(l(),d("button",{key:0,type:"button",class:"copy-link-inline",onClick:de(c=>e.copyLink(r),["stop"]),disabled:!!e.copyingId,title:"Copy anonymous link for "+r._label,"aria-label":"Copy anonymous link for "+r._label},[...t[60]||(t[60]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-copy"})],-1)])],8,NI)):p("v-if",!0),r._broken?(l(),d("button",{key:1,type:"button",class:"project-details-button",onClick:de(c=>e.showProjectDetails(r),["stop"]),"data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Details",8,RI)):p("v-if",!0),r?._broken?p("v-if",!0):(l(),d("div",DI,[n("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","data-project-actions":encodeURIComponent(r._type+":"+r._id),"aria-label":"Actions for "+r?._name},[...t[61]||(t[61]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-more"})],-1)])],8,TI),n("div",AI,[n("button",{type:"button",class:"dropdown-item",onClick:c=>e.showProjectDetails(r),"aria-controls":e.projectDetailsId(r),"aria-expanded":e.selectedProject===r},"Project details & name",8,OI),n("a",{class:"dropdown-item",href:e.safeUrl(r?._viewUrl)}," View ",8,PI),r?._type==="repo"&&r?.options?.page&&r?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+r?.repoId+"/")}," View page ",8,II)):p("v-if",!0),r?._viewUrl?(l(),d("button",{key:1,type:"button",class:"dropdown-item",onClick:c=>e.copyLink(r),disabled:!!e.copyingId}," Copy anonymous link ",8,VI)):p("v-if",!0),n("a",{class:"dropdown-item",href:e.safeUrl(r?._editUrl)}," Edit ",8,qI),r?.status=="ready"||r?.status=="error"?(l(),d("button",{key:2,type:"button",class:"dropdown-item",onClick:c=>e.refreshItem(r)}," Force update ",8,MI)):p("v-if",!0),r?.status=="removed"?(l(),d("button",{key:3,type:"button",class:"dropdown-item",onClick:c=>e.refreshItem(r)}," Enable ",8,UI)):p("v-if",!0),r?.status=="expired"?(l(),d("button",{key:4,type:"button",class:"dropdown-item",onClick:c=>e.extendItem(r)}," Extend 6 months ",8,$I)):p("v-if",!0),(r?.status=="ready"||r?.status=="expired"||r?.status=="error")&&r?.role!=="coauthor"?(l(),d("div",LI,[t[62]||(t[62]=n("div",{class:"dropdown-divider"},null,-1)),n("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:c=>e.removeItem(r)}," Remove ",8,FI)])):p("v-if",!0)])]))])],10,YP)),!e.loading&&e.selectedProject===r?(l(),d("div",BI,[n("div",{class:"project-details",role:"cell","aria-colspan":"5",id:e.projectDetailsId(r),tabindex:"-1",onKeydown:An(de(c=>e.closeProjectDetails(r),["stop"]),["esc"])},[n("div",zI,[t[64]||(t[64]=n("h2",null,"Project details",-1)),n("button",{type:"button",class:"project-close",onClick:c=>e.closeProjectDetails(r),"aria-label":"Close project details"},[...t[63]||(t[63]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])],8,jI)]),n("dl",GI,[n("div",null,[t[65]||(t[65]=n("dt",null,"Source",-1)),n("dd",null,u(r._source||"Not available"),1)]),n("div",null,[t[66]||(t[66]=n("dt",null,"Anonymous ID",-1)),n("dd",null,[n("code",null,u(r._id||"Missing identifier"),1)])]),r.source?.commit?(l(),d("div",WI,[t[67]||(t[67]=n("dt",null,"Commit",-1)),n("dd",null,[n("code",null,u(r.source.commit),1)])])):p("v-if",!0),r.conference?(l(),d("div",KI,[t[68]||(t[68]=n("dt",null,"Conference",-1)),n("dd",null,u(r.conference),1)])):p("v-if",!0),n("div",null,[t[69]||(t[69]=n("dt",null,"Status",-1)),n("dd",null,[v(u(e.fmt.statusLabel(r.status)),1),r.statusMessage?(l(),d("span",YI," \xB7 "+u(e.fmt.statusMsg(r.statusMessage)),1)):p("v-if",!0)])]),r.anonymizeDate?(l(),d("div",JI,[t[70]||(t[70]=n("dt",null,"Last anonymized",-1)),n("dd",null,u(e.fmt.humanTime(r.anonymizeDate)),1)])):p("v-if",!0)]),r._stale?(l(),d("p",QI,"This download has not progressed recently. Check the source access and selected branch before retrying.")):p("v-if",!0),r._editUrl?(l(),d("a",{key:1,class:"project-attention-action",href:e.safeUrl(r._editUrl)},u(e.needsAttention(r)?"Check source settings":"Edit anonymization settings"),9,XI)):p("v-if",!0),r._id?(l(),d("form",{key:2,class:"project-name-form",onSubmit:de(c=>e.saveProjectName(r),["prevent"])},[n("label",{for:"project-name-"+r._type+"-"+r._id},"Project name",8,xI),n("p",{id:"project-name-help-"+r._type+"-"+r._id},"Only you see this name. Leave it blank to use the default.",8,e4),n("div",t4,[D(n("input",{class:"form-control",type:"text",id:"project-name-"+r._type+"-"+r._id,"aria-describedby":"project-name-help-"+r._type+"-"+r._id,maxlength:"100","onUpdate:modelValue":t[18]||(t[18]=c=>e.projectName=c),disabled:e.nameSaving},null,8,n4),[[wt,e.projectName]]),n("button",{class:"btn btn-ink",type:"submit",disabled:e.nameSaving},u(e.nameSaving?"Saving\u2026":"Save name"),9,o4)]),e.nameError?(l(),d("p",s4,u(e.nameError),1)):p("v-if",!0),e.nameMessage?(l(),d("p",i4,u(e.nameMessage),1)):p("v-if",!0)],40,ZI)):p("v-if",!0)],40,HI)])):p("v-if",!0)],64))),128)),!e.loading&&e.filteredItems?.length==0?(l(),d("div",r4,[t[72]||(t[72]=n("svg",{class:"project-type-svg project-empty-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1)),e.hasProjects()?p("v-if",!0):(l(),d("span",a4,"You have no anonymizations yet.")),e.hasProjects()?(l(),d("span",l4,"Nothing matches the current filters.")):p("v-if",!0),n("div",d4,[e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=r=>e.clearFilters())},"Clear filters")):p("v-if",!0),e.hasProjects()?p("v-if",!0):(l(),d("a",u4,[...t[71]||(t[71]=[n("svg",{class:"project-type-svg","aria-hidden":"true"},[n("use",{href:"#project-icon-plus"})],-1),v(" New anonymization",-1)])]))])])):p("v-if",!0)],8,BP)]),e.dashboardCursor||e.dashboardError?(l(),d("div",c4,[e.dashboardError?(l(),d("p",p4,u(e.dashboardError),1)):p("v-if",!0),e.dashboardCursor?(l(),d("button",{key:1,type:"button",class:"btn",onClick:t[20]||(t[20]=r=>e.loadMoreProjects()),disabled:e.loadingMore},u(e.loadingMore?"Loading\u2026":"Load more projects"),9,f4)):p("v-if",!0)])):p("v-if",!0)])}var h4={class:"explorer-page"},m4=["aria-label"],v4={class:"ui-icon","aria-hidden":"true"},g4=["href"],y4=["textContent"],b4={class:"leftCol-head"},w4={class:"leftCol-search"},k4={class:"tree-search-box"},E4=["href"],C4={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},S4={class:"leftCol-project-header"},_4=["textContent","title"],N4={key:0,class:"project-file-count"},R4=["title"],D4={class:"leftCol-body"},T4={key:0,class:"paper-inline-warning",role:"alert"},A4={key:1,class:"paper-inline-warning",role:"alert"},O4={class:"leftCol-foot"},P4=["title"],I4=["title"],V4=["title"],q4={key:2,class:"last-update",title:"Older repositories have no recorded publication date. The source commit date does not establish when files became available here."},M4={class:"explorer-main"},U4={class:"status-bar"},$4={class:"breadcrumb paths","aria-label":"Path"},L4=["textContent"],F4={class:"status-bar-actions"},B4=["href"],H4={class:"d-none d-md-inline"},z4={class:"ui-icon","aria-hidden":"true"},j4=["href"],G4={class:"d-none d-md-inline"},W4=["href"],K4=["href"],Y4=["href"],J4=["href"],Q4={class:"explorer-content"};function jl(e,t){let o=Ge("tree"),i=Ge("partial-view"),s=ge("field");return l(),d("div",h4,[D(n("button",{class:"sidebar-toggle",onClick:t[0]||(t[0]=r=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[(l(),d("svg",v4,[n("use",{href:e.sidebarCollapsed?"#ui-icon-folder":"#project-icon-close"},null,8,g4)])),n("span",{textContent:u(e.sidebarCollapsed?"Files":"Close")},null,8,y4)],8,m4),[[W,e.files?.length]]),D(n("div",{class:P(["leftCol",{collapsed:e.sidebarCollapsed}])},[n("div",b4,[t[7]||(t[7]=n("span",{class:"leftCol-eyebrow"},"Files",-1)),n("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[1]||(t[1]=r=>e.sidebarCollapsed=!0)},[...t[6]||(t[6]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-close"})],-1)])])]),n("div",w4,[n("div",k4,[(l(),d("svg",{class:P(["ui-icon tree-search-icon",{"fa-spin":e.fileSearchLoading}]),"aria-hidden":"true"},[n("use",{href:e.fileSearchLoading?"#ui-icon-spinner":"#ui-icon-search"},null,8,E4)],2)),D(n("input",C4,null,512),[[s,{state:e.viewState,set:r=>{e.fileSearchQuery=r},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),D(n("kbd",{class:"tree-search-kbd"},u(e.isMac?"\u2318":"Ctrl+")+"K",513),[[W,!e.fileSearchQuery]]),D(n("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[2]||(t[2]=r=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[W,e.fileSearchQuery]])])]),n("div",S4,[n("span",{class:"project-name",textContent:u(e.repoId),title:e.repoId},null,8,_4),e.fileCounts?.[""]!=null?(l(),d("span",N4,u(e.fileCounts[""])+" files",1)):p("v-if",!0),e.options?.expirationDate?(l(),d("span",{key:1,class:"project-expiry",title:e.options.expirationDate},[t[8]||(t[8]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v(" Available until "+u(e.fmt?.date(e.options.expirationDate)),1)],8,R4)):p("v-if",!0)]),n("div",D4,[e.options?.truncatedFolders?.length>0?(l(),d("div",T4,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):p("v-if",!0),e.options?.hasSubmodules?(l(),d("div",A4,[t[10]||(t[10]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),v(" "+u(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):p("v-if",!0),Ce(o,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])]),n("div",O4,[n("span",{class:"last-update",title:e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate},u(e.options?.sourceCommitDate?"Source commit":e.options?.anonymizedAt?"Anonymized":"Updated")+" "+u(e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),9,P4),e.options?.settingsSavedAt?(l(),d("span",{key:0,class:"last-update",title:e.options.settingsSavedAt}," Settings saved "+u(e.fmt?.date(e.options.settingsSavedAt)),9,I4)):p("v-if",!0),e.options?.publishedAt?(l(),d("span",{key:1,class:"last-update",title:e.options.publishedAt}," Snapshot ready "+u(e.fmt?.date(e.options.publishedAt)),9,V4)):p("v-if",!0),e.options?.anonymizedAt&&!e.options?.publishedAt?(l(),d("span",q4," Snapshot ready date not recorded ")):p("v-if",!0)])],2),[[W,e.files?.length]]),D(n("div",{class:"leftCol-backdrop",onClick:t[3]||(t[3]=r=>e.sidebarCollapsed=!0)},null,512),[[W,e.files?.length&&!e.sidebarCollapsed]]),n("div",M4,[D(n("div",U4,[n("ol",$4,[(l(!0),d(K,null,ne(e.paths,(r,a)=>(l(),d("li",{class:"breadcrumb-item",textContent:u(r)},null,8,L4))),256))]),n("div",F4,[e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[11]||(t[11]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,B4)):p("v-if",!0),e.type=="html-doc"&&!e.showSource?(l(),d("button",{key:1,class:P(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[4]||(t[4]=r=>e.toggleAllowScripts())},[t[12]||(t[12]=n("i",{class:"fab fa-js"},null,-1)),n("span",H4,u(e.allowScripts?"JS on":"JS off"),1)],2)):p("v-if",!0),e.type=="html-doc"?(l(),d("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[5]||(t[5]=r=>e.toggleSource())},[(l(),d("svg",z4,[n("use",{href:e.showSource?"#project-icon-eye":"#ui-icon-code"},null,8,j4)])),n("span",G4,u(e.showSource?"Rendered":"Source"),1)])):p("v-if",!0),D(n("a",{target:"_self",class:"btn btn-sm btn-icon-only","aria-label":"View raw current file",title:"View raw file",href:e.safeUrl(e.url)},[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1)])],8,W4),[[W,e.content!=null&&e.type!="error"&&e.type!="rate_limited"]]),D(n("a",{target:"_self",class:"btn btn-sm btn-icon-only","aria-label":"Download current file",title:"Download this file",href:e.safeUrl(e.url+"&download=true")},[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,K4),[[W,e.content!=null&&e.type!="error"&&e.type!="rate_limited"]]),e.options?.download?(l(),d("a",{key:3,target:"_self",class:"btn btn-sm btn-ink","aria-label":"Download repository as ZIP",title:"Download the whole repository as a ZIP archive",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),n("span",{class:"d-none d-md-inline"}," Download repository",-1)])],8,Y4)):p("v-if",!0),e.options?.hasWebsite?(l(),d("a",{key:4,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),n("span",{class:"d-none d-md-inline"}," Website",-1)])],8,J4)):p("v-if",!0)])],512),[[W,e.type!="error"||e.files?.length]]),n("div",Q4,[Ce(i,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])])}var X4={class:"paper-faq"};function Gl(e,t){return l(),d("div",X4,[...t[0]||(t[0]=[fe('
Help

Answers to the questions that come up most.

If something's missing, write to us \u2014 report a bug on GitHub.

',1),n("div",{class:"paper-faq-body"},[n("aside",{class:"paper-faq-toc"},[n("div",{class:"paper-faq-toc-head"},"Contents"),n("nav",null,[n("a",{href:"#faq-general"},"General"),n("a",{href:"#faq-plans"},"Plans and billing"),n("a",{href:"#faq-features"},"Features"),n("a",{href:"#faq-limitations"},"Limitations"),n("a",{href:"#faq-privacy"},"Privacy & Security"),n("a",{href:"#faq-hosting"},"Self-Hosting")])]),n("section",{class:"faq-section","aria-label":"FAQs"},[n("div",null,[p(" General "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})]),v("General ")]),n("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"false","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),n("div",{id:"whatIs",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingWhatIs"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub is an open-source tool with free hosting and optional paid plans that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information \u2014 such as the repository owner, organization name, and custom terms \u2014 so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),n("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),n("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[n("div",{class:"panel-body p-3"},[n("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix \u2014 not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),n("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[n("div",{class:"panel-body p-3"},[n("p",null," A free account includes 5 owned repositories and 2 GiB of source files. Optional paid plans offer more capacity, automatic refresh, and, with an author subscription, never-expiring repositories. Reviewers can read shared repositories without an account or payment. "),n("p",null,[v(" See "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(" for available plans and current prices. Offers depend on whether payments are enabled on this instance; the checkout shows the amount before you pay. Subscriptions help fund hosting, storage, backups, and continued maintenance. ")]),n("p",null,[v(" You can also support development through "),n("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank",rel:"noopener"},"GitHub Sponsors"),v(" or "),n("a",{href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener"},"Ko-fi"),v(". Donations are separate from subscriptions and do not automatically unlock paid features. ")])])])])]),p(" Plans and billing "),n("h4",{class:"faq-cat",id:"faq-plans-title"},"Plans and billing"),n("div",{class:"panel-group",id:"faq-plans",role:"tablist","aria-label":"Plans and billing","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFreePlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#freePlan","aria-expanded":"false","aria-controls":"freePlan"},"What is included in a free account?")])]),n("div",{id:"freePlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFreePlan"},[n("div",{class:"panel-body p-3"},[n("p",null,"The default free allowance is 5 repositories you own and 2 GiB of source files in total. Core anonymization and reviewer access remain free. You can manually refresh a repository within your allowance and choose a dated expiration up to one year ahead."),n("p",null,"Repositories shared with you as a coauthor do not use your own slots. Gists and pull requests are not included in these repository quotas. The usage shown in your account is the allowance available on this instance.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingAuthorPlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#authorPlans","aria-expanded":"false","aria-controls":"authorPlans"},"What do monthly and annual author subscriptions include?")])]),n("div",{id:"authorPlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingAuthorPlans"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("Both include 20 owned repositories and 10 GiB of source files in total. They also allow automatic refresh when enabled in repository settings and let the owner choose "),n("strong",null,"Never expire"),v(".")]),n("p",null,[v("Monthly and annual plans offer the same features with different billing periods. They renew automatically until you cancel renewal. Current prices are shown in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(".")]),n("p",null,"Paid plans do not change how anonymization works. File-size limits and other service safeguards still apply. Review your anonymized content before sharing it.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingReviewPass"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#reviewPass","aria-expanded":"false","aria-controls":"reviewPass"},"Can I pay for one repository without subscribing?")])]),n("div",{id:"reviewPass",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingReviewPass"},[n("div",{class:"panel-body p-3"},[n("p",null,"The author review pass covers one selected repository for 180 days, with a separate 2 GiB allowance and automatic refresh when enabled. It is a one-time purchase and does not renew automatically."),n("p",null,[v("Enter the anonymized ID of an existing repository you own in "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(". A pass does not unlock Never expire and does not override the repository's chosen expiration date.")])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConferencePlans"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#conferencePlans","aria-expanded":"false","aria-controls":"conferencePlans"},"Can a conference or lab pay for a group?")])]),n("div",{id:"conferencePlans",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConferencePlans"},[n("div",{class:"panel-body p-3"},[n("p",null,"A conference review package provides a shared allowance of 100 repositories and 50 GiB for a review window of up to 180 days. The organizer pays once; the package does not renew automatically. A lab organizing a review can use this shared package too."),n("p",null,"The paid conference must be activated by payment before authors can submit under its Conference ID. Eligible repositories use the conference allowance before an author's personal allowance, so authors do not each need a subscription for that capacity."),n("p",null,"The package has a fixed review window. Never expire still requires the repository owner's monthly or annual author subscription. See the available offer when creating a conference.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaidCoauthors"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paidCoauthors","aria-expanded":"false","aria-controls":"paidCoauthors"},"Does every coauthor need to pay?")])]),n("div",{id:"paidCoauthors",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaidCoauthors"},[n("div",{class:"panel-body p-3"},[n("p",null,"No. Coauthors can collaborate without buying a subscription. A shared repository uses its owner's allowance, unless a repository pass or paid conference covers it. It does not consume each coauthor's personal allowance."),n("p",null,"A coauthor's subscription does not increase the owner's allowance. If the owner's available capacity is exhausted, a coauthor's refresh or edit may also be blocked. Reviewers never need a paid account.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCapacity"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#capacity","aria-expanded":"false","aria-controls":"capacity"},"What counts toward my allowance, and what happens at the limit?")])]),n("div",{id:"capacity",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCapacity"},[n("div",{class:"panel-body p-3"},[n("p",null,"The repository limit counts work you own. Storage counts the source-file sizes reserved for those repositories, not just files a reviewer opens. Archived or failed repositories can still reserve capacity, and a refresh does not automatically reduce a previous storage reservation."),n("p",null,"At the repository limit you cannot add another repository to that allowance. An edit or refresh must also fit the available storage. Remove work you no longer need, choose a paid plan, or use an eligible conference allowance."),n("p",null,"Removing a repository releases its reservation when capacity is next checked. Expired repositories may continue to reserve capacity until cleanup. Reaching a limit does not itself delete existing review links.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingNeverExpire"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#neverExpire","aria-expanded":"false","aria-controls":"neverExpire"},"What happens to Never expire repositories if I stop subscribing?")])]),n("div",{id:"neverExpire",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingNeverExpire"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("Never expire is available to monthly and annual author subscribers. If paid access ends, these repositories remain available for a "),n("strong",null,"90-day grace period"),v(", then expire and their hosted content is removed.")]),n("p",null,"Renewing during the grace period keeps them active. After expiration, you must renew and explicitly reactivate the repository; restoring content also requires access to its GitHub source. A repository does not become public on GitHub when it expires."),n("p",null,"Existing never-expiring repositories created before this billing policy retain their settings. Never expire is not a guarantee of perpetual service availability.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCancelPlan"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#cancelPlan","aria-expanded":"false","aria-controls":"cancelPlan"},"How do I cancel, and what happens after paid access ends?")])]),n("div",{id:"cancelPlan",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCancelPlan"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("Open "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(" and choose "),n("strong",null,"Manage billing and invoices"),v(" to manage renewal. Cancelling renewal keeps subscription benefits until the end of the paid period.")]),n("p",null,"After paid access ends, repositories fall back to another eligible allowance or the free allowance. Automatic refresh pauses on the free allowance; manual refresh remains available within its limits. Existing review links keep their configured expiration dates, except paid Never expire repositories, which follow the 90-day grace period described above."),n("p",null,"A repository pass or conference package ends after its paid window without automatic renewal.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPaymentHandling"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-plans",href:"#paymentHandling","aria-expanded":"false","aria-controls":"paymentHandling"},"How are payments handled?")])]),n("div",{id:"paymentHandling",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPaymentHandling"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("Stripe processes checkout and billing management. Anonymous GitHub does not store your card details. You can access billing management and invoices from "),n("a",{href:"/profile#settings-billing"},"Plans and billing"),v(".")]),n("p",null,[v("Paid access is activated after payment is confirmed. If checkout succeeds but your account has not updated, choose "),n("strong",null,"Refresh payment status"),v(" before trying another purchase. If paid plans are unavailable on this instance, no checkout is offered.")])])])])]),p(" Features "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})]),v("Features ")]),n("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),n("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[n("div",{class:"panel-body p-3"},[n("p",null," Anonymous GitHub can display and render a wide variety of file types: "),n("ul",null,[n("li",null,[n("strong",null,"Text and source code"),v(" \u2014 displayed with syntax highlighting")]),n("li",null,[n("strong",null,"Markdown"),v(" \u2014 rendered as formatted HTML")]),n("li",null,[n("strong",null,"Images"),v(" (PNG, JPG, SVG, etc.) \u2014 displayed inline")]),n("li",null,[n("strong",null,"PDFs"),v(" \u2014 rendered directly in the browser")]),n("li",null,[n("strong",null,"Jupyter Notebooks"),v(" \u2014 rendered with code cells and outputs")])]),n("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),n("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),n("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[n("div",{class:"panel-body p-3"},[n("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),n("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[n("div",{class:"panel-body p-3"},[n("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),n("ul",null,[n("li",null,[n("strong",null,"Never expire"),v(": with a monthly or annual author subscription, no scheduled expiration while subscribed. A 90-day grace period applies after paid access ends. See "),n("a",{href:"#neverExpire"},"the subscription expiration policy"),v(".")]),n("li",null,[n("strong",null,"Redirect to GitHub"),v(" \u2014 after expiration, visitors are redirected to the original GitHub repository.")]),n("li",null,[n("strong",null,"Remove content"),v(" \u2014 after expiration, the anonymized content is deleted from the server.")])])])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),n("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),n("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[n("div",{class:"panel-body p-3"},[n("p",null," You can refresh the anonymized repository from GitHub without creating a new share link. Free accounts can request a manual refresh within their allowance. Automatic refresh requires an eligible paid allowance and must be enabled in repository settings. It pauses when the repository falls back to the free allowance. "),n("p",null," After changing files or contributor names, review your anonymization terms before sharing the updated content. If GitHub access is revoked or the source is deleted, the service cannot fetch updates. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),n("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[n("div",{class:"panel-body p-3"},[n("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),n("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[n("code",null,`npm install -g @tdurieux/anonymous_github anonymous_github`)])])])])]),p(" Limitations "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})]),v("Limitations ")]),n("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),n("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[n("div",{class:"panel-body p-3"},[n("ul",null,[n("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),n("li",null," Files larger than 8 MB are not supported. "),n("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),n("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),p(" Privacy & Security "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})]),v("Privacy & Security ")]),n("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),n("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[n("div",{class:"panel-body p-3"},[n("p",null," Repository data is used to provide the anonymization service. If you purchase a plan, Stripe processes payment and billing information. When a repository is removed or expires, only its configuration is retained \u2014 this makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),n("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[n("div",{class:"panel-body p-3"},[n("p",null,[v("The GitHub App has read-only access to the repositories you choose. You can change repository access on your "),n("a",{href:"/connections"},"GitHub connections"),v(" page.")]),n("p",null,"Legacy GitHub OAuth includes write access to private repositories because GitHub's OAuth scopes do not offer a read-only option for them. Existing OAuth anonymizations and gists can still use this connection."),n("p",null,"Anonymous GitHub reads repository content. It never pushes, modifies, or deletes files on GitHub.")])])]),n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),n("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[n("div",{class:"panel-body p-3"},[n("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),p(" Self-Hosting "),n("h4",{class:"faq-cat"},[n("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[n("use",{href:"#project-icon-storage"})]),v("Self-Hosting ")]),n("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[n("div",{class:"panel panel-default mb-3"},[n("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[n("h3",{class:"panel-title"},[n("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),n("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[n("div",{class:"panel-body p-3"},[n("p",null,[v(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. Billing is optional and disabled by default for self-hosted instances; paid hosted plans are not required to run your own server. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),n("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),v(". ")]),n("p",null," The basic steps are: "),n("ol",null,[n("li",null,"Clone the repository and install dependencies"),n("li",null,[v("Create a "),n("code",null,".env"),v(" file with your GitHub token, OAuth client ID, and client secret")]),n("li",null,[v("Run "),n("code",null,"docker-compose up -d")])])])])])]),n("div",{class:"text-center mt-5 mb-5 p-4",style:{"background-color":"var(--hover-bg-color)","border-radius":"8px"}},[n("p",{class:"mb-2",style:{"font-size":"1.1rem"}}," Still have questions? "),n("p",{class:"text-muted mb-0"},[v(" Open an issue on the "),n("a",{href:"https://github.com/tdurieux/anonymous_github/issues",target:"_blank"},"GitHub repository"),v(" and we'll be happy to help. ")])])])])],-1)])])}var Z4={class:"pr-page"},x4={class:"container paper-page pr-page-inner"},e3={class:"pr-header"},t3={class:"pr-title-row"},n3={class:"paper-page-title pr-title"},o3=["textContent"],s3={key:1,class:"text-muted"},i3=["href"],r3={class:"pr-header-meta"},a3={key:0,class:"pr-meta-item"},l3=["textContent"],d3={key:1,class:"pr-meta-item"},u3=["textContent"],c3={key:2,class:"pr-meta-item"},p3=["textContent"],f3={key:0,class:"paper-tabs",role:"tablist"},h3=["aria-selected","tabindex"],m3=["textContent"],v3=["aria-selected","tabindex"],g3=["textContent"],y3={class:"paper-tab-content"},b3={key:0,role:"tabpanel",id:"gist-files-panel","aria-labelledby":"gist-files-tab"},w3={class:"pr-comments"},k3={class:"pr-comment"},E3={class:"pr-comment-head"},C3=["textContent"],S3={key:0,class:"pr-comment-date"},_3={key:0,class:"paper-table-empty"},N3={key:1,role:"tabpanel",id:"gist-comments-panel","aria-labelledby":"gist-comments-tab"},R3={class:"pr-comments"},D3={class:"pr-comment"},T3={class:"pr-comment-head"},A3={key:0,class:"pr-comment-author"},O3=["textContent"],P3=["textContent"],I3={key:0,class:"pr-comment-body"},V3={key:0,class:"paper-table-empty"};function Wl(e,t){let o=Ge("gist-file"),i=Ge("markdown");return l(),d("div",Z4,[n("div",x4,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),v(" \xA0/\xA0 "),n("span",{class:"here"},"Gist")],-1)),n("header",e3,[n("div",t3,[n("h1",n3,[e.details?.description?(l(),d("span",{key:0,textContent:u(e.details?.description)},null,8,o3)):p("v-if",!0),e.details?.description?p("v-if",!0):(l(),d("span",s3,"Untitled gist"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,i3)):p("v-if",!0)]),n("div",r3,[n("span",{class:P(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},u(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(l(),d("span",a3,[t[5]||(t[5]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[6]||(t[6]=v(" @",-1)),n("span",{textContent:u(e.details?.ownerLogin)},null,8,l3)])):p("v-if",!0),e.details?.updatedDate?(l(),d("span",d3,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=v()),n("span",{textContent:u(e.fmt?.date(e.details?.updatedDate))},null,8,u3)])):p("v-if",!0),e.details?.anonymizeDate?(l(),d("span",c3,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=v(" Anonymized ",-1)),n("span",{textContent:u(e.fmt?.date(e.details?.anonymizeDate))},null,8,p3)])):p("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(l(),d("nav",f3,[e.details?.files?(l(),d("button",{key:0,class:P(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",id:"gist-files-tab","aria-selected":e.tabState?.active==="files","aria-controls":"gist-files-panel",tabindex:e.tabState?.active==="files"?0:-1,onKeydown:t[0]||(t[0]=s=>e.previewTabKeydown(s)),onClick:t[1]||(t[1]=s=>e.tabState.active="files")},[t[11]||(t[11]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-type-gist"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,m3)],42,h3)):p("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:P(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"gist-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"gist-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=s=>e.previewTabKeydown(s)),onClick:t[3]||(t[3]=s=>e.tabState.active="comments")},[t[12]||(t[12]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,g3)],42,v3)):p("v-if",!0)])):p("v-if",!0),n("div",y3,[e.details?.files&&e.tabState?.active=="files"?(l(),d("div",b3,[n("ul",w3,[(l(!0),d(K,null,ne(e.details?.files,(s,r)=>(l(),d("li",k3,[n("div",E3,[n("strong",{textContent:u(s?.filename)},null,8,C3),s?.language?(l(),d("span",S3,u(s?.language),1)):p("v-if",!0)]),Ce(o,{file:s},null,8,["file"])]))),256)),e.details?.files?.length?p("v-if",!0):(l(),d("li",_3,[...t[13]||(t[13]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("span",null,"No files in this gist.",-1)])]))])])):p("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",N3,[n("ul",R3,[(l(!0),d(K,null,ne(e.details?.comments,(s,r)=>(l(),d("li",D3,[n("div",T3,[s?.author?(l(),d("span",A3,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=v(" @",-1)),n("span",{textContent:u(s?.author)},null,8,O3)])):p("v-if",!0),s?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(s?.updatedDate))},null,8,P3)):p("v-if",!0)]),s?.body?(l(),d("div",I3,[Ce(i,{content:s?.body},null,8,["content"])])):p("v-if",!0)]))),256)),e.details?.comments?.length?p("v-if",!0):(l(),d("li",V3,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this gist.",-1)])]))])])):p("v-if",!0)])])])}var q3={class:"collapse navbar-collapse",id:"navbarSupportedContent"},M3={class:"navbar-nav mr-auto smooth-scroll"},U3={key:0,class:"nav-item"},$3={key:1,class:"nav-item"},L3={key:2,class:"nav-item"},F3={key:3,class:"nav-item"},B3={class:"nav-item"},H3={key:4,class:"nav-item"},z3={class:"navbar-nav"},j3={key:0,class:"nav-item"},G3={key:1,class:"nav-item"},W3={key:2,class:"nav-item"},K3={key:3,class:"nav-item"},Y3={key:4,class:"nav-item"},J3={key:5,class:"nav-item dropdown user-chip-wrap"},Q3={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},X3=["src"],Z3={class:"user-chip-name"},x3={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},e5={class:"dropdown-header"},t5=["innerHTML"],n5=["disabled"],o5={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},s5={class:"email-prompt-actions"},i5=["disabled"],r5=["disabled"],a5=["disabled"];function Kl(e,t){return l(),d(K,null,[n("nav",{class:P(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[19]||(t[19]=fe('Anonymous GitHubSupport',3)),n("div",q3,[n("ul",M3,[e.user?p("v-if",!0):(l(),d("li",U3,[n("a",{class:P(["nav-link",{active:e.path=="/"}]),href:"/"}," Home ",2)])),e.user?(l(),d("li",$3,[n("a",{class:P(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[8]||(t[8]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-grid"})],-1),v(" My work ",-1)])],2)])):p("v-if",!0),e.user?(l(),d("li",L3,[n("a",{class:P(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[9]||(t[9]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1),v(" Anonymize ",-1)])],2)])):p("v-if",!0),e.user?(l(),d("li",F3,[n("a",{class:P(["nav-link",{active:e.path=="/conferences"}]),href:"/conferences"},[...t[10]||(t[10]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1),v(" Conferences ",-1)])],2)])):p("v-if",!0),n("li",B3,[n("a",{class:P(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[11]||(t[11]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})],-1),v("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(l(),d("li",H3,[n("a",{class:P(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[12]||(t[12]=[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#project-icon-filter"})],-1),v(" Admin ",-1)])],2)])):p("v-if",!0)]),n("ul",z3,[e.user||!e.isReviewerRoute?(l(),d("li",j3,[...t[13]||(t[13]=[n("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[n("i",{class:"fab fa-github","aria-hidden":"true"})],-1)])])):p("v-if",!0),p(` "Report a bug" is about this service. Reviewers who land on an anonymized repository often think it is about the paper, so the - label names the service and the tooltip says who to contact. `),t[18]||(t[18]=n("li",{class:"nav-item d-none d-lg-block"},[n("a",{class:"nav-link",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",title:"Report a problem with the Anonymous GitHub service. Questions about an anonymized repository or paper go to its authors.","data-offset":"30"},[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),v("Report a bug ")])],-1)),e.isDarkMode?p("v-if",!0):(l(),d("li",G3,[n("a",{class:"nav-link nav-icon",href:"#",title:"Switch to dark mode","aria-label":"Switch to dark mode",role:"button",onClick:t[0]||(t[0]=de(o=>{e.darkMode(!0)},["prevent"]))},[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(l(),d("li",W3,[n("a",{class:"nav-link nav-icon",href:"#",title:"Switch to light mode","aria-label":"Switch to light mode",role:"button",onClick:t[1]||(t[1]=de(o=>{e.darkMode(!1)},["prevent"]))},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sun"})],-1)])])])):p("v-if",!0),!e.user&&!e.isReviewerRoute?(l(),d("li",K3,[...t[16]||(t[16]=[n("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[n("i",{class:"fab fa-github mr-1"}),v(" Sign in ")],-1)])])):p("v-if",!0),e.user?.username&&e.headerCanUpgrade&&!e.headerBillingPending?(l(),d("li",Y3,[n("a",{class:"nav-link nav-upgrade",href:"/profile?upgrade=1",onClick:t[2]||(t[2]=de(o=>e.openHeaderUpgrade(),["prevent"]))},"Upgrade")])):p("v-if",!0),e.user?(l(),d("li",J3,[n("a",Q3,[e.user?.photo?(l(),d("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,X3)):p("v-if",!0),n("span",Z3,u(e.user?.username),1)]),n("div",x3,[n("h6",e5,"Signed in as @"+u(e.user?.username),1),t[17]||(t[17]=fe('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource codeSupport the projectSign out',9))])])):p("v-if",!0)])])],2),e.generalMessage?(l(),d("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,t5)):p("v-if",!0),e.emailPromptOpen?(l(),d("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[7]||(t[7]=de(o=>e.respondToEmailPrompt("later"),["prevent"]))},[n("form",{onSubmit:t[6]||(t[6]=de(o=>e.respondToEmailPrompt("save"),["prevent"]))},[t[20]||(t[20]=n("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[21]||(t[21]=n("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[22]||(t[22]=n("label",{for:"email-prompt-address"},"Email address",-1)),D(n("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[3]||(t[3]=o=>e.emailPromptAddress=o),disabled:e.emailPromptBusy},null,8,n5),[[wt,e.emailPromptAddress]]),e.emailPromptError?(l(),d("p",o5,u(e.emailPromptError),1)):p("v-if",!0),n("div",s5,[n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[4]||(t[4]=o=>e.respondToEmailPrompt("later"))},"Remind me later",8,i5),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[5]||(t[5]=o=>e.respondToEmailPrompt("never"))},"Never",8,r5),n("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},u(e.emailPromptBusy?"Saving\u2026":"Save"),9,a5)])],32)],32)):p("v-if",!0)],64)}var l5={class:"paper-landing"},d5={class:"paper-hero"},u5={class:"paper-hero-copy"},c5={class:"paper-cta-row"},p5={key:0,href:"/signin",target:"_self",class:"btn-hero"},f5={key:1,href:"/anonymize",class:"btn-hero"},h5={class:"paper-stats paper-wrap",id:"metrics","aria-label":"Usage over the last 60 days"},m5={class:"paper-stats-grid"},v5={class:"paper-stat-value"},g5={class:"paper-stat-label"},y5=["viewBox"],b5=["x","y","width","height"],w5={key:1,class:"paper-stat-delta"},k5={class:"paper-features paper-wrap","aria-label":"Product features"},E5={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},C5=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],S5={class:"paper-eyebrow"},_5={class:"paper-feature-title"},N5={class:"paper-feature-more"},R5={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},D5=["href","target"],T5={class:"paper-features-stage"},A5=["id","aria-labelledby"],O5={class:"paper-frame"},P5={class:"paper-frame-bar","aria-hidden":"true"},I5={class:"url"},V5=["src","alt"],q5={class:"paper-footer"},M5={class:"paper-footer-inner"},U5={class:"paper-footer-col"},$5={key:0,href:"/dashboard"},L5={key:1,href:"/conferences"},F5={class:"paper-footer-foot"};function Yl(e,t){return l(),d("div",l5,[p(" Hero: copy on the left, the product on the right "),n("section",d5,[n("div",u5,[t[2]||(t[2]=n("div",{class:"paper-eyebrow"},"For double-blind peer review",-1)),t[3]||(t[3]=n("h1",{class:"hero-title"},[v(" Share the code,"),n("br"),n("span",{class:"accent"},"not the author.")],-1)),t[4]||(t[4]=n("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist. It redacts the terms you choose in text files, so reviewers can browse your artifact through an anonymous link. ",-1)),n("div",c5,[e.user?p("v-if",!0):(l(),d("a",p5,[...t[0]||(t[0]=[n("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),v("Sign in with GitHub ",-1)])])),e.user?(l(),d("a",f5," Anonymize a repository \u2192 ")):p("v-if",!0),t[1]||(t[1]=n("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[5]||(t[5]=n("ul",{class:"paper-reassure"},[n("li",null,"Free and open source"),n("li",null,"Read-only: never writes to your repos"),n("li",null,"Expires on the date you set")],-1))]),t[6]||(t[6]=fe('
A reviewer preview with the author, affiliation, and email replaced by anonymous terms
',1))]),p(" Proof "),t[16]||(t[16]=fe('
Trusted by authors at
ICSEFSEOOPSLA
',1)),p(" Live stats "),n("section",h5,[t[7]||(t[7]=n("div",{class:"paper-stats-meta"},[n("div",{class:"paper-stats-meta-left"},"Live \xB7 last 60 days"),n("div",{class:"paper-stats-meta-right"},[n("span",{class:"paper-stats-dot","aria-hidden":"true"}),v(" updated daily ")])],-1)),n("div",m5,[(l(!0),d(K,null,ne(e.cards,(o,i)=>(l(),d("div",{class:"paper-stat-card",key:o?.key},[n("div",v5,u(e.fmt?.bigNum(o?.total)),1),n("div",g5,u(o?.label),1),e.history[o?.key].bars?.length>1?(l(),d("svg",{key:0,class:"paper-stat-bars",preserveAspectRatio:"none","aria-hidden":"true",viewBox:"0 0 "+e.history[o?.key].viewW+" 36"},[(l(!0),d(K,null,ne(e.history[o?.key].bars,(s,r)=>(l(),d("rect",{key:r,class:P({"is-latest":r===e.history[o.key].bars.length-1}),x:s?.x,y:s?.y,width:s?.w,height:s?.h},null,10,b5))),128))],8,y5)):p("v-if",!0),e.history[o?.key].bars?.length>1?(l(),d("div",w5," +"+u(e.fmt?.number(e.history[o?.key].deltaToday))+" today ",1)):p("v-if",!0)]))),128))])]),p(" Before / after "),t[17]||(t[17]=n("section",{class:"paper-section-head paper-wrap"},[n("div",null,[n("div",{class:"paper-eyebrow"},"Before \xB7 after"),n("h2",null,[v("The same repository, "),n("em",null,"minus you.")])]),n("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),t[18]||(t[18]=n("div",{class:"paper-preview paper-wrap","aria-label":"Before and after example"},[n("div",{class:"pane"},[n("div",{class:"pane-header"},[n("span",{class:"pane-label"},"Before \xB7 your repo"),n("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")]),n("div",{class:"pane-body"},[n("div",null,[n("span",{class:"tok"},"#"),v(),n("strong",null,"DeepLearnUtils")]),n("div",null,"Developed by Jane Smith at MIT CSAIL."),n("div",null,"See Smith et\xA0al., \u201CAttention That Works,\u201D 2026."),n("div",null,"Contact: jane.smith@mit.edu")])]),n("div",{class:"pane"},[n("div",{class:"pane-header"},[n("span",{class:"pane-label"},"After \xB7 anonymous mirror"),n("span",{class:"pane-url"},"anonymous.4open.science/r/paper-7f2a")]),n("div",{class:"pane-body"},[n("div",null,[n("span",{class:"tok"},"#"),v(),n("strong",null,"DeepLearnUtils")]),n("div",null,[v("Developed by "),n("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),v(" at "),n("span",{class:"redact",role:"img","aria-label":"redacted affiliation"},"XXXX-2"),v(".")]),n("div",null,[v("See "),n("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),v(" et\xA0al., \u201CAttention That Works,\u201D 2026.")]),n("div",null,[v("Contact: "),n("span",{class:"redact",role:"img","aria-label":"redacted email address"},"XXXX-3")])])])],-1)),p(" What you get: one screenshot, three tabs "),t[19]||(t[19]=n("section",{class:"paper-section-head paper-wrap",id:"about"},[n("div",null,[n("div",{class:"paper-eyebrow"},"What you get"),n("h2",null,[v("Anonymize, review, "),n("em",null,"manage.")])]),n("p",null," Terms are redacted in text files. Enabled images and PDFs are served unchanged, so review them for identifying content before sharing. Monitor your mirror, update it, or remove it when the review is over. ")],-1)),n("section",k5,[n("div",E5,[(l(!0),d(K,null,ne(e.features,(o,i)=>(l(),d("div",{class:P(["paper-feature",{"is-on":e.feature===o?.key}]),key:o?.key},[n("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:s=>e.selectFeature(o.key),onKeydown:s=>e.featureKeydown(s,i),id:"feature-tab-"+o?.key,"aria-controls":"feature-panel-"+o?.key,"aria-selected":e.feature===o?.key,tabindex:e.feature===o?.key?0:-1},[n("span",S5,u(o?.num)+" \xB7 "+u(o?.eyebrow),1),n("span",_5,[v(u(o?.title)+" ",1),n("em",null,u(o?.accent),1)])],40,C5),n("div",N5,[n("span",R5,[v(u(o?.title)+" ",1),n("em",null,u(o?.accent),1)]),n("p",null,u(o?.text),1),n("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(o)),target:e.featureTarget(o)},u(o?.cta)+" \u2192",9,D5)])],2))),128))]),n("div",T5,[(l(!0),d(K,null,ne(e.features,(o,i)=>D((l(),d("div",{class:"paper-feature-panel",role:"tabpanel",key:o?.key,id:"feature-panel-"+o?.key,"aria-labelledby":"feature-tab-"+o?.key},[n("div",O5,[n("div",P5,[t[8]||(t[8]=n("span",{class:"dots"},[n("i"),n("i"),n("i")],-1)),n("span",I5,u(o?.url),1)]),n("div",{class:P("paper-crop paper-crop-"+o?.key)},[n("img",{loading:"lazy",width:"2880",height:"1800",src:e.safeUrl(o?.img),alt:o?.alt},null,8,V5)],2)])],8,A5)),[[W,e.feature===o?.key]])),128))])]),p(" FAQ teaser "),t[20]||(t[20]=fe('
Before you sign in

The questions that come up most.

Read the full FAQ \u2192
What access does GitHub sign-in require?

The GitHub App has read-only access to gists and the repositories you choose. Legacy OAuth uses broader permissions. Anonymous GitHub never writes to your repositories.

Which file formats are supported?

Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Text files are anonymized; enabled images and PDFs are served unchanged.

What happens when an anonymized repository expires?

You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.

',1)),n("footer",q5,[n("div",M5,[t[12]||(t[12]=n("div",{class:"paper-footer-brand"},[n("div",{class:"paper-footer-mark"},[v("Anonymous "),n("em",null,"GitHub")]),n("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-anonymous peer review. ")],-1)),n("div",U5,[t[9]||(t[9]=n("div",{class:"paper-footer-head"},"Product",-1)),t[10]||(t[10]=n("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(l(),d("a",$5,"My work")):p("v-if",!0),e.user?(l(),d("a",L5,"Conferences")):p("v-if",!0),t[11]||(t[11]=n("a",{href:"/faq"},"FAQ",-1))]),t[13]||(t[13]=fe('',2))]),t[15]||(t[15]=n("div",{class:"paper-footer-rule"},null,-1)),n("div",F5,[n("span",null,"\xA9 "+u(e.year||2026)+" Anonymous GitHub \xB7 GPL-3.0 licensed",1),t[14]||(t[14]=n("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])])}var B5={class:"paper-empty"},H5={class:"paper-empty-inner"},z5={key:0,class:"paper-eyebrow"},j5={key:1,class:"paper-eyebrow"},G5={key:2,class:"paper-empty-title"},W5=["textContent"];function Jl(e,t){return l(),d("div",B5,[n("div",H5,[e.error?p("v-if",!0):(l(),d("div",z5,"Working")),e.error?(l(),d("div",j5,"Error")):p("v-if",!0),e.error?p("v-if",!0):(l(),d("h1",G5,[...t[0]||(t[0]=[v(" Loading",-1),n("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(l(),d("h1",{key:3,class:"paper-empty-title",textContent:u(e.fmt.translate(e.error))},null,8,W5)):p("v-if",!0)])])}var K5={class:"container paper-page paper-settings"},Y5={class:"paper-crumbs"},J5={class:"here"},Q5={class:"paper-page-title"},X5={class:"paper-settings-body"},Z5={class:"paper-settings-toc"},x5={href:"#conf-billing"},eV={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},tV={id:"conf-basics",class:"paper-settings-section"},nV={class:"form-group"},oV={class:"invalid-feedback"},sV={class:"invalid-feedback"},iV={class:"form-group"},rV={class:"invalid-feedback"},aV={class:"form-group"},lV={class:"invalid-feedback"},dV={class:"invalid-feedback"},uV={id:"conf-window",class:"paper-settings-section"},cV={class:"form-grid-2"},pV={class:"form-group"},fV={class:"invalid-feedback"},hV={class:"invalid-feedback"},mV={class:"form-group"},vV={class:"invalid-feedback"},gV={class:"invalid-feedback"},yV={id:"conf-rendering",class:"paper-settings-section"},bV={class:"form-check"},wV={class:"form-check-input",type:"checkbox",id:"link",name:"link"},kV={class:"form-check"},EV={class:"form-check-input",type:"checkbox",id:"image",name:"image"},CV={class:"form-check"},SV={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},_V={class:"form-check"},NV={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},RV={id:"conf-features",class:"paper-settings-section"},DV={class:"form-check"},TV={class:"form-check-input",type:"checkbox",id:"update",name:"update"},AV={class:"form-check"},OV={class:"form-check-input",type:"checkbox",id:"page",name:"page"},PV={id:"conf-plan",class:"paper-settings-section"},IV={class:"paper-plan-grid"},VV=["disabled","value"],qV=["textContent"],MV={class:"paper-plan-price"},UV={class:"paper-plan-per"},$V=["innerHTML"],LV={key:0,id:"conf-billing",class:"paper-settings-section"},FV={class:"form-group"},BV={class:"form-group"},HV={class:"form-group"},zV={class:"form-group"},jV={class:"form-grid-3"},GV={class:"form-group"},WV={class:"form-group"},KV={class:"form-group"},YV={class:"form-group"},JV={class:"paper-settings-footer"},QV=["textContent"],XV=["textContent"],ZV=["disabled"];function Ql(e,t){let o=ge("paper-scrollspy"),i=ge("field"),s=ge("form");return l(),d("div",K5,[n("div",Y5,[t[1]||(t[1]=n("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=v(" \xA0/\xA0 ",-1)),t[3]||(t[3]=n("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=v(" \xA0/\xA0 ",-1)),n("span",J5,u(e.editionMode?"Edit":"New"),1)]),n("h1",Q5,[v(u(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=n("em",null,"conference",-1))]),t[42]||(t[42]=n("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue, and lift author quotas during the review window. ",-1)),n("div",X5,[D((l(),d("aside",Z5,[t[7]||(t[7]=n("div",{class:"paper-settings-toc-head"},"On this page",-1)),n("nav",null,[t[6]||(t[6]=fe('BasicsReview windowRendering defaultsFeaturesPlan',5)),D(n("a",x5,"Billing",512),[[W,e.plan?.pricePerRepo>0]])])])),[[o]]),D((l(),d("form",eV,[n("section",tV,[t[12]||(t[12]=n("div",{class:"paper-section-eyebrow"},"Basics",-1)),n("div",nV,[t[8]||(t[8]=n("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[i,{state:e.viewState,set:r=>{e.options.name=r},value:e.options?.name,form:"conference",options:{}}]]),D(n("div",oV," The name of the conference is invalid. ",512),[[W,e.conference?.name?.errors?.invalid]]),D(n("div",sV," The name of the conference is required. ",512),[[W,e.conference?.name?.errors?.required]])]),n("div",iV,[t[9]||(t[9]=n("label",{class:"paper-field-label",for:"url"},"Website",-1)),D(n("input",{type:"url",class:P(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.url=r},value:e.options?.url,form:"conference",options:{}}]]),D(n("div",rV," The url of the conference is invalid. ",512),[[W,e.conference?.url?.errors?.url]])]),n("div",aV,[t[10]||(t[10]=n("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[i,{state:e.viewState,set:r=>{e.options.conferenceID=r},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},[v("3\u201310 characters, letters, numbers, "),n("code",null,"-"),v(" and "),n("code",null,"_"),v(". Authors reference this when they anonymize.")],-1)),D(n("div",{class:"invalid-feedback"}," The conference ID '"+u(e.options?.conferenceID)+"' is already used. ",513),[[W,e.conference?.conferenceID?.errors?.used]]),D(n("div",lV," The conference ID is required. ",512),[[W,e.conference?.conferenceID?.errors?.required]]),D(n("div",dV," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[W,e.conference?.conferenceID?.errors?.pattern]])])]),n("section",uV,[t[17]||(t[17]=n("div",{class:"paper-section-eyebrow"},"Review window",-1)),n("div",cV,[n("div",pV,[t[13]||(t[13]=n("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),D(n("input",{type:"date",class:P(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.startDate=r},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),D(n("div",fV," Start date is required. ",512),[[W,e.conference?.startDate?.errors?.required]]),D(n("div",hV," Start date must be before end date. ",512),[[W,e.conference?.startDate?.errors?.invalid]])]),n("div",mV,[t[15]||(t[15]=n("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),D(n("input",{type:"date",class:P(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.endDate=r},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),D(n("div",vV," End date is required. ",512),[[W,e.conference?.endDate?.errors?.required]]),D(n("div",gV," End date is invalid. ",512),[[W,e.conference?.endDate?.errors?.invalid]])])])]),n("section",yV,[t[26]||(t[26]=n("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),n("div",bV,[D(n("input",wV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.link=r},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=n("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),n("div",kV,[D(n("input",EV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.image=r},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=n("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),n("div",CV,[D(n("input",SV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.pdf=r},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=n("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),n("div",_V,[D(n("input",NV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.notebook=r},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=n("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),n("section",RV,[t[31]||(t[31]=n("div",{class:"paper-section-eyebrow"},"Features",-1)),n("div",DV,[D(n("input",TV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.update=r},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=n("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),n("div",AV,[D(n("input",OV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.page=r},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=n("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),n("section",PV,[t[32]||(t[32]=n("div",{class:"paper-section-eyebrow"},"Plan",-1)),t[33]||(t[33]=n("p",{class:"paper-section-copy"},"The review package is prepaid and covers up to 180 days. Pay from the conference page after creating it. Plan and review dates cannot change after creation.",-1)),n("div",IV,[(l(!0),d(K,null,ne(e.plans,(r,a)=>(l(),d("label",{class:P(["paper-plan-card",{selected:e.options?.plan?.planID==r?.id}])},[D(n("input",{type:"radio",disabled:e.editionMode,name:"planPicker",value:r?.id},null,8,VV),[[i,{state:e.viewState,set:c=>{e.options.plan.planID=c},value:e.options?.plan?.planID,form:"conference",options:{}}]]),n("div",{class:"paper-plan-head",textContent:u(r?.name)},null,8,qV),n("div",MV,[v(u(r.id==="free_conference"?"Free":"Prepaid package")+" ",1),n("span",UV,u(r.id==="free_conference"?"":"Price on the conference page"),1)]),n("div",{class:"paper-plan-desc",innerHTML:e.sanitize(r?.description)},null,8,$V)],2))),256))])]),e.plan?.pricePerRepo>0?(l(),d("section",LV,[t[41]||(t[41]=n("div",{class:"paper-section-eyebrow"},"Billing",-1)),n("div",FV,[t[34]||(t[34]=n("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.name=r},value:e.options?.billing?.name,form:"conference",options:{}}]])]),n("div",BV,[t[35]||(t[35]=n("label",{class:"paper-field-label",for:"email"},"Email",-1)),D(n("input",{type:"email",class:P(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.email=r},value:e.options?.billing?.email,form:"conference",options:{}}]])]),n("div",HV,[t[36]||(t[36]=n("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address=r},value:e.options?.billing?.address,form:"conference",options:{}}]])]),n("div",zV,[D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address2=r},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),n("div",jV,[n("div",GV,[t[37]||(t[37]=n("label",{class:"paper-field-label",for:"city"},"City",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.city=r},value:e.options?.billing?.city,form:"conference",options:{}}]])]),n("div",WV,[t[38]||(t[38]=n("label",{class:"paper-field-label",for:"country"},"Country",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.country=r},value:e.options?.billing?.country,form:"conference",options:{}}]])]),n("div",KV,[t[39]||(t[39]=n("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.zip=r},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),n("div",YV,[t[40]||(t[40]=n("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.vat=r},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):p("v-if",!0),n("div",JV,[e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,QV)):p("v-if",!0),e.message?(l(),d("div",{key:1,class:"alert alert-success",role:"alert",textContent:u(e.message)},null,8,XV)):p("v-if",!0),n("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=de(r=>e.submitForm(r,()=>{e.submit(r)}),["prevent"]))},u(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,ZV)])])),[[s,e.viewState]])])])}var xV={key:0},eq=["innerHTML"],tq={key:3},nq=["src"],oq=["src"],sq={key:7},iq={controls:"controls"},rq=["src"],aq={key:8},lq={key:9,class:"file-error container d-flex h-100"},dq={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},uq={class:"paper-error-msg"},cq={key:10,class:"file-error container d-flex h-100"},pq={class:"viewer-error paper-error-card file-error-card m-auto",role:"alert","aria-labelledby":"viewer-error-title"},fq={id:"viewer-error-title",class:"paper-empty-title"},hq={class:"paper-error-actions"},mq={key:0,href:"/",class:"btn btn-sm"},vq={key:1,href:"/faq",class:"btn btn-sm"},gq={key:2,class:"btn btn-outline-ink",href:"/dashboard"},yq={key:11,class:"file-error container d-flex h-100"},bq={key:12,class:"file-error container d-flex h-100"},wq={key:13,class:"file-error container d-flex h-100"},kq={key:14,class:"file-error container d-flex h-100"},Eq={class:"paper-empty-title m-auto"},Cq=["href"];function Xl(e,t){let o=Ge("html-doc"),i=Ge("pdfviewer"),s=Ge("notebook"),r=ge("code-editor");return l(),d(K,null,[e.type=="text"?D((l(),d("div",xV,null,512)),[[r,{content:e.content,options:e.aceOption}]]):p("v-if",!0),e.type=="html"?(l(),d("div",{key:1,class:"file-content markdown-body",innerHTML:e.highlightRedactions(e.sanitize(e.content))},null,8,eq)):p("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(l(),Ft(o,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):p("v-if",!0),(e.type=="code"||e.type=="html-doc"&&e.showSource)&&e.content!=null?D((l(),d("div",tq,null,512)),[[r,{content:e.content,options:e.aceOption}]]):p("v-if",!0),e.type=="image"?(l(),d("img",{key:4,class:"image-content",src:e.safeUrl(e.url)},null,8,nq)):p("v-if",!0),e.type=="media"?(l(),d("iframe",{key:5,class:"h-100 overflow-auto w-100 b-0",src:e.safeUrl(e.url)},null,8,oq)):p("v-if",!0),e.type=="pdf"?(l(),Ft(i,{key:6,src:e.safeUrl(e.url)},null,8,["src"])):p("v-if",!0),e.type=="audio"?(l(),d("div",sq,[n("audio",iq,[n("source",{src:e.safeUrl(e.url)},null,8,rq)])])):p("v-if",!0),e.type=="IPython"?(l(),d("div",aq,[Ce(s,{file:e.url,content:e.content},null,8,["file","content"])])):p("v-if",!0),e.type=="rate_limited"?(l(),d("div",lq,[n("div",dq,[t[3]||(t[3]=fe('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",uq,[t[1]||(t[1]=v("This repository will be available in ",-1)),n("strong",null,u(e.rateLimitCountdown),1),t[2]||(t[2]=v(". The page will reload automatically.",-1))])])])):p("v-if",!0),e.type=="error"?(l(),d("div",cq,[n("section",pq,[n("h1",fq,u(e.fmt.translate(e.isSourceAccessError()?"VIEWER_ERRORS.access_title":"VIEWER_ERRORS.title")),1),n("p",null,u(e.fmt.translate("ERRORS."+e.content)),1),e.isSourceAccessError()?(l(),d(K,{key:0},[n("p",null,u(e.fmt.translate("VIEWER_ERRORS.reader_help")),1),n("p",null,u(e.fmt.translate("VIEWER_ERRORS.owner_help")),1)],64)):p("v-if",!0),n("div",hq,[e.isSourceAccessError()?p("v-if",!0):(l(),d("a",mq,"Back to home")),e.isSourceAccessError()?p("v-if",!0):(l(),d("a",vq,"Read the FAQ")),n("button",{type:"button",class:"btn btn-primary",onClick:t[0]||(t[0]=a=>e.retryContent())},u(e.fmt.translate("VIEWER_ERRORS.retry")),1),e.isSourceAccessError()?(l(),d("a",gq,u(e.fmt.translate("VIEWER_ERRORS.dashboard")),1)):p("v-if",!0)])])])):p("v-if",!0),e.type=="loading"&&!e.error?(l(),d("div",yq,[...t[4]||(t[4]=[n("h1",{class:"paper-empty-title m-auto"},"Loading\u2026",-1)])])):p("v-if",!0),e.type=="empty"?(l(),d("div",bq,[...t[5]||(t[5]=[n("h1",{class:"paper-empty-title m-auto"},[v("Empty "),n("em",null,"repository"),v(".")],-1)])])):p("v-if",!0),e.content==null&&e.type!="empty"?(l(),d("div",wq,[...t[6]||(t[6]=[n("h1",{class:"paper-empty-title m-auto"},[v("Empty "),n("em",null,"file"),v(".")],-1)])])):p("v-if",!0),e.type=="binary"?(l(),d("div",kq,[n("h1",Eq,[t[7]||(t[7]=v("Unsupported ",-1)),t[8]||(t[8]=n("em",null,"binary file",-1)),t[9]||(t[9]=v(". You can ",-1)),n("a",{target:"_blank",href:e.safeUrl(e.url+"&download=true")},"download it",8,Cq),t[10]||(t[10]=v(".",-1))])])):p("v-if",!0)],64)}var Sq={class:"container page dashboard-page paper-page"},_q={class:"row"},Nq={class:"w-100"},Rq={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},Dq={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},Tq={class:"flex-grow-1"},Aq={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},Oq={class:"d-flex flex-wrap",style:{gap:"6px"}},Pq={class:"dropdown"},Iq={class:"dropdown-menu","aria-labelledby":"dropdownSort"},Vq={class:"form-check dropdown-item"},qq={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},Mq={class:"form-check dropdown-item"},Uq={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},$q={class:"form-check dropdown-item"},Lq={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},Fq={class:"form-check dropdown-item"},Bq={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},Hq={class:"form-check dropdown-item"},zq={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},jq={class:"dropdown"},Gq={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},Wq={class:"form-check dropdown-item"},Kq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},Yq={class:"form-check dropdown-item"},Jq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},Qq={class:"form-check dropdown-item"},Xq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},Zq={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},xq={class:"filter-chip"},e8=["onClick"],t8={class:"repo-list w-100"},n8={class:"repo-list-item-content"},o8={class:"repo-list-item-main"},s8={class:"repo-list-item-header"},i8=["textContent","href"],r8=["textContent"],a8=["textContent"],l8={class:"repo-source"},d8=["href"],u8={class:"repo-date"},c8={class:"repo-meta"},p8={key:0,title:"Conference"},f8=["title"],h8=["title"],m8=["title"],v8={key:1},g8={class:"repo-list-item-actions"},y8={class:"dropdown"},b8={class:"dropdown-menu dropdown-menu-right"},w8=["href"],k8=["onClick"],E8=["onClick"],C8=["onClick"],S8=["href"],_8={key:0,class:"repo-list-empty"};function Zl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",Sq,[n("div",_q,[n("div",Nq,[t[12]||(t[12]=fe('
My work \xA0/\xA0 Pull requests

Anonymized pull requests

Track PR mirrors you\u2019ve created and their reviewer traffic.

',2)),p(" Search + filters row "),D((l(),d("form",Rq,[n("div",Dq,[n("div",Tq,[D(n("input",Aq,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",Oq,[n("div",Pq,[t[6]||(t[6]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),n("div",Iq,[t[5]||(t[5]=n("h6",{class:"dropdown-header"},"Select order",-1)),n("div",Vq,[D(n("input",qq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=n("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),n("div",Mq,[D(n("input",Uq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=n("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),n("div",$q,[D(n("input",Lq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",Fq,[D(n("input",Bq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),n("div",Hq,[D(n("input",zq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),n("div",jq,[t[11]||(t[11]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),n("div",Gq,[t[10]||(t[10]=n("h6",{class:"dropdown-header"},"Select status",-1)),n("div",Wq,[D(n("input",Kq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.ready=s},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),n("div",Yq,[D(n("input",Jq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.expired=s},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),n("div",Qq,[D(n("input",Xq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.removed=s},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=n("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[i,e.viewState]]),p(" Active filter chips "),D(n("div",Zq,[(l(!0),d(K,null,ne(e.filters?.status,(s,r,a)=>D((l(),d("span",xq,[v(u(e.fmt?.title(r))+" ",1),n("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:c=>{e.filters.status[r]=!0}}," \xD7 ",8,e8)],512)),[[W,!s]])),256))],512),[[W,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),p(" Pull request list "),n("ul",t8,[(l(!0),d(K,null,ne(e.filteredPullRequests,(s,r)=>(l(),d("li",{class:P(["repo-list-item",{"repo-inactive":s?.status=="expired"||s?.status=="removed"||s?.status=="error"}])},[n("div",n8,[n("div",o8,[n("div",s8,[n("a",{class:"repo-name",textContent:u(s?.pullRequestId),href:e.safeUrl("/pr/"+s?.pullRequestId)},null,8,i8),n("span",{class:P(["status-badge",{"status-removed":s?.status=="removed"||s?.status=="expired"||s?.status=="removing"||s?.status=="expiring","status-preparing":s?.status=="preparing"||s?.status=="download","status-ready":s?.status=="ready","status-error":s?.status=="error"}])},[n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,r8),s?.status=="error"?(l(),d("span",{key:0,textContent:u(": "+s?.statusMessage)},null,8,a8)):p("v-if",!0)],2)]),n("div",l8,[n("span",null,[t[13]||(t[13]=n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),n("a",{href:e.safeUrl("https://github.com/"+s?.source?.repositoryFullName+"/pull/"+s?.source?.pullRequestId)},u(s?.source?.repositoryFullName)+"#"+u(s?.source?.pullRequestId),9,d8)]),n("span",{class:P(["status-badge",{"status-ready":s?.merged,"status-removed":s?.state=="open","status-error":s?.state=="closed"&&!s?.merged}]),style:{"font-size":"10px"}},u(e.fmt?.title(s?.merged?"merged":s?.state)),3),n("span",u8,"anonymized "+u(e.fmt?.humanTime(s?.anonymizeDate)),1)])]),n("div",c8,[s?.conference?(l(),d("span",p8,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),v(" "+u(s?.conference),1)])):p("v-if",!0),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+s?.options?.terms?.join(", ")},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),v(" "+u(e.fmt?.number(s?.options?.terms?.length)),1)],8,f8),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(s?.pageView)},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),v(" "+u(e.fmt?.number(s?.pageView)),1)],8,h8),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(s?.lastView)},[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-calendar"})],-1)),v(" "+u(e.fmt?.humanTime(s?.lastView)),1)],8,m8),s?.options?.expirationMode!="never"&&s?.status=="ready"?(l(),d("span",v8,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v(" Expire: "+u(e.fmt?.humanTime(s?.options?.expirationDate)),1)])):p("v-if",!0)])]),n("div",g8,[n("div",y8,[t[24]||(t[24]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),n("div",b8,[n("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+s?.pullRequestId)},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit ",-1)])],8,w8),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updatePullRequest(s),["prevent"])},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force update ",-1)])],8,k8),[[W,s?.status=="ready"||s?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updatePullRequest(s),["prevent"])},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Enable ",-1)])],8,E8),[[W,s?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removePullRequest(s),["prevent"])},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove ",-1)])],8,C8),[[W,s?.status=="ready"]]),n("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+s?.pullRequestId+"/")},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View PR ",-1)])],8,S8)])])])],2))),256)),e.filteredPullRequests?.length==0?(l(),d("li",_8,[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No pull requests to display.",-1)])])):p("v-if",!0)])])])}var N8={class:"container paper-page user-settings"},R8={class:"settings-title"},D8={class:"settings-header-actions"},T8={class:"settings-nav","aria-label":"Settings"},A8=["aria-current","onClick"],O8={class:"settings-row"},P8={class:"form-control",id:"terms",name:"terms",rows:"3",placeholder:`Jane Smith + label names the service and the tooltip says who to contact. `),t[18]||(t[18]=n("li",{class:"nav-item d-none d-lg-block"},[n("a",{class:"nav-link",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",title:"Report a problem with the Anonymous GitHub service. Questions about an anonymized repository or paper go to its authors.","data-offset":"30"},[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),v("Report a bug ")])],-1)),e.isDarkMode?p("v-if",!0):(l(),d("li",G3,[n("a",{class:"nav-link nav-icon",href:"#",title:"Switch to dark mode","aria-label":"Switch to dark mode",role:"button",onClick:t[0]||(t[0]=de(o=>{e.darkMode(!0)},["prevent"]))},[...t[14]||(t[14]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(l(),d("li",W3,[n("a",{class:"nav-link nav-icon",href:"#",title:"Switch to light mode","aria-label":"Switch to light mode",role:"button",onClick:t[1]||(t[1]=de(o=>{e.darkMode(!1)},["prevent"]))},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sun"})],-1)])])])):p("v-if",!0),!e.user&&!e.isReviewerRoute?(l(),d("li",K3,[...t[16]||(t[16]=[n("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[n("i",{class:"fab fa-github mr-1"}),v(" Sign in ")],-1)])])):p("v-if",!0),e.user?.username&&e.headerCanUpgrade&&!e.headerBillingPending?(l(),d("li",Y3,[n("a",{class:"nav-link nav-upgrade",href:"/profile?upgrade=1",onClick:t[2]||(t[2]=de(o=>e.openHeaderUpgrade(),["prevent"]))},"Upgrade")])):p("v-if",!0),e.user?(l(),d("li",J3,[n("a",Q3,[e.user?.photo?(l(),d("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,X3)):p("v-if",!0),n("span",Z3,u(e.user?.username),1)]),n("div",x3,[n("h6",e5,"Signed in as @"+u(e.user?.username),1),t[17]||(t[17]=fe('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource codeSupport the projectSign out',9))])])):p("v-if",!0)])])],2),e.generalMessage?(l(),d("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,t5)):p("v-if",!0),e.emailPromptOpen?(l(),d("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[7]||(t[7]=de(o=>e.respondToEmailPrompt("later"),["prevent"]))},[n("form",{onSubmit:t[6]||(t[6]=de(o=>e.respondToEmailPrompt("save"),["prevent"]))},[t[20]||(t[20]=n("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[21]||(t[21]=n("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[22]||(t[22]=n("label",{for:"email-prompt-address"},"Email address",-1)),D(n("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[3]||(t[3]=o=>e.emailPromptAddress=o),disabled:e.emailPromptBusy},null,8,n5),[[wt,e.emailPromptAddress]]),e.emailPromptError?(l(),d("p",o5,u(e.emailPromptError),1)):p("v-if",!0),n("div",s5,[n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[4]||(t[4]=o=>e.respondToEmailPrompt("later"))},"Remind me later",8,i5),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[5]||(t[5]=o=>e.respondToEmailPrompt("never"))},"Never",8,r5),n("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},u(e.emailPromptBusy?"Saving\u2026":"Save"),9,a5)])],32)],32)):p("v-if",!0)],64)}var l5={class:"paper-landing"},d5={class:"paper-hero"},u5={class:"paper-hero-copy"},c5={class:"paper-cta-row"},p5={key:0,href:"/signin",target:"_self",class:"btn-hero"},f5={key:1,href:"/anonymize",class:"btn-hero"},h5={class:"paper-stats paper-wrap",id:"metrics","aria-label":"Usage over the last 60 days"},m5={class:"paper-stats-grid"},v5={class:"paper-stat-value"},g5={class:"paper-stat-label"},y5=["viewBox"],b5=["x","y","width","height"],w5={key:1,class:"paper-stat-delta"},k5={class:"paper-features paper-wrap","aria-label":"Product features"},E5={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},C5=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],S5={class:"paper-eyebrow"},_5={class:"paper-feature-title"},N5={class:"paper-feature-more"},R5={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},D5=["href","target"],T5={class:"paper-features-stage"},A5=["id","aria-labelledby"],O5={class:"paper-frame"},P5={class:"paper-frame-bar","aria-hidden":"true"},I5={class:"url"},V5=["src","alt"],q5={class:"paper-footer"},M5={class:"paper-footer-inner"},U5={class:"paper-footer-col"},$5={key:0,href:"/dashboard"},L5={key:1,href:"/conferences"},F5={class:"paper-footer-foot"};function Yl(e,t){return l(),d("div",l5,[p(" Hero: copy on the left, the product on the right "),n("section",d5,[n("div",u5,[t[2]||(t[2]=n("div",{class:"paper-eyebrow"},"For double-blind peer review",-1)),t[3]||(t[3]=n("h1",{class:"hero-title"},[v(" Share the code,"),n("br"),n("span",{class:"accent"},"not the author.")],-1)),t[4]||(t[4]=n("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist. It redacts the terms you choose in text files, so reviewers can browse your artifact through an anonymous link. ",-1)),n("div",c5,[e.user?p("v-if",!0):(l(),d("a",p5,[...t[0]||(t[0]=[n("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),v("Sign in with GitHub ",-1)])])),e.user?(l(),d("a",f5," Anonymize a repository \u2192 ")):p("v-if",!0),t[1]||(t[1]=n("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[5]||(t[5]=n("ul",{class:"paper-reassure"},[n("li",null,"Free and open source"),n("li",null,"Read-only: never writes to your repos"),n("li",null,"Expires on the date you set")],-1))]),t[6]||(t[6]=fe('
A reviewer preview with the author, affiliation, and email replaced by anonymous terms
',1))]),p(" Proof "),t[16]||(t[16]=fe('
Trusted by authors at
ICSEFSEOOPSLA
',1)),p(" Live stats "),n("section",h5,[t[7]||(t[7]=n("div",{class:"paper-stats-meta"},[n("div",{class:"paper-stats-meta-left"},"Live \xB7 last 60 days"),n("div",{class:"paper-stats-meta-right"},[n("span",{class:"paper-stats-dot","aria-hidden":"true"}),v(" updated daily ")])],-1)),n("div",m5,[(l(!0),d(K,null,ne(e.cards,(o,i)=>(l(),d("div",{class:"paper-stat-card",key:o?.key},[n("div",v5,u(e.fmt?.bigNum(o?.total)),1),n("div",g5,u(o?.label),1),e.history[o?.key].bars?.length>1?(l(),d("svg",{key:0,class:"paper-stat-bars",preserveAspectRatio:"none","aria-hidden":"true",viewBox:"0 0 "+e.history[o?.key].viewW+" 36"},[(l(!0),d(K,null,ne(e.history[o?.key].bars,(s,r)=>(l(),d("rect",{key:r,class:P({"is-latest":r===e.history[o.key].bars.length-1}),x:s?.x,y:s?.y,width:s?.w,height:s?.h},null,10,b5))),128))],8,y5)):p("v-if",!0),e.history[o?.key].bars?.length>1?(l(),d("div",w5," +"+u(e.fmt?.number(e.history[o?.key].deltaToday))+" today ",1)):p("v-if",!0)]))),128))])]),p(" Before / after "),t[17]||(t[17]=n("section",{class:"paper-section-head paper-wrap"},[n("div",null,[n("div",{class:"paper-eyebrow"},"Before \xB7 after"),n("h2",null,[v("The same repository, "),n("em",null,"minus you.")])]),n("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),t[18]||(t[18]=n("div",{class:"paper-preview paper-wrap","aria-label":"Before and after example"},[n("div",{class:"pane"},[n("div",{class:"pane-header"},[n("span",{class:"pane-label"},"Before \xB7 your repo"),n("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")]),n("div",{class:"pane-body"},[n("div",null,[n("span",{class:"tok"},"#"),v(),n("strong",null,"DeepLearnUtils")]),n("div",null,"Developed by Jane Smith at MIT CSAIL."),n("div",null,"See Smith et\xA0al., \u201CAttention That Works,\u201D 2026."),n("div",null,"Contact: jane.smith@mit.edu")])]),n("div",{class:"pane"},[n("div",{class:"pane-header"},[n("span",{class:"pane-label"},"After \xB7 anonymous mirror"),n("span",{class:"pane-url"},"anonymous.4open.science/r/paper-7f2a")]),n("div",{class:"pane-body"},[n("div",null,[n("span",{class:"tok"},"#"),v(),n("strong",null,"DeepLearnUtils")]),n("div",null,[v("Developed by "),n("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),v(" at "),n("span",{class:"redact",role:"img","aria-label":"redacted affiliation"},"XXXX-2"),v(".")]),n("div",null,[v("See "),n("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),v(" et\xA0al., \u201CAttention That Works,\u201D 2026.")]),n("div",null,[v("Contact: "),n("span",{class:"redact",role:"img","aria-label":"redacted email address"},"XXXX-3")])])])],-1)),p(" What you get: one screenshot, three tabs "),t[19]||(t[19]=n("section",{class:"paper-section-head paper-wrap",id:"about"},[n("div",null,[n("div",{class:"paper-eyebrow"},"What you get"),n("h2",null,[v("Anonymize, review, "),n("em",null,"manage.")])]),n("p",null," Terms are redacted in text files. Enabled images and PDFs are served unchanged, so review them for identifying content before sharing. Monitor your mirror, update it, or remove it when the review is over. ")],-1)),n("section",k5,[n("div",E5,[(l(!0),d(K,null,ne(e.features,(o,i)=>(l(),d("div",{class:P(["paper-feature",{"is-on":e.feature===o?.key}]),key:o?.key},[n("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:s=>e.selectFeature(o.key),onKeydown:s=>e.featureKeydown(s,i),id:"feature-tab-"+o?.key,"aria-controls":"feature-panel-"+o?.key,"aria-selected":e.feature===o?.key,tabindex:e.feature===o?.key?0:-1},[n("span",S5,u(o?.num)+" \xB7 "+u(o?.eyebrow),1),n("span",_5,[v(u(o?.title)+" ",1),n("em",null,u(o?.accent),1)])],40,C5),n("div",N5,[n("span",R5,[v(u(o?.title)+" ",1),n("em",null,u(o?.accent),1)]),n("p",null,u(o?.text),1),n("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(o)),target:e.featureTarget(o)},u(o?.cta)+" \u2192",9,D5)])],2))),128))]),n("div",T5,[(l(!0),d(K,null,ne(e.features,(o,i)=>D((l(),d("div",{class:"paper-feature-panel",role:"tabpanel",key:o?.key,id:"feature-panel-"+o?.key,"aria-labelledby":"feature-tab-"+o?.key},[n("div",O5,[n("div",P5,[t[8]||(t[8]=n("span",{class:"dots"},[n("i"),n("i"),n("i")],-1)),n("span",I5,u(o?.url),1)]),n("div",{class:P("paper-crop paper-crop-"+o?.key)},[n("img",{loading:"lazy",width:"2880",height:"1800",src:e.safeUrl(o?.img),alt:o?.alt},null,8,V5)],2)])],8,A5)),[[W,e.feature===o?.key]])),128))])]),p(" FAQ teaser "),t[20]||(t[20]=fe('
Before you sign in

The questions that come up most.

Read the full FAQ \u2192
What access does GitHub sign-in require?

The GitHub App has read-only access to gists and the repositories you choose. Legacy OAuth uses broader permissions. Anonymous GitHub never writes to your repositories.

Which file formats are supported?

Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Text files are anonymized; enabled images and PDFs are served unchanged.

What happens when an anonymized repository expires?

You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.

',1)),n("footer",q5,[n("div",M5,[t[12]||(t[12]=n("div",{class:"paper-footer-brand"},[n("div",{class:"paper-footer-mark"},[v("Anonymous "),n("em",null,"GitHub")]),n("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-anonymous peer review. ")],-1)),n("div",U5,[t[9]||(t[9]=n("div",{class:"paper-footer-head"},"Product",-1)),t[10]||(t[10]=n("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(l(),d("a",$5,"My work")):p("v-if",!0),e.user?(l(),d("a",L5,"Conferences")):p("v-if",!0),t[11]||(t[11]=n("a",{href:"/faq"},"FAQ",-1))]),t[13]||(t[13]=fe('',2))]),t[15]||(t[15]=n("div",{class:"paper-footer-rule"},null,-1)),n("div",F5,[n("span",null,"\xA9 "+u(e.year||2026)+" Anonymous GitHub \xB7 GPL-3.0 licensed",1),t[14]||(t[14]=n("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])])}var B5={class:"paper-empty"},H5={class:"paper-empty-inner"},z5={key:0,class:"paper-eyebrow"},j5={key:1,class:"paper-eyebrow"},G5={key:2,class:"paper-empty-title"},W5=["textContent"];function Jl(e,t){return l(),d("div",B5,[n("div",H5,[e.error?p("v-if",!0):(l(),d("div",z5,"Working")),e.error?(l(),d("div",j5,"Error")):p("v-if",!0),e.error?p("v-if",!0):(l(),d("h1",G5,[...t[0]||(t[0]=[v(" Loading",-1),n("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(l(),d("h1",{key:3,class:"paper-empty-title",textContent:u(e.fmt.translate(e.error))},null,8,W5)):p("v-if",!0)])])}var K5={class:"container paper-page paper-settings"},Y5={class:"paper-crumbs"},J5={class:"here"},Q5={class:"paper-page-title"},X5={class:"paper-settings-body"},Z5={class:"paper-settings-toc"},x5={href:"#conf-billing"},eV={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},tV={id:"conf-basics",class:"paper-settings-section"},nV={class:"form-group"},oV={class:"invalid-feedback"},sV={class:"invalid-feedback"},iV={class:"form-group"},rV={class:"invalid-feedback"},aV={class:"form-group"},lV={class:"invalid-feedback"},dV={class:"invalid-feedback"},uV={id:"conf-window",class:"paper-settings-section"},cV={class:"form-grid-2"},pV={class:"form-group"},fV={class:"invalid-feedback"},hV={class:"invalid-feedback"},mV={class:"form-group"},vV={class:"invalid-feedback"},gV={class:"invalid-feedback"},yV={id:"conf-rendering",class:"paper-settings-section"},bV={class:"form-check"},wV={class:"form-check-input",type:"checkbox",id:"link",name:"link"},kV={class:"form-check"},EV={class:"form-check-input",type:"checkbox",id:"image",name:"image"},CV={class:"form-check"},SV={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},_V={class:"form-check"},NV={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},RV={id:"conf-features",class:"paper-settings-section"},DV={class:"form-check"},TV={class:"form-check-input",type:"checkbox",id:"update",name:"update"},AV={class:"form-check"},OV={class:"form-check-input",type:"checkbox",id:"page",name:"page"},PV={id:"conf-plan",class:"paper-settings-section"},IV={class:"paper-plan-grid"},VV=["disabled","value"],qV=["textContent"],MV={class:"paper-plan-price"},UV={class:"paper-plan-per"},$V=["innerHTML"],LV={key:0,id:"conf-billing",class:"paper-settings-section"},FV={class:"form-group"},BV={class:"form-group"},HV={class:"form-group"},zV={class:"form-group"},jV={class:"form-grid-3"},GV={class:"form-group"},WV={class:"form-group"},KV={class:"form-group"},YV={class:"form-group"},JV={class:"paper-settings-footer"},QV=["textContent"],XV=["textContent"],ZV=["disabled"];function Ql(e,t){let o=ge("paper-scrollspy"),i=ge("field"),s=ge("form");return l(),d("div",K5,[n("div",Y5,[t[1]||(t[1]=n("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=v(" \xA0/\xA0 ",-1)),t[3]||(t[3]=n("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=v(" \xA0/\xA0 ",-1)),n("span",J5,u(e.editionMode?"Edit":"New"),1)]),n("h1",Q5,[v(u(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=n("em",null,"conference",-1))]),t[42]||(t[42]=n("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue, and lift author quotas during the review window. ",-1)),n("div",X5,[D((l(),d("aside",Z5,[t[7]||(t[7]=n("div",{class:"paper-settings-toc-head"},"On this page",-1)),n("nav",null,[t[6]||(t[6]=fe('BasicsReview windowRendering defaultsFeaturesPlan',5)),D(n("a",x5,"Billing",512),[[W,e.plan?.pricePerRepo>0]])])])),[[o]]),D((l(),d("form",eV,[n("section",tV,[t[12]||(t[12]=n("div",{class:"paper-section-eyebrow"},"Basics",-1)),n("div",nV,[t[8]||(t[8]=n("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[i,{state:e.viewState,set:r=>{e.options.name=r},value:e.options?.name,form:"conference",options:{}}]]),D(n("div",oV," The name of the conference is invalid. ",512),[[W,e.conference?.name?.errors?.invalid]]),D(n("div",sV," The name of the conference is required. ",512),[[W,e.conference?.name?.errors?.required]])]),n("div",iV,[t[9]||(t[9]=n("label",{class:"paper-field-label",for:"url"},"Website",-1)),D(n("input",{type:"url",class:P(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.url=r},value:e.options?.url,form:"conference",options:{}}]]),D(n("div",rV," The url of the conference is invalid. ",512),[[W,e.conference?.url?.errors?.url]])]),n("div",aV,[t[10]||(t[10]=n("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[i,{state:e.viewState,set:r=>{e.options.conferenceID=r},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},[v("3\u201310 characters, letters, numbers, "),n("code",null,"-"),v(" and "),n("code",null,"_"),v(". Authors reference this when they anonymize.")],-1)),D(n("div",{class:"invalid-feedback"}," The conference ID '"+u(e.options?.conferenceID)+"' is already used. ",513),[[W,e.conference?.conferenceID?.errors?.used]]),D(n("div",lV," The conference ID is required. ",512),[[W,e.conference?.conferenceID?.errors?.required]]),D(n("div",dV," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[W,e.conference?.conferenceID?.errors?.pattern]])])]),n("section",uV,[t[17]||(t[17]=n("div",{class:"paper-section-eyebrow"},"Review window",-1)),n("div",cV,[n("div",pV,[t[13]||(t[13]=n("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),D(n("input",{type:"date",class:P(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.startDate=r},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),D(n("div",fV," Start date is required. ",512),[[W,e.conference?.startDate?.errors?.required]]),D(n("div",hV," Start date must be before end date. ",512),[[W,e.conference?.startDate?.errors?.invalid]])]),n("div",mV,[t[15]||(t[15]=n("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),D(n("input",{type:"date",class:P(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.endDate=r},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),D(n("div",vV," End date is required. ",512),[[W,e.conference?.endDate?.errors?.required]]),D(n("div",gV," End date is invalid. ",512),[[W,e.conference?.endDate?.errors?.invalid]])])])]),n("section",yV,[t[26]||(t[26]=n("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),n("div",bV,[D(n("input",wV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.link=r},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=n("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),n("div",kV,[D(n("input",EV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.image=r},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=n("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),n("div",CV,[D(n("input",SV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.pdf=r},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=n("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),n("div",_V,[D(n("input",NV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.notebook=r},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=n("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),n("section",RV,[t[31]||(t[31]=n("div",{class:"paper-section-eyebrow"},"Features",-1)),n("div",DV,[D(n("input",TV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.update=r},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=n("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),n("div",AV,[D(n("input",OV,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.page=r},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=n("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),n("section",PV,[t[32]||(t[32]=n("div",{class:"paper-section-eyebrow"},"Plan",-1)),t[33]||(t[33]=n("p",{class:"paper-section-copy"},"The review package is prepaid and covers up to 180 days. Pay from the conference page after creating it. Plan and review dates cannot change after creation.",-1)),n("div",IV,[(l(!0),d(K,null,ne(e.plans,(r,a)=>(l(),d("label",{class:P(["paper-plan-card",{selected:e.options?.plan?.planID==r?.id}])},[D(n("input",{type:"radio",disabled:e.editionMode,name:"planPicker",value:r?.id},null,8,VV),[[i,{state:e.viewState,set:c=>{e.options.plan.planID=c},value:e.options?.plan?.planID,form:"conference",options:{}}]]),n("div",{class:"paper-plan-head",textContent:u(r?.name)},null,8,qV),n("div",MV,[v(u(r.id==="free_conference"?"Free":"Prepaid package")+" ",1),n("span",UV,u(r.id==="free_conference"?"":"Price on the conference page"),1)]),n("div",{class:"paper-plan-desc",innerHTML:e.sanitize(r?.description)},null,8,$V)],2))),256))])]),e.plan?.pricePerRepo>0?(l(),d("section",LV,[t[41]||(t[41]=n("div",{class:"paper-section-eyebrow"},"Billing",-1)),n("div",FV,[t[34]||(t[34]=n("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.name=r},value:e.options?.billing?.name,form:"conference",options:{}}]])]),n("div",BV,[t[35]||(t[35]=n("label",{class:"paper-field-label",for:"email"},"Email",-1)),D(n("input",{type:"email",class:P(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.email=r},value:e.options?.billing?.email,form:"conference",options:{}}]])]),n("div",HV,[t[36]||(t[36]=n("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address=r},value:e.options?.billing?.address,form:"conference",options:{}}]])]),n("div",zV,[D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.address2=r},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),n("div",jV,[n("div",GV,[t[37]||(t[37]=n("label",{class:"paper-field-label",for:"city"},"City",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.city=r},value:e.options?.billing?.city,form:"conference",options:{}}]])]),n("div",WV,[t[38]||(t[38]=n("label",{class:"paper-field-label",for:"country"},"Country",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.country=r},value:e.options?.billing?.country,form:"conference",options:{}}]])]),n("div",KV,[t[39]||(t[39]=n("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.zip=r},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),n("div",YV,[t[40]||(t[40]=n("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.vat=r},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):p("v-if",!0),n("div",JV,[e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:u(e.error)},null,8,QV)):p("v-if",!0),e.message?(l(),d("div",{key:1,class:"alert alert-success",role:"alert",textContent:u(e.message)},null,8,XV)):p("v-if",!0),n("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=de(r=>e.submitForm(r,()=>{e.submit(r)}),["prevent"]))},u(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,ZV)])])),[[s,e.viewState]])])])}var xV={key:0},eq=["innerHTML"],tq={key:3},nq=["src"],oq=["src"],sq={key:7},iq={controls:"controls"},rq=["src"],aq={key:8},lq={key:9,class:"file-error container d-flex h-100"},dq={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},uq={class:"paper-error-msg"},cq={key:10,class:"file-error container d-flex h-100"},pq={class:"viewer-error paper-error-card file-error-card m-auto",role:"alert","aria-labelledby":"viewer-error-title"},fq={id:"viewer-error-title",class:"paper-empty-title"},hq={class:"paper-error-actions"},mq={key:0,href:"/",class:"btn btn-sm"},vq={key:1,href:"/faq",class:"btn btn-sm"},gq={key:2,class:"btn btn-outline-ink",href:"/dashboard"},yq={key:11,class:"file-error container d-flex h-100"},bq={key:12,class:"file-error container d-flex h-100"},wq={key:13,class:"file-error container d-flex h-100"},kq={key:14,class:"file-error container d-flex h-100"},Eq={class:"paper-empty-title m-auto"},Cq=["href"];function Xl(e,t){let o=Ge("html-doc"),i=Ge("pdfviewer"),s=Ge("notebook"),r=ge("code-editor");return l(),d(K,null,[e.type=="text"?D((l(),d("div",xV,null,512)),[[r,{content:e.content,options:e.aceOption}]]):p("v-if",!0),e.type=="html"?(l(),d("div",{key:1,class:"file-content markdown-body",innerHTML:e.highlightRedactions(e.sanitize(e.content))},null,8,eq)):p("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(l(),Ft(o,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):p("v-if",!0),(e.type=="code"||e.type=="html-doc"&&e.showSource)&&e.content!=null?D((l(),d("div",tq,null,512)),[[r,{content:e.content,options:e.aceOption}]]):p("v-if",!0),e.type=="image"?(l(),d("img",{key:4,class:"image-content",src:e.safeUrl(e.url)},null,8,nq)):p("v-if",!0),e.type=="media"?(l(),d("iframe",{key:5,class:"h-100 overflow-auto w-100 b-0",src:e.safeUrl(e.url)},null,8,oq)):p("v-if",!0),e.type=="pdf"?(l(),Ft(i,{key:6,src:e.safeUrl(e.url)},null,8,["src"])):p("v-if",!0),e.type=="audio"?(l(),d("div",sq,[n("audio",iq,[n("source",{src:e.safeUrl(e.url)},null,8,rq)])])):p("v-if",!0),e.type=="IPython"?(l(),d("div",aq,[Ce(s,{file:e.url,content:e.content},null,8,["file","content"])])):p("v-if",!0),e.type=="rate_limited"?(l(),d("div",lq,[n("div",dq,[t[3]||(t[3]=fe('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",uq,[t[1]||(t[1]=v("This repository will be available in ",-1)),n("strong",null,u(e.rateLimitCountdown),1),t[2]||(t[2]=v(". The page will reload automatically.",-1))])])])):p("v-if",!0),e.type=="error"?(l(),d("div",cq,[n("section",pq,[n("h1",fq,u(e.fmt.translate(e.isSourceAccessError()?"VIEWER_ERRORS.access_title":"VIEWER_ERRORS.title")),1),n("p",null,u(e.fmt.translate("ERRORS."+e.content)),1),e.isSourceAccessError()?(l(),d(K,{key:0},[n("p",null,u(e.fmt.translate("VIEWER_ERRORS.reader_help")),1),n("p",null,u(e.fmt.translate("VIEWER_ERRORS.owner_help")),1)],64)):p("v-if",!0),n("div",hq,[e.isSourceAccessError()?p("v-if",!0):(l(),d("a",mq,"Back to home")),e.isSourceAccessError()?p("v-if",!0):(l(),d("a",vq,"Read the FAQ")),n("button",{type:"button",class:"btn btn-primary",onClick:t[0]||(t[0]=a=>e.retryContent())},u(e.fmt.translate("VIEWER_ERRORS.retry")),1),e.isSourceAccessError()?(l(),d("a",gq,u(e.fmt.translate("VIEWER_ERRORS.dashboard")),1)):p("v-if",!0)])])])):p("v-if",!0),e.type=="loading"&&!e.error?(l(),d("div",yq,[...t[4]||(t[4]=[n("h1",{class:"paper-empty-title m-auto"},"Loading\u2026",-1)])])):p("v-if",!0),e.type=="empty"?(l(),d("div",bq,[...t[5]||(t[5]=[n("h1",{class:"paper-empty-title m-auto"},[v("Empty "),n("em",null,"repository"),v(".")],-1)])])):p("v-if",!0),e.content==null&&e.type!="empty"?(l(),d("div",wq,[...t[6]||(t[6]=[n("h1",{class:"paper-empty-title m-auto"},[v("Empty "),n("em",null,"file"),v(".")],-1)])])):p("v-if",!0),e.type=="binary"?(l(),d("div",kq,[n("h1",Eq,[t[7]||(t[7]=v("Unsupported ",-1)),t[8]||(t[8]=n("em",null,"binary file",-1)),t[9]||(t[9]=v(". You can ",-1)),n("a",{target:"_blank",href:e.safeUrl(e.url+"&download=true")},"download it",8,Cq),t[10]||(t[10]=v(".",-1))])])):p("v-if",!0)],64)}var Sq={class:"container page dashboard-page paper-page"},_q={class:"row"},Nq={class:"w-100"},Rq={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},Dq={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},Tq={class:"flex-grow-1"},Aq={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},Oq={class:"d-flex flex-wrap",style:{gap:"6px"}},Pq={class:"dropdown"},Iq={class:"dropdown-menu","aria-labelledby":"dropdownSort"},Vq={class:"form-check dropdown-item"},qq={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},Mq={class:"form-check dropdown-item"},Uq={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},$q={class:"form-check dropdown-item"},Lq={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},Fq={class:"form-check dropdown-item"},Bq={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},Hq={class:"form-check dropdown-item"},zq={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},jq={class:"dropdown"},Gq={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},Wq={class:"form-check dropdown-item"},Kq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},Yq={class:"form-check dropdown-item"},Jq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},Qq={class:"form-check dropdown-item"},Xq={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},Zq={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},xq={class:"filter-chip"},eM=["onClick"],tM={class:"repo-list w-100"},nM={class:"repo-list-item-content"},oM={class:"repo-list-item-main"},sM={class:"repo-list-item-header"},iM=["textContent","href"],rM=["textContent"],aM=["textContent"],lM={class:"repo-source"},dM=["href"],uM={class:"repo-date"},cM={class:"repo-meta"},pM={key:0,title:"Conference"},fM=["title"],hM=["title"],mM=["title"],vM={key:1},gM={class:"repo-list-item-actions"},yM={class:"dropdown"},bM={class:"dropdown-menu dropdown-menu-right"},wM=["href"],kM=["onClick"],EM=["onClick"],CM=["onClick"],SM=["href"],_M={key:0,class:"repo-list-empty"};function Zl(e,t){let o=ge("field"),i=ge("form");return l(),d("div",Sq,[n("div",_q,[n("div",Nq,[t[12]||(t[12]=fe('
My work \xA0/\xA0 Pull requests

Anonymized pull requests

Track PR mirrors you\u2019ve created and their reviewer traffic.

',2)),p(" Search + filters row "),D((l(),d("form",Rq,[n("div",Dq,[n("div",Tq,[D(n("input",Aq,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",Oq,[n("div",Pq,[t[6]||(t[6]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),n("div",Iq,[t[5]||(t[5]=n("h6",{class:"dropdown-header"},"Select order",-1)),n("div",Vq,[D(n("input",qq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=n("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),n("div",Mq,[D(n("input",Uq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=n("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),n("div",$q,[D(n("input",Lq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",Fq,[D(n("input",Bq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),n("div",Hq,[D(n("input",zq,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),n("div",jq,[t[11]||(t[11]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),n("div",Gq,[t[10]||(t[10]=n("h6",{class:"dropdown-header"},"Select status",-1)),n("div",Wq,[D(n("input",Kq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.ready=s},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),n("div",Yq,[D(n("input",Jq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.expired=s},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),n("div",Qq,[D(n("input",Xq,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.removed=s},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=n("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[i,e.viewState]]),p(" Active filter chips "),D(n("div",Zq,[(l(!0),d(K,null,ne(e.filters?.status,(s,r,a)=>D((l(),d("span",xq,[v(u(e.fmt?.title(r))+" ",1),n("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:c=>{e.filters.status[r]=!0}}," \xD7 ",8,eM)],512)),[[W,!s]])),256))],512),[[W,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),p(" Pull request list "),n("ul",tM,[(l(!0),d(K,null,ne(e.filteredPullRequests,(s,r)=>(l(),d("li",{class:P(["repo-list-item",{"repo-inactive":s?.status=="expired"||s?.status=="removed"||s?.status=="error"}])},[n("div",nM,[n("div",oM,[n("div",sM,[n("a",{class:"repo-name",textContent:u(s?.pullRequestId),href:e.safeUrl("/pr/"+s?.pullRequestId)},null,8,iM),n("span",{class:P(["status-badge",{"status-removed":s?.status=="removed"||s?.status=="expired"||s?.status=="removing"||s?.status=="expiring","status-preparing":s?.status=="preparing"||s?.status=="download","status-ready":s?.status=="ready","status-error":s?.status=="error"}])},[n("span",{textContent:u(e.fmt?.title(s?.status))},null,8,rM),s?.status=="error"?(l(),d("span",{key:0,textContent:u(": "+s?.statusMessage)},null,8,aM)):p("v-if",!0)],2)]),n("div",lM,[n("span",null,[t[13]||(t[13]=n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),n("a",{href:e.safeUrl("https://github.com/"+s?.source?.repositoryFullName+"/pull/"+s?.source?.pullRequestId)},u(s?.source?.repositoryFullName)+"#"+u(s?.source?.pullRequestId),9,dM)]),n("span",{class:P(["status-badge",{"status-ready":s?.merged,"status-removed":s?.state=="open","status-error":s?.state=="closed"&&!s?.merged}]),style:{"font-size":"10px"}},u(e.fmt?.title(s?.merged?"merged":s?.state)),3),n("span",uM,"anonymized "+u(e.fmt?.humanTime(s?.anonymizeDate)),1)])]),n("div",cM,[s?.conference?(l(),d("span",pM,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),v(" "+u(s?.conference),1)])):p("v-if",!0),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+s?.options?.terms?.join(", ")},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),v(" "+u(e.fmt?.number(s?.options?.terms?.length)),1)],8,fM),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(s?.pageView)},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),v(" "+u(e.fmt?.number(s?.pageView)),1)],8,hM),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(s?.lastView)},[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-calendar"})],-1)),v(" "+u(e.fmt?.humanTime(s?.lastView)),1)],8,mM),s?.options?.expirationMode!="never"&&s?.status=="ready"?(l(),d("span",vM,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v(" Expire: "+u(e.fmt?.humanTime(s?.options?.expirationDate)),1)])):p("v-if",!0)])]),n("div",gM,[n("div",yM,[t[24]||(t[24]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),n("div",bM,[n("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+s?.pullRequestId)},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit ",-1)])],8,wM),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updatePullRequest(s),["prevent"])},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force update ",-1)])],8,kM),[[W,s?.status=="ready"||s?.status=="error"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updatePullRequest(s),["prevent"])},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Enable ",-1)])],8,EM),[[W,s?.status=="removed"]]),D(n("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removePullRequest(s),["prevent"])},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove ",-1)])],8,CM),[[W,s?.status=="ready"]]),n("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+s?.pullRequestId+"/")},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View PR ",-1)])],8,SM)])])])],2))),256)),e.filteredPullRequests?.length==0?(l(),d("li",_M,[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No pull requests to display.",-1)])])):p("v-if",!0)])])])}var NM={class:"container paper-page user-settings"},RM={class:"settings-title"},DM={class:"settings-header-actions"},TM={class:"settings-nav","aria-label":"Settings"},AM=["aria-current","onClick"],OM={class:"settings-row"},PM={class:"form-control",id:"terms",name:"terms",rows:"3",placeholder:`Jane Smith MIT CSAIL -jane.smith@example.org`},I8={class:"settings-syntax"},V8={class:"invalid-feedback"},q8={class:"settings-row"},M8={class:"settings-checks"},U8={class:"settings-check"},$8={class:"form-check-input",type:"checkbox",id:"link",name:"link"},L8={class:"settings-check"},F8={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},B8={class:"settings-check"},H8={class:"form-check-input",type:"checkbox",id:"image",name:"image"},z8={class:"settings-check"},j8={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},G8={class:"settings-check"},W8={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},K8={class:"settings-check"},Y8={class:"form-check-input",type:"checkbox",id:"page",name:"page"},J8={class:"settings-row"},Q8={class:"settings-check"},X8={class:"form-check-input",type:"checkbox",id:"update",name:"update"},Z8={class:"settings-row"},x8={class:"form-control",id:"expiration",name:"expiration"},eM={class:"settings-help"},tM={class:"settings-save"},nM={class:"settings-save-status draft-status",role:"status"},oM={key:0},sM={key:1},iM={key:2},rM=["disabled"],aM={key:1,class:"settings-save-error",role:"alert"},lM=["aria-busy"],dM={key:0,role:"status"},uM={key:1,class:"settings-notice",role:"alert"},cM=["disabled"],pM={key:2,class:"settings-notice",role:"status"},fM={key:3,class:"settings-notice",role:"status"},hM=["disabled"],mM={class:"settings-row"},vM={class:"settings-inline"},gM={key:0,class:"settings-help"},yM={key:0,class:"settings-help"},bM={id:"settings-quota"},wM={key:1,role:"status"},kM={key:1,class:"settings-notice"},EM={key:2,class:"settings-notice"},CM={key:3,class:"settings-notice"},SM={key:4,class:"settings-help"},_M={key:5,class:"settings-plan billing-plan"},NM={class:"settings-comparison"},RM={class:"settings-cycles"},DM=["checked","onChange"],TM={class:"settings-help"},AM={class:"settings-actions"},OM=["disabled"],PM={key:6,class:"settings-help"},IM={class:"settings-row"},VM={key:0,class:"settings-inline"},qM=["disabled"],MM={key:1,class:"settings-help"},UM=["disabled"],$M={key:4,class:"settings-row"},LM={class:"settings-inline"},FM=["disabled"],BM={key:0,class:"settings-pass"},HM={class:"settings-help"},zM=["disabled"],jM={key:5,class:"settings-row"},GM={class:"settings-help"},WM={id:"settings-account",class:"settings-account-panel"},KM={class:"paper-account-card"},YM=["src"],JM={class:"paper-account-identity"},QM={class:"paper-account-name"},XM=["disabled"],ZM={key:0,role:"status"},xM={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},e6=["disabled"],t6={key:3,role:"status"},n6={class:"paper-danger-zone"},o6={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},s6=["textContent"],i6=["disabled"],r6={key:1,class:"settings-delete-confirm"},a6={for:"delete-username"},l6={class:"settings-actions"},d6=["disabled"],u6=["disabled"];function xl(e,t){let o=Ge("quota-usage"),i=ge("field"),s=ge("form");return l(),d("div",N8,[n("header",R8,[t[20]||(t[20]=n("h1",null,"Settings",-1)),n("div",D8,[n("span",null,"@"+u(e.user?.username),1)])]),n("nav",T8,[(l(),d(K,null,ne([{id:"defaults",label:"Anonymization defaults"},{id:"billing",label:"Hosting & billing"},{id:"account",label:"Account"}],r=>n("button",{type:"button","aria-current":e.settingsTab===r.id?"page":null,onClick:a=>e.settingsTab=r.id},u(r.label),9,A8)),64))]),D(n("div",null,[t[41]||(t[41]=n("p",{class:"settings-scope"},"For new anonymizations only. Existing repositories keep their settings.",-1)),D((l(),d("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onSubmit:t[1]||(t[1]=de(r=>e.submitForm(r,()=>{e.saveDefault(r)}),["prevent"]))},[n("section",O8,[t[26]||(t[26]=n("div",null,[n("label",{class:"settings-label",for:"terms"},"Terms to redact"),n("p",{class:"settings-help"},"One term per line.")],-1)),n("div",null,[D(n("textarea",P8,null,512),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),n("details",I8,[t[25]||(t[25]=n("summary",null,"Regex & replacement syntax",-1)),n("p",null,[t[21]||(t[21]=v("Matches become ",-1)),n("code",null,u(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[22]||(t[22]=v(". Use ",-1)),t[23]||(t[23]=n("code",null,"term=>replacement",-1)),t[24]||(t[24]=v(" for a custom replacement. Regex is supported.",-1))])]),D(n("div",V8,"Terms are in an invalid format.",512),[[W,e.defaultsForm?.terms?.errors?.format]])])]),n("section",q8,[t[35]||(t[35]=n("h2",null,"Reviewer display",-1)),n("div",null,[n("div",M8,[n("label",U8,[D(n("input",$8,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[27]||(t[27]=v("Keep links",-1))]),n("label",L8,[D(n("input",F8,null,512),[[i,{state:e.viewState,set:r=>{e.options.notebook=r},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[28]||(t[28]=v("Render notebooks",-1))]),n("label",B8,[D(n("input",H8,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[29]||(t[29]=v("Show images",-1))]),n("label",z8,[D(n("input",j8,null,512),[[i,{state:e.viewState,set:r=>{e.options.pdf=r},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[30]||(t[30]=v("Show PDFs",-1))]),n("label",G8,[D(n("input",W8,null,512),[[i,{state:e.viewState,set:r=>{e.options.loc=r},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[31]||(t[31]=v("Show line counts",-1))]),n("label",K8,[D(n("input",Y8,null,512),[[i,{state:e.viewState,set:r=>{e.options.page=r},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[32]||(t[32]=v("GitHub Pages",-1))])]),t[33]||(t[33]=n("p",{class:"settings-help"},"Images and PDFs are not anonymized.",-1)),t[34]||(t[34]=n("p",{class:"settings-help"},"GitHub Pages must use the anonymized branch.",-1))])]),n("section",J8,[t[38]||(t[38]=n("h2",null,"Source updates",-1)),n("div",null,[n("label",Q8,[D(n("input",X8,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[36]||(t[36]=v("Auto-update from GitHub",-1))]),t[37]||(t[37]=n("p",{class:"settings-help"},"Latest commit, at most once an hour.",-1))])]),n("section",Z8,[t[40]||(t[40]=n("label",{class:"settings-label",for:"expiration"},"On expiration",-1)),n("div",null,[D((l(),d("select",x8,[...t[39]||(t[39]=[n("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),n("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),n("p",eM,u(e.options.expirationMode==="redirect"?"Redirecting reveals the original repository. Choose the date per anonymization.":"Set the expiration date for each repository."),1)])]),n("footer",tM,[n("div",nM,[e.draftRestored?(l(),d("span",oM,"Your unsaved draft was restored.")):e.unsavedChanges?(l(),d("span",sM,"Unsaved changes"+u(e.draftSaved?" \xB7 Draft saved in this tab":""),1)):(l(),d("span",iM,u(e.message?"Defaults saved":"All changes saved"),1))]),e.draftRestored||e.unsavedChanges?(l(),d("button",{key:0,type:"button",class:"draft-discard",onClick:t[0]||(t[0]=r=>e.discardDraft())},"Discard changes")):p("v-if",!0),n("button",{id:"save",type:"submit",class:"btn btn-ink",disabled:e.saving},u(e.saving?"Saving\u2026":"Save defaults"),9,rM),e.error?(l(),d("div",aM,u(e.error),1)):p("v-if",!0)])],32)),[[s,e.viewState]])],512),[[W,e.settingsTab==="defaults"]]),D(n("section",{id:"settings-billing","aria-busy":e.billingLoading||e.billingBusy},[t[64]||(t[64]=n("p",{class:"settings-scope"},"Your plan and usage. Reviewer access is always free.",-1)),e.billingLoading?(l(),d("p",dM,"Loading billing\u2026")):p("v-if",!0),e.billingError?(l(),d("div",uM,[v(u(e.billingError)+" ",1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=r=>e.loadBilling()),disabled:e.billingBusy},"Try again",8,cM)])):p("v-if",!0),e.billingNotice?(l(),d("p",pM,u(e.billingNotice),1)):p("v-if",!0),e.billingPending?(l(),d("div",fM,[t[42]||(t[42]=n("strong",null,"Confirming your payment",-1)),t[43]||(t[43]=n("p",null,"Your allowance will update after confirmation. Please do not pay again.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=r=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,hM)])):p("v-if",!0),n("section",mM,[t[57]||(t[57]=n("h2",null,"Current plan",-1)),n("div",null,[n("div",vM,[n("div",null,[n("strong",null,u(e.profileAuthorGrant()?"Author subscription":e.billing?.enabled?"Free":"Account allowance"),1),e.profileAuthorGrant()?(l(),d("p",gM,u(e.profileAuthorGrant().cancelAtPeriodEnd?"Renewal cancelled \xB7 Access until ":"Paid access through ")+u(e.billingDate(e.profileAuthorGrant().until)),1)):p("v-if",!0)]),e.billing?.enabled&&!e.profileAuthorGrant()&&!e.billingPending&&!e.showAuthorPlans&&e.profileAuthorPlans().length?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[4]||(t[4]=r=>e.openProfileUpgrade())},"View Author plan")):p("v-if",!0)]),e.billing?.allowance?(l(),d("p",yM,u(e.billing.allowance.repositories)+" repositories \xB7 "+u(e.billingBytes(e.billing.allowance.storage)),1)):p("v-if",!0),n("div",bM,[e.quota?(l(),Ft(o,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",wM,"Loading usage\u2026"))]),t[56]||(t[56]=n("p",{class:"settings-help"},"Coauthored repositories use their owner's allowance. Conference hosting is separate.",-1)),e.quota?.repository&&!e.quota.repository.unlimited&&e.quota.repository.used>=e.quota.repository.total?(l(),d("p",kM,[...t[44]||(t[44]=[v("Your repository allowance is full. ",-1),n("a",{href:"/dashboard"},"Review your repositories",-1),v(" to remove work you no longer need.",-1)])])):p("v-if",!0),e.profilePastSubscription()?(l(),d("p",EM,[...t[45]||(t[45]=[v("Your previous subscription is no longer active. Never-expiring repositories receive a 90-day grace period after paid access ends. ",-1),n("a",{href:"/dashboard"},"Review repository expiration dates",-1),v(".",-1)])])):p("v-if",!0),e.profileAuthorGrant()?.status==="past_due"?(l(),d("p",CM,"A subscription payment is overdue. Use Manage billing to update your payment details.")):p("v-if",!0),e.profileAuthorGrant()?.cancelAtPeriodEnd?(l(),d("p",SM,"When paid access ends, never-expiring repositories enter a 90-day grace period. Dated repositories keep their expiration dates.")):p("v-if",!0),e.showAuthorPlans&&!e.profileAuthorGrant()&&!e.billingPending&&e.profileAuthorPlans().length?(l(),d("div",_M,[t[54]||(t[54]=n("h3",{id:"settings-plan-comparison",tabindex:"-1"},"Compare plans",-1)),n("table",NM,[t[51]||(t[51]=n("caption",{class:"sr-only"},"Free and Author hosting",-1)),t[52]||(t[52]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Included"),n("th",{scope:"col"},"Free"),n("th",{scope:"col"},"Author")])],-1)),n("tbody",null,[n("tr",null,[t[46]||(t[46]=n("th",{scope:"row"},"Active repositories",-1)),n("td",null,u(e.billing.allowance?.repositories),1),n("td",null,u(e.profileSelectedPlan()?.repositories),1)]),n("tr",null,[t[47]||(t[47]=n("th",{scope:"row"},"Source storage",-1)),n("td",null,u(e.billingBytes(e.billing.allowance?.storage)),1),n("td",null,u(e.billingBytes(e.profileSelectedPlan()?.storage)),1)]),t[48]||(t[48]=n("tr",null,[n("th",{scope:"row"},"Expiration"),n("td",null,"Scheduled"),n("td",null,"Scheduled or never")],-1)),t[49]||(t[49]=n("tr",null,[n("th",{scope:"row"},"Coauthors"),n("td",null,"Included"),n("td",null,"Included")],-1)),t[50]||(t[50]=n("tr",null,[n("th",{scope:"row"},"Reviewer access"),n("td",null,"Free"),n("td",null,"Free")],-1))])]),n("fieldset",RM,[t[53]||(t[53]=n("legend",{class:"sr-only"},"Billing frequency",-1)),(l(!0),d(K,null,ne(e.profileAuthorPlans(),r=>(l(),d("label",{class:P({selected:e.profileSelectedPlan()?.id===r.id})},[n("input",{type:"radio",name:"profile-plan",checked:e.profileSelectedPlan()?.id===r.id,onChange:a=>e.profilePlan=r.id},null,40,DM),v(u(e.billingPrice(r)),1)],2))),256))]),n("p",TM,"Renews "+u(e.profileSelectedPlan()?.interval==="year"?"annually":"monthly")+" until cancelled. Tax shown at checkout.",1),t[55]||(t[55]=n("p",{class:"settings-help"},"If paid access ends, never-expiring repositories expire after a 90-day grace period.",-1)),n("div",AM,[n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||e.billing.checkoutEnabled===!1,onClick:t[5]||(t[5]=r=>e.checkout(e.profileSelectedPlan().id))},u(e.billingBusy?"Please wait\u2026":"Continue to checkout"),9,OM),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[6]||(t[6]=r=>e.showAuthorPlans=!1)},"Keep current plan")])])):p("v-if",!0),e.billing&&(!e.billing.enabled||e.billing.checkoutEnabled===!1)?(l(),d("p",PM,"New purchases are not available. Existing billing can still be managed below.")):p("v-if",!0)])]),n("section",IM,[t[59]||(t[59]=n("h2",null,"Billing",-1)),n("div",null,[e.billing?.portal?(l(),d("div",VM,[t[58]||(t[58]=n("p",{class:"settings-help"},"Invoices, payment details, and renewal.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[7]||(t[7]=r=>e.billingPortal()),disabled:e.billingBusy},"Manage billing",8,qM)])):(l(),d("p",MM,"No billing account available.")),e.billing?.enabled&&!e.billingPending?(l(),d("button",{key:2,type:"button",class:"settings-text-button",onClick:t[8]||(t[8]=r=>e.refreshBilling()),disabled:e.billingBusy},"Refresh payment status",8,UM)):p("v-if",!0)])]),e.billing?.enabled?(l(),d("section",$M,[t[62]||(t[62]=n("h2",null,"Repository passes",-1)),n("div",null,[n("div",LM,[t[60]||(t[60]=n("p",{class:"settings-help"},[v("One repository for 180 days."),n("br"),v("No subscription or automatic renewal.")],-1)),e.profilePassPlan()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[9]||(t[9]=r=>e.showRepositoryPass=!e.showRepositoryPass),disabled:e.billingPending},"Review a pass",8,FM)):p("v-if",!0)]),e.showRepositoryPass&&e.profilePassPlan()&&!e.billingPending?(l(),d("div",BM,[t[61]||(t[61]=n("label",{for:"billing-repository"},"Repository ID you own",-1)),D(n("input",{id:"billing-repository",class:"form-control","onUpdate:modelValue":t[10]||(t[10]=r=>e.billingRepository=r),placeholder:"Existing anonymized repository ID",autocomplete:"off"},null,512),[[wt,e.billingRepository]]),n("p",HM,u(e.billingPrice(e.profilePassPlan()))+" \xB7 "+u(e.billingBytes(e.profilePassPlan().storage))+" \xB7 Never expire is not included.",1),n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||!e.billingRepository.trim()||e.billing.checkoutEnabled===!1,onClick:t[11]||(t[11]=r=>e.checkout("author_pass",e.billingRepository.trim()))},"Continue to checkout",8,zM)])):p("v-if",!0)])])):p("v-if",!0),e.billing?.grants?.length?(l(),d("section",jM,[t[63]||(t[63]=n("h2",null,"Your purchases",-1)),n("div",null,[(l(!0),d(K,null,ne(e.billing.grants,r=>(l(),d("div",{class:"settings-purchase",key:r.scope+r.planId+r.until},[n("strong",null,u(e.profileGrantName(r)),1),n("span",null,u(r.scope),1),n("p",GM,[v(u(r.status),1),r.status!=="revoked"?(l(),d(K,{key:0},[v(" \xB7 Paid access through "+u(e.billingDate(r.until))+u(r.cancelAtPeriodEnd?" \xB7 Renewal cancelled":""),1)],64)):p("v-if",!0)])]))),128))])])):p("v-if",!0),t[65]||(t[65]=n("section",{class:"settings-row"},[n("h2",null,"Conference hosting"),n("div",{class:"settings-inline"},[n("p",{class:"settings-help"},"Shared hosting is managed per conference."),n("a",{href:"/conferences",class:"btn btn-outline-ink"},"My conferences")])],-1))],8,lM),[[W,e.settingsTab==="billing"]]),D(n("section",WM,[t[75]||(t[75]=n("p",{class:"settings-scope"},"Your identity, repository access, and account.",-1)),n("div",KM,[e.user?.photo?(l(),d("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,YM)):p("v-if",!0),n("div",JM,[n("div",QM,"@"+u(e.user?.username),1),t[66]||(t[66]=n("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[67]||(t[67]=n("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),n("form",{class:"paper-account-email",onSubmit:t[15]||(t[15]=de(r=>e.saveAccountEmail(),["prevent"]))},[t[68]||(t[68]=n("label",{class:"paper-field-label",for:"account-email"},"Email address",-1)),t[69]||(t[69]=n("p",{id:"account-email-help",class:"paper-section-copy"},"Used for account alerts. Your address is never shown on anonymous pages.",-1)),D(n("input",{id:"account-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[12]||(t[12]=r=>e.accountEmail=r),"aria-describedby":"account-email-help",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady,onInput:t[13]||(t[13]=r=>e.emailSaved=!1)},null,40,XM),[[wt,e.accountEmail]]),e.emailLoading?(l(),d("p",ZM,"Loading your email address\u2026")):p("v-if",!0),e.emailError?(l(),d("p",xM,u(e.emailError),1)):p("v-if",!0),!e.emailCSRFReady&&!e.emailLoading?(l(),d("button",{key:2,class:"btn btn-outline-ink mt-2",type:"button",onClick:t[14]||(t[14]=r=>e.loadAccountEmail())},"Try again")):p("v-if",!0),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady},u(e.emailSaving?"Saving\u2026":"Save email address"),9,e6),e.emailSaved?(l(),d("p",t6,"Email address saved.")):p("v-if",!0)],32),t[76]||(t[76]=n("a",{class:"paper-settings-connection-link",href:"/connections"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",null,[v("GitHub connections"),n("small",null,"Manage repository access and legacy OAuth.")]),n("span",{"aria-hidden":"true"},"\u2192")],-1)),n("div",n6,[t[73]||(t[73]=n("div",{class:"paper-danger-head"},"Delete account",-1)),t[74]||(t[74]=n("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(l(),d("div",o6,[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),t[71]||(t[71]=v()),n("span",{textContent:u(e.deleteError)},null,8,s6)])):p("v-if",!0),n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[16]||(t[16]=r=>e.confirmDeleteAccount=!0),disabled:e.deletingAccount},[t[72]||(t[72]=n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)),v(u(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,i6),e.confirmDeleteAccount?(l(),d("div",r6,[n("label",a6,"Type "+u(e.user?.username)+" to confirm",1),D(n("input",{id:"delete-username",class:"form-control","onUpdate:modelValue":t[17]||(t[17]=r=>e.deleteUsername=r),autocomplete:"off"},null,512),[[wt,e.deleteUsername]]),n("div",l6,[n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[18]||(t[18]=r=>e.deleteAccount()),disabled:e.deletingAccount||e.deleteUsername!==e.user?.username},u(e.deletingAccount?"Deleting\u2026":"Delete permanently"),9,d6),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=r=>{e.confirmDeleteAccount=!1,e.deleteUsername=""}),disabled:e.deletingAccount},"Cancel",8,u6)])])):p("v-if",!0)])],512),[[W,e.settingsTab==="account"]])])}var c6={class:"pr-page"},p6={class:"container paper-page pr-page-inner"},f6={class:"pr-header"},h6={class:"pr-title-row"},m6={class:"paper-page-title pr-title"},v6=["textContent"],g6={key:1,class:"text-muted"},y6=["href"],b6={class:"pr-header-meta"},w6={key:0,class:"pr-meta-item"},k6=["textContent"],E6={key:1,class:"pr-meta-item"},C6=["textContent"],S6={key:2,class:"pr-meta-item"},_6=["textContent"],N6={key:0,class:"pr-body-card"},R6={key:1,class:"paper-tabs",role:"tablist"},D6=["aria-selected","tabindex"],T6=["aria-selected","tabindex"],A6=["textContent"],O6={class:"paper-tab-content"},P6={key:0,role:"tabpanel",id:"pr-diff-panel","aria-labelledby":"pr-diff-tab"},I6=["innerHTML"],V6={key:1,role:"tabpanel",id:"pr-comments-panel","aria-labelledby":"pr-comments-tab"},q6={class:"pr-comments"},M6={class:"pr-comment"},U6={class:"pr-comment-head"},$6={key:0,class:"pr-comment-author"},L6=["textContent"],F6=["textContent"],B6={key:0,class:"pr-comment-body"},H6={key:0,class:"paper-table-empty"};function ed(e,t){let o=Ge("markdown");return l(),d("div",c6,[n("div",p6,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),v(" \xA0/\xA0 "),n("span",{class:"here"},"Pull request")],-1)),n("header",f6,[n("div",h6,[n("h1",m6,[e.details?.title?(l(),d("span",{key:0,textContent:u(e.details?.title)},null,8,v6)):p("v-if",!0),e.details?.title?p("v-if",!0):(l(),d("span",g6,"Untitled pull request"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,y6)):p("v-if",!0)]),n("div",b6,[n("span",{class:P(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[n("span",{class:P(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),v(" "+u(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(l(),d("span",w6,[t[5]||(t[5]=n("i",{class:"fab fa-github"},null,-1)),t[6]||(t[6]=v()),n("span",{textContent:u(e.details?.baseRepositoryFullName)},null,8,k6)])):p("v-if",!0),e.details?.updatedDate?(l(),d("span",E6,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=v()),n("span",{textContent:u(e.fmt?.date(e.details?.updatedDate))},null,8,C6)])):p("v-if",!0),e.details?.anonymizeDate?(l(),d("span",S6,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=v(" Anonymized ",-1)),n("span",{textContent:u(e.fmt?.date(e.details?.anonymizeDate))},null,8,_6)])):p("v-if",!0)])]),e.details?.body?(l(),d("section",N6,[t[11]||(t[11]=n("div",{class:"paper-section-eyebrow"},"Description",-1)),Ce(o,{content:e.details?.body},null,8,["content"])])):p("v-if",!0),e.details?.diff||e.details?.comments?(l(),d("nav",R6,[e.details?.diff?(l(),d("button",{key:0,class:P(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",id:"pr-diff-tab","aria-selected":e.tabState?.active==="diff","aria-controls":"pr-diff-panel",tabindex:e.tabState?.active==="diff"?0:-1,onKeydown:t[0]||(t[0]=i=>e.previewTabKeydown(i)),onClick:t[1]||(t[1]=i=>e.tabState.active="diff")},[...t[12]||(t[12]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),v(" Diff ",-1)])],42,D6)):p("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:P(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"pr-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"pr-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=i=>e.previewTabKeydown(i)),onClick:t[3]||(t[3]=i=>e.tabState.active="comments")},[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,A6)],42,T6)):p("v-if",!0)])):p("v-if",!0),n("div",O6,[e.details?.diff&&e.tabState?.active=="diff"?(l(),d("div",P6,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,I6)])):p("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",V6,[n("ul",q6,[(l(!0),d(K,null,ne(e.details?.comments,(i,s)=>(l(),d("li",M6,[n("div",U6,[i?.author?(l(),d("span",$6,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=v(" @",-1)),n("span",{textContent:u(i?.author)},null,8,L6)])):p("v-if",!0),i?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(i?.updatedDate))},null,8,F6)):p("v-if",!0)]),i?.body?(l(),d("div",B6,[Ce(o,{content:i?.body},null,8,["content"])])):p("v-if",!0)]))),256)),e.details?.comments?.length?p("v-if",!0):(l(),d("li",H6,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this pull request.",-1)])]))])])):p("v-if",!0)])])])}var z6={class:"repository-task status-page"},j6={class:"task-lede"},G6={class:"task-columns"},W6={class:"task-preparation","aria-label":"Repository preparation"},K6={key:0,class:"task-ready",role:"status"},Y6={key:1},J6={key:2,class:"text-danger",role:"alert"},Q6={key:3,class:"paper-section-copy"},X6={key:4,class:"paper-ratelimit-card",role:"status"},Z6={class:"paper-error-msg"},x6=["aria-valuenow"],eU={class:"paper-progress-label"},tU=["textContent"],nU={key:0},oU=["textContent"],sU={class:"paper-progress-pct"},iU={key:6,class:"paper-error-card",role:"alert"},rU={key:0,class:"paper-error-msg"},aU={key:1,class:"paper-error-msg"},lU={key:2},dU=["href"],uU={class:"paper-error-actions"},cU=["href"],pU={key:7,class:"share-link"},fU={class:"share-link-row"},hU=["value"],mU={class:"ui-icon","aria-hidden":"true"},vU=["href"],gU=["textContent"],yU={class:"share-link-actions"},bU=["href"],wU=["href"],kU={class:"task-summary","aria-label":"Repository summary"},EU={class:"task-summary-foot"};function td(e,t){return l(),d("div",z6,[t[23]||(t[23]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"My work"),v(" / Repository")],-1)),t[24]||(t[24]=n("h1",null,"Prepare your anonymous review link",-1)),n("p",j6,u(e.repo?.status==="ready"?"Your repository is ready to share.":"Your settings are saved. Track preparation before sharing the link."),1),t[25]||(t[25]=n("ol",{class:"task-trail","aria-label":"Repository progress"},[n("li",null,"1. Repository"),n("li",null,"2. Review and hosting"),n("li",{"aria-current":"step"},"3. Review link")],-1)),n("div",G6,[n("section",W6,[e.repo?.status==="ready"?(l(),d("div",K6,[...t[3]||(t[3]=[n("strong",null,"Your review link is ready",-1)])])):p("v-if",!0),n("h2",null,u(e.repoId),1),e.repo?.status==="ready"?(l(),d("p",Y6,"Share the link with reviewers. They do not need to sign in.")):p("v-if",!0),e.error?(l(),d("p",J6,[t[4]||(t[4]=v("Unable to load repository status. ",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[0]||(t[0]=o=>e.getStatus())},"Try again")])):p("v-if",!0),e.repo?.status!=="ready"?(l(),d("p",Q6,[...t[5]||(t[5]=[v(" The repository will take a few minutes to get ready, depending on its size. Visit the ",-1),n("a",{href:"/faq"},"FAQ",-1),v(" for more information. ",-1)])])):p("v-if",!0),e.rateLimitResetAt?(l(),d("div",X6,[t[8]||(t[8]=fe('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",Z6,[t[6]||(t[6]=v("Anonymization will resume automatically in ",-1)),n("strong",null,u(e.rateLimitCountdown),1),t[7]||(t[7]=v(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):p("v-if",!0),e.repo?.status!=="ready"&&e.repo?.status!="error"&&!e.rateLimitResetAt?(l(),d("div",{key:5,class:P(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[n("div",{class:"paper-progress-bar",style:qe("width: "+e.progress+"%;")},null,4),n("div",eU,[n("span",{textContent:u(e.fmt?.title(e.repo?.status))},null,8,tU),e.repo?.statusMessage?(l(),d("span",nU,[t[9]||(t[9]=v("\xA0\xB7\xA0",-1)),n("span",{textContent:u(e.repo?.statusMessage)},null,8,oU)])):p("v-if",!0),n("span",sU,u(e.progress||0)+"%",1)])],10,x6)):p("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(l(),d("div",iU,[t[13]||(t[13]=fe('
Anonymization failed
Something went wrong while preparing this repository.
',1)),e.repo?.statusMessage?(l(),d("p",rU,u(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):p("v-if",!0),e.repo?.statusMessage?p("v-if",!0):(l(),d("p",aU,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),e.repo?.statusMessage==="quota_exceeded"?(l(),d("p",lU,[n("a",{href:e.safeUrl("/anonymize/"+e.repoId)},"Review this repository\u2019s hosting",8,dU),t[10]||(t[10]=v(", then retry preparation.",-1))])):p("v-if",!0),t[14]||(t[14]=n("ul",{class:"paper-error-hints"},[n("li",null,"Make sure the source URL points to a repository or pull request you can access."),n("li",null,"Check that the chosen branch and commit still exist on GitHub."),n("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),n("div",uU,[n("a",{class:"btn btn-ink",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[11]||(t[11]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit anonymization",-1)])],8,cU),t[12]||(t[12]=fe(' Read the FAQ Report a bug in Anonymous GitHub',2))])])):p("v-if",!0),e.repo?.status=="ready"?(l(),d("div",pU,[t[17]||(t[17]=n("p",{class:"paper-section-copy"},"Reviewers can browse the repository at this address without seeing who you are.",-1)),n("div",fU,[n("input",{id:"share-url",class:"form-control share-link-input",readonly:"","aria-label":"Anonymous link",value:e.shareUrl,onFocus:t[1]||(t[1]=o=>o.target.select())},null,40,hU),n("button",{type:"button",class:"btn btn-ink",onClick:t[2]||(t[2]=o=>e.copyShareUrl())},[(l(),d("svg",mU,[n("use",{href:e.copied?"#ui-icon-check":"#project-icon-copy"},null,8,vU)])),n("span",{"aria-live":"polite",textContent:u(e.copied?"Copied":"Copy link")},null,8,gU)])]),n("div",yU,[n("a",{class:"btn",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" Open repository ",-1)])],8,bU),e.repo?.options?.page?(l(),d("a",{key:0,class:"btn",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),v(" Open GitHub page ",-1)])],8,wU)):p("v-if",!0)])])):p("v-if",!0)]),n("aside",kU,[n("h3",null,u(e.repoId),1),n("dl",null,[t[18]||(t[18]=n("dt",null,"Source",-1)),n("dd",null,u(e.repo?.source?.fullName?"https://github.com/"+e.repo.source.fullName:"Loading\u2026"),1),t[19]||(t[19]=n("dt",null,"Lifetime",-1)),n("dd",null,u(e.repo?.options?.expirationMode==="never"?"Never expire while subscribed":e.repo?.options?.expirationDate?"Until "+e.fmt.date(e.repo.options.expirationDate):"Loading\u2026"),1),t[20]||(t[20]=n("dt",null,"Review access",-1)),t[21]||(t[21]=n("dd",null,"Anonymous and free",-1))]),n("div",EU,[n("strong",null,u(e.repo?.status==="ready"?"Ready to share":"Repository preparation"),1),t[22]||(t[22]=n("p",null,"Coauthors do not each need a subscription.",-1))])])])])}var us={"partials/reviewConsent.htm":Rl,"partials/connections.htm":Dl,"partials/signin.htm":Tl,"partials/404.htm":Al,"partials/admin/conferences.htm":Ol,"partials/admin/errors.htm":Pl,"partials/admin/overview.htm":Il,"partials/admin/queues.htm":Vl,"partials/admin/repositories.htm":ql,"partials/admin/user.htm":Ml,"partials/admin/users.htm":Ul,"partials/anonymize.htm":$l,"partials/anonymizePullRequest.htm":Ll,"partials/claim.htm":Fl,"partials/conference.htm":Bl,"partials/conferences.htm":Hl,"partials/dashboard.htm":zl,"partials/explorer.htm":jl,"partials/faq.htm":Gl,"partials/gist.htm":Wl,"partials/header.htm":Kl,"partials/home.htm":Yl,"partials/loading.htm":Jl,"partials/newConference.htm":Ql,"partials/pageView.htm":Xl,"partials/pr-dashboard.htm":Zl,"partials/profile.htm":xl,"partials/pullRequest.htm":ed,"partials/status.htm":td};var CU={class:"ui-icon-definitions","aria-hidden":"true",focusable:"false"};function nd(e,t){return l(),d("svg",CU,[...t[0]||(t[0]=[fe('',1)])])}function od(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"},t.watchGroup(["options.diff","options.comments"],()=>{t.options[t.prTabState.active]||(t.prTabState.active=t.options.diff?"diff":t.options.comments?"comments":null)})),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let i={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(i){let s=nt(()=>t.fmt.orderBy(t.fmt.filter(i[1](),t[i[2]]),t.orderBy));Object.defineProperty(t,i[0],{configurable:!0,get:()=>s.value})}}function sd(e=(...t)=>fetch(...t)){async function t(i,s,r,a={}){let c=new URL(s,window.location.href);for(let[y,b]of Object.entries(a.params||{}))if(b!=null)for(let h of Array.isArray(b)?b:[b])c.searchParams.append(y,typeof h=="object"?JSON.stringify(h):h);let f=new AbortController,g;a.timeout?.then?a.timeout.then(()=>f.abort()):a.timeout&&(g=setTimeout(()=>f.abort(),a.timeout));try{let y={Accept:"application/json, text/plain, */*",...a.headers},b=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);b&&c.origin===window.location.origin&&(y["X-XSRF-TOKEN"]=decodeURIComponent(b[1]));let h;r!==void 0&&(r instanceof FormData?h=r:(y["Content-Type"]||(y["Content-Type"]="application/json;charset=utf-8"),h=JSON.stringify(r)));let E=await e(c.href,{method:i,headers:y,body:h,credentials:"same-origin",signal:f.signal}),_=await E.text(),m=_;if(a.transformResponse)m=a.transformResponse(_);else if(_&&(/json/i.test(E.headers.get("content-type")||"")||/^[\[{]/.test(_.trim())))try{m=JSON.parse(_)}catch{}let C={data:m,status:E.status,headers:N=>E.headers.get(N)};if(!E.ok)throw C;return C}catch(y){throw y.name==="AbortError"?{status:-1,data:null}:y}finally{clearTimeout(g)}}let o={};for(let i of["get","delete","head"])o[i]=(s,r)=>t(i.toUpperCase(),s,void 0,r);for(let i of["post","put","patch"])o[i]=(s,r,a)=>t(i.toUpperCase(),s,r,a);return o}var id={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((i,s)=>{e=i,t=s}),resolve:e,reject:t}}};var rd=function(e){function t(o){return o=o||{used:0,total:0},o.unlimited=!o.total,o.percent=o.unlimited?0:Math.min(100,o.used*100/o.total),o.level=o.unlimited?"unlimited":o.percent>=95?"danger":o.percent>=80?"warn":"ok",o}return{decorate:t,load:function(){return e.get("/api/user/quota").then(o=>{let i=o.data||{};return i.storage=t(i.storage),i.file=t(i.file),i.repository=t(i.repository),i})}}};var gi={};_d(gi,{bigNum:()=>_U,date:()=>MU,diff:()=>AU,filter:()=>VU,humanFileSize:()=>SU,humanTime:()=>NU,limitTo:()=>IU,number:()=>OU,orderBy:()=>qU,plural:()=>UU,statusLabel:()=>DU,statusMsg:()=>TU,title:()=>RU,uppercase:()=>PU});var SU=e=>window.humanFileSize(e),_U=(function(){return function(t){let o=Number(t)||0,i=Math.abs(o);return i<1e3?String(o):i<1e4?(o/1e3).toFixed(1).replace(/\.0$/,"")+"k":i<1e6?Math.round(o/1e3)+"k":i<1e7?(o/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(o/1e6)+"M"}})(),NU=(function(){return function(t){if(!t)return"never";t instanceof Date&&(t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(t=Math.round((Date.now()-new Date(t))/1e3));var o=t<0?"from now":"ago";if(Math.abs(t)>7200*24){let f=new Date;return f.setSeconds(f.getSeconds()-t),"on "+f.toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}t=Math.abs(t);for(var i=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],s=["year","month","week","day","hour","minute","second"],r=0;r1&&(c+="s"),a>=1)return a+" "+c+" "+o}return"0 seconds "+o}})(),RU=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),o=t.map(function(i){return i.charAt(0).toUpperCase()+i.substring(1,i.length)});return o.join(" ")}})(),DU=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var o=String(t).replace(/[_-]+/g," ").toLowerCase();return o.charAt(0).toUpperCase()+o.slice(1)}})(),TU=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var o=t.match(/^rate_limited:(\d+)$/);if(o){var i=Math.max(0,Math.ceil((parseInt(o[1],10)-Date.now())/1e3));if(i<=0)return"Rate limited \u2014 resuming soon";var s=Math.floor(i/60),r=i%60;return"Rate limited \u2014 retrying in "+(s>0?s+"m "+r+"s":r+"s")}if(e[t])return e[t];if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var a=t.replace(/_/g," ");return a.charAt(0).toUpperCase()+a.slice(1)}return t}})(),AU=(function(e){let t=i=>i.replace(/&/g,"&").replace(//g,">");function o(i,s){if(!s)return;let r=s.newPath&&s.newPath!=="/dev/null"?s.newPath:s.oldPath||"",a=s.oldPath==="/dev/null"?"added":s.newPath==="/dev/null"?"deleted":s.oldPath&&s.newPath&&s.oldPath!==s.newPath?"renamed":"modified";if(i.push('
'),i.push('
'+t(r)+''+a+"
"),s.lines.length){i.push('');for(let c of s.lines)i.push('");i.push("
'+(c.oldNo||"")+''+(c.newNo||"")+''+(c.kind==="add"?"+":c.kind==="remove"?"-":c.kind==="hunk"?"@":"")+''+t(c.text)+"
")}i.push("
")}return function(i){if(!i)return i;let s=[],r=null,a=0,c=0,f=()=>(r||(r={oldPath:"",newPath:"",lines:[]}),r),g=()=>{r&&(r.lines.length||r.oldPath||r.newPath)&&(o(s,r),r=null)},y=i.split(` -`);for(let b=0;be});function OU(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function PU(e){return String(e??"").toUpperCase()}function IU(e,t,o=0){return(e||[]).slice(o,o+t)}function VU(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function qU(e,t){if(!t)return e||[];let o=Array.isArray(t)?t:[t];return[...e||[]].sort((i,s)=>{for(let r of o){let a=r[0]==="-"?-1:1;r=r.replace(/^[+-]/,"");let c=r.split(".").reduce((g,y)=>g?.[y],i),f=r.split(".").reduce((g,y)=>g?.[y],s);if(typeof c=="string"&&(c=c.toLowerCase()),typeof f=="string"&&(f=f.toLowerCase()),c!==f)return(c==null?-1:f==null?1:ci[s])}function UU(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}var ad={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=et(null);return Lt(()=>{let i=[t.value][0];i.classList.add("html-doc");function s(){i.innerHTML="";let r=e.content;if(typeof r!="string")return;let a=document.createElement("iframe");a.className="html-doc-frame",a.setAttribute("title","Rendered HTML document");let c=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&c.push("allow-scripts","allow-forms","allow-modals"),a.setAttribute("sandbox",c.join(" ")),a.setAttribute("referrerpolicy","no-referrer"),i.appendChild(a);let f="";e.baseUrl&&(f=''),a.srcdoc=f+r}Be(()=>e.content,s,{immediate:!0}),Be(()=>e.baseUrl,s,{immediate:!0}),Be(()=>e.allowScripts,s,{immediate:!0})}),()=>we("html-doc",{ref:t})}};var ld={name:"pdfviewer",props:["src"],setup(e){let t=et(null);return Lt(()=>{let o=[t.value],i=400,s=[.5,.75,1,1.25,1.5,2,3],r=1e3,a=o[0];a.classList.add("pdf-viewer");let c=null,f=[],g=!1,y=null,b=1,h=1,E=0,_=0,m=612/792,C=0,N=null,A=new Map,M=0;function U(k){let S=A.get(k);S&&(S.cancelled=!0,S.task?.cancel?.(),A.delete(k));let V=k.querySelector("canvas");V&&(V.width=0,V.height=0),k.innerHTML="",delete k.dataset.state}let q=document.createElement("div");q.className="pdf-toolbar";let B=document.createElement("div");B.className="pdf-pages",B.tabIndex=0,B.setAttribute("aria-label","PDF pages"),a.appendChild(q),a.appendChild(B);function oe(k,S,V){let G=document.createElement("button");return G.type="button",G.className="pdf-toolbar-btn",G.title=S,G.setAttribute("aria-label",S),G.innerHTML='',G.addEventListener("click",V),G}let ee=oe("fa-chevron-up","Previous page",function(){Te(h-1)}),R=oe("fa-chevron-down","Next page",function(){Te(h+1)}),j=document.createElement("input");j.type="text",j.className="pdf-toolbar-page",j.setAttribute("aria-label","Page number"),j.title="Page number \u2014 type a page and press Enter",j.addEventListener("keydown",function(k){k.key==="Enter"&&(Te(parseInt(j.value,10)),j.blur())}),j.addEventListener("blur",function(){j.value=String(h)});let ie=document.createElement("span");ie.className="pdf-toolbar-count";let ve=oe("fa-search-minus","Zoom out",function(){Z(s[Math.max(0,X()-1)])}),z=oe("fa-search-plus","Zoom in",function(){Z(s[Math.min(s.length-1,X()+1)])}),J=document.createElement("button");J.type="button",J.className="pdf-toolbar-btn pdf-toolbar-zoom",J.title="Reset zoom to fit the width",J.setAttribute("aria-label","Reset zoom to fit the width"),J.addEventListener("click",function(){Z(1)}),q.appendChild(ee),q.appendChild(R);let Q=document.createElement("span");Q.className="pdf-toolbar-group",Q.appendChild(j),Q.appendChild(ie),q.appendChild(Q);let te=document.createElement("span");te.className="pdf-toolbar-group pdf-toolbar-right",te.appendChild(ve),te.appendChild(J),te.appendChild(z),q.appendChild(te);function X(){let k=0;for(let S=0;S=k,J.textContent=Math.round(b*100)+"%",ve.disabled=X()===0,z.disabled=X()===s.length-1}function Ee(k){let S=f[k-1];S&&(B.scrollTop+=S.getBoundingClientRect().top-B.getBoundingClientRect().top)}function Te(k){if(!c||isNaN(k))return;let S=Math.min(Math.max(1,k),c.numPages);f[S-1]&&(Ee(S),h=S,E=S,_=Date.now()+800,re(),Ie())}function Ae(){if(!f.length||Date.now()<_)return;let k=B.getBoundingClientRect(),S=k.top+k.height/2,V=1;for(let G=0;G{}),N=null),y&&(clearTimeout(y),y=null),c&&(c.destroy(),c=null),f=[],h=1,B.innerHTML="",re()}function _e(){B.innerHTML="";let k=document.createElement("div");k.className="pdf-viewer-error",k.textContent="This PDF could not be displayed.",B.appendChild(k)}function ze(){let k=Math.max(120,B.clientWidth-24);return Math.round(Math.min(k,r)*b)}function Ue(k,S,V){let G=window.devicePixelRatio||1,w=k.getViewport({scale:1}),T=parseFloat(S.style.width);if(!T)return;let O=k.getViewport({scale:T/w.width*G}),I=document.createElement("canvas");return I.width=Math.floor(O.width),I.height=Math.floor(O.height),I.style.width=T+"px",I.style.height=Math.floor(O.height/G)+"px",S.innerHTML="",S.appendChild(I),S.style.height=I.style.height,V.task=k.render({canvasContext:I.getContext("2d"),viewport:O}),V.task.promise}function Ie(){if(!c)return;let k=C,S=B.getBoundingClientRect(),V=S.top-i,G=S.top+B.clientHeight+i,w=f.map((O,I)=>({slot:O,i:I,rect:O.getBoundingClientRect()})).filter(O=>O.rect.top<=G&&O.rect.bottom>=V).sort((O,I)=>Math.abs(O.rect.top-S.top)-Math.abs(I.rect.top-S.top)).slice(0,6),T=new Set(w.map(O=>O.slot));for(let O of A.keys())T.has(O)||U(O);for(let{slot:O,i:I}of w){if(O.dataset.state||M>=2)continue;let F={cancelled:!1,task:null};A.set(O,F),M++,O.dataset.state="rendering";let L;c.getPage(I+1).then(ae=>{if(L=ae,!(F.cancelled||k!==C))return Ue(L,O,F)}).then(()=>{F.cancelled||k!==C||(O.dataset.state="done",E&&Date.now()<_&&Ee(E))}).catch(()=>{!F.cancelled&&k===C&&(O.dataset.state="failed")}).finally(()=>{M--,L?.cleanup?.(),c&&Ie()})}}function H(){g||(g=!0,window.requestAnimationFrame(function(){g=!1,Ae(),Ie()}))}function se(){let k=!1;function S(){k||(k=!0,Ie())}window.requestAnimationFrame(S),window.setTimeout(S,50)}function Y(){C++,f.forEach(U);let k=ze();f.forEach(function(S){delete S.dataset.state,S.innerHTML="",S.style.width=k+"px",S.style.height=Math.round(k/m)+"px"}),Ie()}function Z(k){if(!c||!f.length||k===b)return;let S=h;b=k,re(),Y(),Te(S)}function ue(){c&&(y&&clearTimeout(y),y=setTimeout(function(){y=null,c&&f.length&&Y()},250))}function be(k){if(Se(),!k)return;let S=C;N=pdfjsLib.getDocument({url:k,isEvalSupported:!1,standardFontDataUrl:"/script/external/pdf-standard-fonts/",cMapUrl:"/script/external/pdf-cmaps/",cMapPacked:!0}),N.promise.then(function(V){if(S!==C){V.destroy();return}return c=V,c.getPage(1).then(function(G){if(S!==C)return;let w=G.getViewport({scale:1});w.width&&w.height&&(m=w.width/w.height);let T=ze();for(let O=1;O<=c.numPages;O++){let I=document.createElement("div");I.className="pdf-viewer-page",I.style.width=T+"px",I.style.height=Math.round(T/m)+"px",B.appendChild(I),f.push(I)}re(),se()})}).catch(function(){S===C&&_e()})}B.addEventListener("scroll",H,{passive:!0}),$(window).on("resize",ue),re(),Be(()=>e.src,be,{immediate:!0}),cn(function(){B.removeEventListener("scroll",H),$(window).off("resize",ue),Se()})}),()=>we("pdfviewer",{ref:t})}};var $U={key:0,class:"quota-row quota-usage"},LU={class:"quota-header"},FU={class:"quota-label"},BU={class:"project-type-svg","aria-hidden":"true"},HU=["href"],zU={key:0,class:"quota-percent"},jU={key:1,class:"quota-unlimited-tag"},GU={class:"quota-value"},WU={key:0},KU=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],YU={key:1,class:"quota-remaining"},JU={key:2,class:"quota-remaining quota-limit"};function dd(e,t){return e.quota?(l(),d("div",$U,[(l(),d(K,null,ne([{key:"repository",label:"Repositories",kind:"count",icon:"project-type-repo"},{key:"storage",label:"Storage",kind:"bytes",icon:"project-icon-storage"},{key:"file",label:"Files",kind:"count",icon:"project-icon-file"}],o=>n("div",{class:P(["quota-item","quota-"+e.quota[o.key].level]),key:o.key},[n("div",LU,[n("span",FU,[(l(),d("svg",BU,[n("use",{href:"#"+o.icon},null,8,HU)])),v(u(o.label),1)]),e.quota[o.key].unlimited?p("v-if",!0):(l(),d("span",zU,u(e.fmt.number(e.quota[o.key].percent,0))+"% used",1)),e.quota[o.key].unlimited?(l(),d("span",jU,"Unlimited")):p("v-if",!0)]),n("div",GU,[n("strong",null,u(e.formatAmount(e.quota[o.key].used,o.kind)),1),e.quota[o.key].unlimited?p("v-if",!0):(l(),d("span",WU," / "+u(e.formatAmount(e.quota[o.key].total,o.kind)),1))]),e.quota[o.key].unlimited?p("v-if",!0):(l(),d("div",{key:0,class:P(["quota-track","quota-"+e.quota[o.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":o.label+" quota","aria-valuenow":Math.min(e.quota[o.key].used,e.quota[o.key].total),"aria-valuemax":e.quota[o.key].total,"aria-valuetext":e.fmt.number(e.quota[o.key].percent,0)+"% used"},[e.quota[o?.key].unlimited?p("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:qe({width:e.quota[o.key].percent+"%"})},null,4))],10,KU)),!e.quota[o.key].unlimited&&e.quota[o.key].used=e.quota[o.key].total?(l(),d("p",JU,u(e.quota[o.key].used>e.quota[o.key].total?"Limit exceeded":"Limit reached"),1)):p("v-if",!0)],2)),64))])):p("v-if",!0)}var QU={props:["quota","fmt"],setup(e){return{formatAmount:(t,o)=>o==="bytes"?e.fmt.humanFileSize(e.quota?.storage?.unit==="bytes"?t*8:t).replace(/([a-zA-Z]+)$/," $1"):e.fmt.number(t)}},render:dd},XU=new Set(ce),cd={props:["content","terms","options"],setup(e){let t=et(null),o=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../")};return Lt(()=>{o(),Be(()=>[e.content,e.terms,e.options],o,{deep:!0})}),()=>we("markdown",{ref:t})}},ZU={props:["file","terms","options"],setup(e){let t=et(null),o=()=>Ke(()=>t.value?.querySelectorAll("pre code").forEach(i=>window.Prism?.highlightElement(i)));return Lt(o),Be(()=>[e.file?.content,e.terms,e.options],o,{deep:!0}),()=>{let i=e.file||{},s=(i.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(s)||i.language==="Markdown")return we("gist-file",{ref:t},we(cd,{content:i.content,terms:e.terms,options:e.options}));let r={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},a=(i.language||s||"none").toLowerCase();return we("gist-file",{ref:t},we("pre",{class:"line-numbers"},we("code",{class:"language-"+(r[a]||a),key:i.content},i.content||"")))}}},xU={props:["file","content"],setup(e){let t=et(null),o=0,i,s=async()=>{let r=++o;i?.abort(),i=new AbortController;try{let a=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:i.signal}).then(c=>{if(!c.ok)throw Error("Notebook request failed");return c.json()});if(await nn("notebook"),r!==o)return;t.value.innerHTML=DOMPurify.sanitize(nb.parse(a).render()),t.value.querySelectorAll("pre code").forEach(c=>window.Prism?.highlightElement(c))}catch(a){r===o&&a.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return Lt(()=>{s(),Be(()=>[e.file,e.content],s)}),cn(()=>{o++,i?.abort()}),()=>we("notebook",{ref:t})}},e$={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,i])=>i.code),o=t.reduce((i,[,s])=>i+s.code,0);return we("loc",t.map(([i,s])=>we("div",{class:"lang",title:`${i}: ${s.code.toLocaleString()} lines`,style:{width:s.code*100/o+"%",background:langColors[i]}})))}}},pd={Markdown:cd,GistFile:ZU,Notebook:xU,Loc:e$,HtmlDoc:ad,QuotaUsage:QU,Pdfviewer:_r(async()=>(await nn("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",ld))},fd={async mounted(e,{value:t}){e._editorValue=t;try{if(await Si(),e._editorDisposed)return;let o=e._editorValue,i=ace.edit(e);e._editor=i,i.setValue(String(o.content??""),-1),ud(e,o.options),e._editorCleanup=o.options?.onLoad?.(i)}catch(o){e._editorDisposed||(e.textContent=o.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),ud(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editorCleanup?.(),e._editor?.destroy()}};function ud(e,t={}){let o=XU.has(t.mode)?t.mode:"text";e._editor.session.setMode("ace/mode/"+o),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var hd={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],o=new Set,i=new IntersectionObserver(s=>{s.forEach(a=>a.isIntersecting?o.add(a.target.id):o.delete(a.target.id));let r=t.find(a=>o.has(a.hash.slice(1)));t.forEach(a=>a.classList.toggle("active",a===r))},{rootMargin:"-20% 0px -60% 0px",threshold:0});Ke(()=>t.forEach(s=>{let r=document.getElementById(s.hash.slice(1));r&&i.observe(r)})),e._observer=i},beforeUnmount(e){e._observer?.disconnect()}};function t$(e){let t={children:[]},o=new Map([["",t]]);function i(s){if(o.has(s))return o.get(s);let r=s.lastIndexOf("/"),a=i(r<0?"":s.slice(0,r)),c={name:s.slice(r+1),children:[]};return o.set(s,c),a.children.push(c),c}for(let s of e||[]){let r=s.path?`${s.path}/${s.name}`:s.name;s.size==null?i(r):i(s.path||"").children.push({...s})}return t.children}var md={name:"FileTree",props:["file","parent","searchQuery","searchResults","page"],setup(e){let t=el(),o=et(null),i=Fe(Object.create(null)),s=null,r=nt(()=>t$(e.file)),a=()=>"/"+(Array.isArray(t.params.path)?t.params.path.join("/"):t.params.path||"");Be(()=>[t.params.repoId,t.params.path],()=>{let h="";a().split("/").filter(Boolean).forEach(E=>{h+="/"+E,i[h]=!0})},{immediate:!0});let c=nt(()=>{if(!e.searchQuery||!e.searchResults)return null;let h=new Set,E=new Set;return e.searchResults.forEach(_=>{h.add(_.path?`${_.path}/${_.name}`:_.name);let m="";(_.path||"").split("/").filter(Boolean).forEach(C=>{m=m?m+"/"+C:C,E.add(m)})}),{files:h,folders:E}}),f=()=>[...o.value.querySelectorAll("li > a")],g=h=>{o.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),h&&(s=h.dataset.path,h.classList.add("tree-focused"),h.scrollIntoView?.({block:"nearest"}),o.value.focus())};function y(h){let E=f(),_=o.value.querySelector(".tree-focused")||E[0],m=E.indexOf(_);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(h.key)||(h.preventDefault(),h.key==="ArrowDown"&&g(E[(m+1)%E.length]),h.key==="ArrowUp"&&g(E[(m-1+E.length)%E.length]),!_))return;let C=_.closest("li");h.key==="ArrowRight"&&C.classList.contains("folder")&&(C.classList.contains("open")?g(C.querySelector(":scope > ul > li > a")):_.click()),h.key==="ArrowLeft"&&(C.classList.contains("folder")&&C.classList.contains("open")?_.click():g(C.parentElement.closest("li.folder")?.querySelector(":scope > a"))),h.key==="Enter"&&_.click()}function b(h,E=""){let _=[...h].sort((m,C)=>+!!C.children-+!!m.children||m.name.localeCompare(C.name));return we("ul",_.flatMap(m=>{let C=m,N=C.name,A=(E+"/"+N).slice(1);if(c.value&&!c.value.files.has(A)&&!c.value.folders.has(A))return[];for(;C.children?.length===1;)C=C.children[0],N+="/"+C.name;let M=E+"/"+N,U=!!C.children,q=c.value?i[M]!==!1:!!i[M],B=U&&e.page?.options?.truncatedFolders?.includes(M.slice(1)),oe=e.page?.fileCounts?.[M.slice(1)]||0,ee=we("span",{class:U?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},U?we("svg",{viewBox:"0 0 14 12",focusable:"false"},we("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),R=we("span",{class:"tree-name"},N),j=ve=>{g(ve.currentTarget),U&&(ve.preventDefault(),i[M]=!q,i[M]&&!C.children.length&&e.page.getFiles(M.slice(1)),Ke(()=>g(f().find(z=>z.dataset.path===s))))},ie=we("a",{"data-path":M,href:U?void 0:`/r/${encodeURIComponent(t.params.repoId)}${encodePathForUrl(M)}`,class:{"tree-focused":s===M},onClick:j},[U?we("span",{class:"tree-toggle"}):E?we("span",{class:"tree-spacer"}):null,ee,R,B?we("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},we("i",{class:"fas fa-exclamation-triangle"})):null,U&&oe?we("span",{class:"tree-count"},oe):null]);return we("li",{key:M,class:{file:!0,folder:U,open:q,active:a()===M,truncated:B},title:U?"":`Size: ${humanFileSize(C.size||0)}`},[ie,U&&q?b(C.children,M):null])}))}return()=>we("tree",{ref:o,tabindex:0,onKeydown:y},e.file?.length?c.value?.files.size===0?we("div",{class:"tree-search-empty"},"No files found"):b(r.value):"Empty repository")}};function gd(){return Fe({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function yd(e,t){if(!e[t]){let o=gd();Object.defineProperty(o,"invalid",{get(){return Object.values(o.errors).some(Boolean)||Object.keys(o).some(i=>i!=="invalid"&&o[i]&&typeof o[i]=="object"&&o[i].invalid)}}),e[t]=o}return e[t]}var bd={beforeMount(e,{value:t}){e._formState=yd(t,e.name),e.addEventListener("submit",o=>o.preventDefault())}};function n$(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function vd(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?n$(t):t??""),yi(e)}function yi(e){let t=e._field.validation;if(!t)return;let o=e.validity;for(let[i,s]of Object.entries({required:o.valueMissing,pattern:o.patternMismatch,min:o.rangeUnderflow,max:o.rangeOverflow,date:o.badInput,email:o.typeMismatch&&e.type==="email",url:o.typeMismatch&&e.type==="url"}))t.setValidity(i,e.disabled||!s)}var wd={beforeMount(e,{value:t}){var a;let o=t.form&&yd(t.state,t.form),i=o&&e.name?o[a=e.name]||(o[a]=gd()):null;e._field={binding:t,validation:i,timer:null};let s=()=>{clearTimeout(e._field.timer),e._field.timer=null;let c=e._field.binding,f=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(f=e.value===""?null:Number(e.value)),e.type==="date"&&(f=e.value?new Date(e.value+"T00:00:00"):null),i){i.setDirty();for(let g of Object.keys(i.errors))i.setValidity(g,!0)}c.set(f),yi(e),c.change?.()}};e._field.commit=s;let r=c=>{let f=e._field.binding.options?.debounce||0,g=typeof f=="number"?f:f[c.type]??f.default??0;clearTimeout(e._field.timer),g?e._field.timer=setTimeout(s,g):s()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",r),e.addEventListener("blur",()=>{i&&(i.touched=!0),e._field.timer&&s()})},mounted:vd,updated(e,{value:t}){e._field.binding=t,vd(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:o}=e._field,i=t.form&&t.state[t.form];i&&i[e.name]===o&&delete i[e.name]}};function kd(e,t){let o=e.target.closest("form");if(o?._formState&&(o._formState.submitted=!0),o?.querySelectorAll("input, select, textarea").forEach(i=>{i._field?.timer&&i._field.commit(),i._field&&yi(i)}),o&&!o.checkValidity()){let i=o.querySelector("input:invalid, select:invalid, textarea:invalid");i?.scrollIntoView?.({block:"center"}),i?.focus(),o.reportValidity();return}return t()}var Ed=Symbol("session"),o$=/^\/(w|api|github)(\/|$)/;function Cd(e,t={}){let o=e?.split(".").reduce((i,s)=>i?.[s],go);return o==null&&e?.startsWith("ERRORS.")&&(o=go.ERRORS.unknown_error),String(o??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(i,s)=>t[s]??"")}var s$={...gi,translate:Cd};function i$(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function r$(e="#app",t={}){let o=!!document.querySelector('meta[name="review-consent-page"][content="1"]'),i=o&&window.location.pathname==="/review-link"?Ei(window):null,s=()=>{let h=i;return i=null,h};!t.history&&window.location.pathname==="/"&&/^#!\/r\/[^/?#]+/.test(window.location.hash)&&window.history.replaceState(window.history.state,"",window.location.hash.slice(2));let r=new Map,a=sd(t.fetch),c,f;function g(){let h=ut(),E={url(m){return m===void 0?f.currentRoute.value.fullPath:(f.push(m),E)},replace(m){return f.replace(m)},path(){return f.currentRoute.value.path},search(){return f.currentRoute.value.query}},_=new Proxy({},{get(m,C){let N=f.currentRoute.value.params[C];return Array.isArray(N)?N.join("/"):N}});return{takeReviewHandoff:s,http:a,...h,location:E,params:_,window,promises:id,html:{trustAsHtml:m=>m},translate:(m,C)=>Promise.resolve(Cd(m,C)),quotaService:rd(a)}}function y(h){return{name:h.template,setup(){let E=pi(dt(Ed),r);h.setup(E,g()),od(h.template,E);let _=[];return()=>us[h.template](E,_)}}}f=xa({history:t.history||Qa(),routes:Nl.map(h=>h.redirect?h:{path:h.path,component:y(h),meta:{title:h.title,preserveExplorer:h.preserveExplorer}})});let b=ga({setup(){c=pi(null,r),c.fmt=s$,c.window=window,c.Math=Math,c.sanitize=m=>DOMPurify.sanitize(m??""),c.highlightRedactions=m=>(c.site_options,sl(m)),c.submitForm=kd,c.safeUrl=i$;let h=g();rl(c,h.http,h.location,h.timeout),un(Ed,c),Be(()=>c.title,m=>{document.title=m||"Anonymous GitHub"});let E=[],_=m=>{let C=m.target.closest?.("a[href]");if(m.defaultPrevented||m.button!==0||m.metaKey||m.ctrlKey||m.shiftKey||m.altKey||!C||C.hasAttribute("download")||C.target&&C.target!=="_self"||C.dataset.toggle||C.getAttribute("href").startsWith("#"))return;let A=new URL(C.href,window.location.href);o||/^\/review-link\/?$/i.test(A.pathname)||A.origin!==window.location.origin||o$.test(A.pathname)||(m.preventDefault(),f.push(A.pathname+A.search+A.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",_),cn(()=>document.removeEventListener("click",_)),()=>[nd(c,[]),o?null:we("header",{class:"app-header"},us["partials/header.htm"](c,E)),we("main",{class:"app-view align-items-stretch w-100"},we(ui,null,{default:({Component:m,route:C})=>m?we(m,{key:C.meta.preserveExplorer?C.matched[0]?.path:C.path}):null})),we("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},c.toasts.map((m,C)=>we("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:C},[we("div",{class:"toast-header"},[we("strong",{class:"mr-auto"},m.title),we("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>c.removeToast(m)},"\xD7")]),we("div",{class:"toast-body"},m.body)])))]}});for(let[h,E]of Object.entries(pd))b.component(h,E);return b.component("Tree",md),b.component("PartialView",{props:["name","state"],setup(h){let E=[];return()=>us[h.name](h.state,E)}}),b.directive("field",wd),b.directive("form",bd),b.directive("code-editor",fd),b.directive("paper-scrollspy",hd),b.use(f),f.beforeEach(async h=>{if(h.path==="/review-link"&&!o||o&&h.path!=="/review-link")return window.location.assign(h.fullPath),!1;c?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await nn("markdown"),/^\/(r|repository)\//.test(h.path)&&await nn("org")}),f.afterEach(h=>{if(!c)return;c.title=h.meta.title,c.emit("routeChange",{title:h.meta.title}),c.emit("routeUpdate",{title:h.meta.title});let E=document.querySelector(".app-view");!h.meta.preserveExplorer&&E&&(E.scrollTop=0)}),b.mount(e),{app:b,router:f,state:c}}document.querySelector("#app")&&(window.anonymousApp=r$());})(); +jane.smith@example.org`},IM={class:"settings-syntax"},VM={class:"invalid-feedback"},qM={class:"settings-row"},MM={class:"settings-checks"},UM={class:"settings-check"},$M={class:"form-check-input",type:"checkbox",id:"link",name:"link"},LM={class:"settings-check"},FM={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},BM={class:"settings-check"},HM={class:"form-check-input",type:"checkbox",id:"image",name:"image"},zM={class:"settings-check"},jM={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},GM={class:"settings-check"},WM={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},KM={class:"settings-check"},YM={class:"form-check-input",type:"checkbox",id:"page",name:"page"},JM={class:"settings-row"},QM={class:"settings-check"},XM={class:"form-check-input",type:"checkbox",id:"update",name:"update"},ZM={class:"settings-row"},xM={class:"form-control",id:"expiration",name:"expiration"},e8={class:"settings-help"},t8={class:"settings-save"},n8={class:"settings-save-status draft-status",role:"status"},o8={key:0},s8={key:1},i8={key:2},r8=["disabled"],a8={key:1,class:"settings-save-error",role:"alert"},l8=["aria-busy"],d8={key:0,role:"status"},u8={key:1,class:"settings-notice",role:"alert"},c8=["disabled"],p8={key:2,class:"settings-notice",role:"status"},f8={key:3,class:"settings-notice",role:"status"},h8=["disabled"],m8={class:"settings-row"},v8={class:"settings-inline"},g8={key:0,class:"settings-help"},y8={key:0,class:"settings-help"},b8={id:"settings-quota"},w8={key:1,role:"status"},k8={key:1,class:"settings-notice"},E8={key:2,class:"settings-notice"},C8={key:3,class:"settings-notice"},S8={key:4,class:"settings-help"},_8={key:5,class:"settings-plan billing-plan"},N8={class:"settings-comparison"},R8={class:"settings-cycles"},D8=["checked","onChange"],T8={class:"settings-help"},A8={class:"settings-actions"},O8=["disabled"],P8={key:6,class:"settings-help"},I8={class:"settings-row"},V8={key:0,class:"settings-inline"},q8=["disabled"],M8={key:1,class:"settings-help"},U8=["disabled"],$8={key:4,class:"settings-row"},L8={class:"settings-inline"},F8=["disabled"],B8={key:0,class:"settings-pass"},H8={class:"settings-help"},z8=["disabled"],j8={key:5,class:"settings-row"},G8={class:"settings-help"},W8={id:"settings-account",class:"settings-account-panel"},K8={class:"paper-account-card"},Y8=["src"],J8={class:"paper-account-identity"},Q8={class:"paper-account-name"},X8=["disabled"],Z8={key:0,role:"status"},x8={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},e6=["disabled"],t6={key:3,role:"status"},n6={class:"paper-danger-zone"},o6={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},s6=["textContent"],i6=["disabled"],r6={key:1,class:"settings-delete-confirm"},a6={for:"delete-username"},l6={class:"settings-actions"},d6=["disabled"],u6=["disabled"];function xl(e,t){let o=Ge("quota-usage"),i=ge("field"),s=ge("form");return l(),d("div",NM,[n("header",RM,[t[20]||(t[20]=n("h1",null,"Settings",-1)),n("div",DM,[n("span",null,"@"+u(e.user?.username),1)])]),n("nav",TM,[(l(),d(K,null,ne([{id:"defaults",label:"Anonymization defaults"},{id:"billing",label:"Hosting & billing"},{id:"account",label:"Account"}],r=>n("button",{type:"button","aria-current":e.settingsTab===r.id?"page":null,onClick:a=>e.settingsTab=r.id},u(r.label),9,AM)),64))]),D(n("div",null,[t[41]||(t[41]=n("p",{class:"settings-scope"},"For new anonymizations only. Existing repositories keep their settings.",-1)),D((l(),d("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onSubmit:t[1]||(t[1]=de(r=>e.submitForm(r,()=>{e.saveDefault(r)}),["prevent"]))},[n("section",OM,[t[26]||(t[26]=n("div",null,[n("label",{class:"settings-label",for:"terms"},"Terms to redact"),n("p",{class:"settings-help"},"One term per line.")],-1)),n("div",null,[D(n("textarea",PM,null,512),[[i,{state:e.viewState,set:r=>{e.terms=r},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),n("details",IM,[t[25]||(t[25]=n("summary",null,"Regex & replacement syntax",-1)),n("p",null,[t[21]||(t[21]=v("Matches become ",-1)),n("code",null,u(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[22]||(t[22]=v(". Use ",-1)),t[23]||(t[23]=n("code",null,"term=>replacement",-1)),t[24]||(t[24]=v(" for a custom replacement. Regex is supported.",-1))])]),D(n("div",VM,"Terms are in an invalid format.",512),[[W,e.defaultsForm?.terms?.errors?.format]])])]),n("section",qM,[t[35]||(t[35]=n("h2",null,"Reviewer display",-1)),n("div",null,[n("div",MM,[n("label",UM,[D(n("input",$M,null,512),[[i,{state:e.viewState,set:r=>{e.options.link=r},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[27]||(t[27]=v("Keep links",-1))]),n("label",LM,[D(n("input",FM,null,512),[[i,{state:e.viewState,set:r=>{e.options.notebook=r},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[28]||(t[28]=v("Render notebooks",-1))]),n("label",BM,[D(n("input",HM,null,512),[[i,{state:e.viewState,set:r=>{e.options.image=r},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[29]||(t[29]=v("Show images",-1))]),n("label",zM,[D(n("input",jM,null,512),[[i,{state:e.viewState,set:r=>{e.options.pdf=r},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[30]||(t[30]=v("Show PDFs",-1))]),n("label",GM,[D(n("input",WM,null,512),[[i,{state:e.viewState,set:r=>{e.options.loc=r},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[31]||(t[31]=v("Show line counts",-1))]),n("label",KM,[D(n("input",YM,null,512),[[i,{state:e.viewState,set:r=>{e.options.page=r},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[32]||(t[32]=v("GitHub Pages",-1))])]),t[33]||(t[33]=n("p",{class:"settings-help"},"Images and PDFs are not anonymized.",-1)),t[34]||(t[34]=n("p",{class:"settings-help"},"GitHub Pages must use the anonymized branch.",-1))])]),n("section",JM,[t[38]||(t[38]=n("h2",null,"Source updates",-1)),n("div",null,[n("label",QM,[D(n("input",XM,null,512),[[i,{state:e.viewState,set:r=>{e.options.update=r},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[36]||(t[36]=v("Auto-update from GitHub",-1))]),t[37]||(t[37]=n("p",{class:"settings-help"},"Latest commit, at most once an hour.",-1))])]),n("section",ZM,[t[40]||(t[40]=n("label",{class:"settings-label",for:"expiration"},"On expiration",-1)),n("div",null,[D((l(),d("select",xM,[...t[39]||(t[39]=[n("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),n("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[i,{state:e.viewState,set:r=>{e.options.expirationMode=r},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),n("p",e8,u(e.options.expirationMode==="redirect"?"Redirecting reveals the original repository. Choose the date per anonymization.":"Set the expiration date for each repository."),1)])]),n("footer",t8,[n("div",n8,[e.draftRestored?(l(),d("span",o8,"Your unsaved draft was restored.")):e.unsavedChanges?(l(),d("span",s8,"Unsaved changes"+u(e.draftSaved?" \xB7 Draft saved in this tab":""),1)):(l(),d("span",i8,u(e.message?"Defaults saved":"All changes saved"),1))]),e.draftRestored||e.unsavedChanges?(l(),d("button",{key:0,type:"button",class:"draft-discard",onClick:t[0]||(t[0]=r=>e.discardDraft())},"Discard changes")):p("v-if",!0),n("button",{id:"save",type:"submit",class:"btn btn-ink",disabled:e.saving},u(e.saving?"Saving\u2026":"Save defaults"),9,r8),e.error?(l(),d("div",a8,u(e.error),1)):p("v-if",!0)])],32)),[[s,e.viewState]])],512),[[W,e.settingsTab==="defaults"]]),D(n("section",{id:"settings-billing","aria-busy":e.billingLoading||e.billingBusy},[t[64]||(t[64]=n("p",{class:"settings-scope"},"Your plan and usage. Reviewer access is always free.",-1)),e.billingLoading?(l(),d("p",d8,"Loading billing\u2026")):p("v-if",!0),e.billingError?(l(),d("div",u8,[v(u(e.billingError)+" ",1),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=r=>e.loadBilling()),disabled:e.billingBusy},"Try again",8,c8)])):p("v-if",!0),e.billingNotice?(l(),d("p",p8,u(e.billingNotice),1)):p("v-if",!0),e.billingPending?(l(),d("div",f8,[t[42]||(t[42]=n("strong",null,"Confirming your payment",-1)),t[43]||(t[43]=n("p",null,"Your allowance will update after confirmation. Please do not pay again.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=r=>e.refreshBilling()),disabled:e.billingBusy},"Check payment status",8,h8)])):p("v-if",!0),n("section",m8,[t[57]||(t[57]=n("h2",null,"Current plan",-1)),n("div",null,[n("div",v8,[n("div",null,[n("strong",null,u(e.profileAuthorGrant()?"Author subscription":e.billing?.enabled?"Free":"Account allowance"),1),e.profileAuthorGrant()?(l(),d("p",g8,u(e.profileAuthorGrant().cancelAtPeriodEnd?"Renewal cancelled \xB7 Access until ":"Paid access through ")+u(e.billingDate(e.profileAuthorGrant().until)),1)):p("v-if",!0)]),e.billing?.enabled&&!e.profileAuthorGrant()&&!e.billingPending&&!e.showAuthorPlans&&e.profileAuthorPlans().length?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[4]||(t[4]=r=>e.openProfileUpgrade())},"View Author plan")):p("v-if",!0)]),e.billing?.allowance?(l(),d("p",y8,u(e.billing.allowance.repositories)+" repositories \xB7 "+u(e.billingBytes(e.billing.allowance.storage)),1)):p("v-if",!0),n("div",b8,[e.quota?(l(),Ft(o,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",w8,"Loading usage\u2026"))]),t[56]||(t[56]=n("p",{class:"settings-help"},"Coauthored repositories use their owner's allowance. Conference hosting is separate.",-1)),e.quota?.repository&&!e.quota.repository.unlimited&&e.quota.repository.used>=e.quota.repository.total?(l(),d("p",k8,[...t[44]||(t[44]=[v("Your repository allowance is full. ",-1),n("a",{href:"/dashboard"},"Review your repositories",-1),v(" to remove work you no longer need.",-1)])])):p("v-if",!0),e.profilePastSubscription()?(l(),d("p",E8,[...t[45]||(t[45]=[v("Your previous subscription is no longer active. Never-expiring repositories receive a 90-day grace period after paid access ends. ",-1),n("a",{href:"/dashboard"},"Review repository expiration dates",-1),v(".",-1)])])):p("v-if",!0),e.profileAuthorGrant()?.status==="past_due"?(l(),d("p",C8,"A subscription payment is overdue. Use Manage billing to update your payment details.")):p("v-if",!0),e.profileAuthorGrant()?.cancelAtPeriodEnd?(l(),d("p",S8,"When paid access ends, never-expiring repositories enter a 90-day grace period. Dated repositories keep their expiration dates.")):p("v-if",!0),e.showAuthorPlans&&!e.profileAuthorGrant()&&!e.billingPending&&e.profileAuthorPlans().length?(l(),d("div",_8,[t[54]||(t[54]=n("h3",{id:"settings-plan-comparison",tabindex:"-1"},"Compare plans",-1)),n("table",N8,[t[51]||(t[51]=n("caption",{class:"sr-only"},"Free and Author hosting",-1)),t[52]||(t[52]=n("thead",null,[n("tr",null,[n("th",{scope:"col"},"Included"),n("th",{scope:"col"},"Free"),n("th",{scope:"col"},"Author")])],-1)),n("tbody",null,[n("tr",null,[t[46]||(t[46]=n("th",{scope:"row"},"Active repositories",-1)),n("td",null,u(e.billing.allowance?.repositories),1),n("td",null,u(e.profileSelectedPlan()?.repositories),1)]),n("tr",null,[t[47]||(t[47]=n("th",{scope:"row"},"Source storage",-1)),n("td",null,u(e.billingBytes(e.billing.allowance?.storage)),1),n("td",null,u(e.billingBytes(e.profileSelectedPlan()?.storage)),1)]),t[48]||(t[48]=n("tr",null,[n("th",{scope:"row"},"Expiration"),n("td",null,"Scheduled"),n("td",null,"Scheduled or never")],-1)),t[49]||(t[49]=n("tr",null,[n("th",{scope:"row"},"Coauthors"),n("td",null,"Included"),n("td",null,"Included")],-1)),t[50]||(t[50]=n("tr",null,[n("th",{scope:"row"},"Reviewer access"),n("td",null,"Free"),n("td",null,"Free")],-1))])]),n("fieldset",R8,[t[53]||(t[53]=n("legend",{class:"sr-only"},"Billing frequency",-1)),(l(!0),d(K,null,ne(e.profileAuthorPlans(),r=>(l(),d("label",{class:P({selected:e.profileSelectedPlan()?.id===r.id})},[n("input",{type:"radio",name:"profile-plan",checked:e.profileSelectedPlan()?.id===r.id,onChange:a=>e.profilePlan=r.id},null,40,D8),v(u(e.billingPrice(r)),1)],2))),256))]),n("p",T8,"Renews "+u(e.profileSelectedPlan()?.interval==="year"?"annually":"monthly")+" until cancelled. Tax shown at checkout.",1),t[55]||(t[55]=n("p",{class:"settings-help"},"If paid access ends, never-expiring repositories expire after a 90-day grace period.",-1)),n("div",A8,[n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||e.billing.checkoutEnabled===!1,onClick:t[5]||(t[5]=r=>e.checkout(e.profileSelectedPlan().id))},u(e.billingBusy?"Please wait\u2026":"Continue to checkout"),9,O8),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[6]||(t[6]=r=>e.showAuthorPlans=!1)},"Keep current plan")])])):p("v-if",!0),e.billing&&(!e.billing.enabled||e.billing.checkoutEnabled===!1)?(l(),d("p",P8,"New purchases are not available. Existing billing can still be managed below.")):p("v-if",!0)])]),n("section",I8,[t[59]||(t[59]=n("h2",null,"Billing",-1)),n("div",null,[e.billing?.portal?(l(),d("div",V8,[t[58]||(t[58]=n("p",{class:"settings-help"},"Invoices, payment details, and renewal.",-1)),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[7]||(t[7]=r=>e.billingPortal()),disabled:e.billingBusy},"Manage billing",8,q8)])):(l(),d("p",M8,"No billing account available.")),e.billing?.enabled&&!e.billingPending?(l(),d("button",{key:2,type:"button",class:"settings-text-button",onClick:t[8]||(t[8]=r=>e.refreshBilling()),disabled:e.billingBusy},"Refresh payment status",8,U8)):p("v-if",!0)])]),e.billing?.enabled?(l(),d("section",$8,[t[62]||(t[62]=n("h2",null,"Repository passes",-1)),n("div",null,[n("div",L8,[t[60]||(t[60]=n("p",{class:"settings-help"},[v("One repository for 180 days."),n("br"),v("No subscription or automatic renewal.")],-1)),e.profilePassPlan()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[9]||(t[9]=r=>e.showRepositoryPass=!e.showRepositoryPass),disabled:e.billingPending},"Review a pass",8,F8)):p("v-if",!0)]),e.showRepositoryPass&&e.profilePassPlan()&&!e.billingPending?(l(),d("div",B8,[t[61]||(t[61]=n("label",{for:"billing-repository"},"Repository ID you own",-1)),D(n("input",{id:"billing-repository",class:"form-control","onUpdate:modelValue":t[10]||(t[10]=r=>e.billingRepository=r),placeholder:"Existing anonymized repository ID",autocomplete:"off"},null,512),[[wt,e.billingRepository]]),n("p",H8,u(e.billingPrice(e.profilePassPlan()))+" \xB7 "+u(e.billingBytes(e.profilePassPlan().storage))+" \xB7 Never expire is not included.",1),n("button",{type:"button",class:"btn btn-ink",disabled:e.billingBusy||!e.billingRepository.trim()||e.billing.checkoutEnabled===!1,onClick:t[11]||(t[11]=r=>e.checkout("author_pass",e.billingRepository.trim()))},"Continue to checkout",8,z8)])):p("v-if",!0)])])):p("v-if",!0),e.billing?.grants?.length?(l(),d("section",j8,[t[63]||(t[63]=n("h2",null,"Your purchases",-1)),n("div",null,[(l(!0),d(K,null,ne(e.billing.grants,r=>(l(),d("div",{class:"settings-purchase",key:r.scope+r.planId+r.until},[n("strong",null,u(e.profileGrantName(r)),1),n("span",null,u(r.scope),1),n("p",G8,[v(u(r.status),1),r.status!=="revoked"?(l(),d(K,{key:0},[v(" \xB7 Paid access through "+u(e.billingDate(r.until))+u(r.cancelAtPeriodEnd?" \xB7 Renewal cancelled":""),1)],64)):p("v-if",!0)])]))),128))])])):p("v-if",!0),t[65]||(t[65]=n("section",{class:"settings-row"},[n("h2",null,"Conference hosting"),n("div",{class:"settings-inline"},[n("p",{class:"settings-help"},"Shared hosting is managed per conference."),n("a",{href:"/conferences",class:"btn btn-outline-ink"},"My conferences")])],-1))],8,l8),[[W,e.settingsTab==="billing"]]),D(n("section",W8,[t[75]||(t[75]=n("p",{class:"settings-scope"},"Your identity, repository access, and account.",-1)),n("div",K8,[e.user?.photo?(l(),d("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,Y8)):p("v-if",!0),n("div",J8,[n("div",Q8,"@"+u(e.user?.username),1),t[66]||(t[66]=n("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[67]||(t[67]=n("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),n("form",{class:"paper-account-email",onSubmit:t[15]||(t[15]=de(r=>e.saveAccountEmail(),["prevent"]))},[t[68]||(t[68]=n("label",{class:"paper-field-label",for:"account-email"},"Email address",-1)),t[69]||(t[69]=n("p",{id:"account-email-help",class:"paper-section-copy"},"Used for account alerts. Your address is never shown on anonymous pages.",-1)),D(n("input",{id:"account-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[12]||(t[12]=r=>e.accountEmail=r),"aria-describedby":"account-email-help",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady,onInput:t[13]||(t[13]=r=>e.emailSaved=!1)},null,40,X8),[[wt,e.accountEmail]]),e.emailLoading?(l(),d("p",Z8,"Loading your email address\u2026")):p("v-if",!0),e.emailError?(l(),d("p",x8,u(e.emailError),1)):p("v-if",!0),!e.emailCSRFReady&&!e.emailLoading?(l(),d("button",{key:2,class:"btn btn-outline-ink mt-2",type:"button",onClick:t[14]||(t[14]=r=>e.loadAccountEmail())},"Try again")):p("v-if",!0),n("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady},u(e.emailSaving?"Saving\u2026":"Save email address"),9,e6),e.emailSaved?(l(),d("p",t6,"Email address saved.")):p("v-if",!0)],32),t[76]||(t[76]=n("a",{class:"paper-settings-connection-link",href:"/connections"},[n("i",{class:"fab fa-github","aria-hidden":"true"}),n("span",null,[v("GitHub connections"),n("small",null,"Manage repository access and legacy OAuth.")]),n("span",{"aria-hidden":"true"},"\u2192")],-1)),n("div",n6,[t[73]||(t[73]=n("div",{class:"paper-danger-head"},"Delete account",-1)),t[74]||(t[74]=n("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(l(),d("div",o6,[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1)),t[71]||(t[71]=v()),n("span",{textContent:u(e.deleteError)},null,8,s6)])):p("v-if",!0),n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[16]||(t[16]=r=>e.confirmDeleteAccount=!0),disabled:e.deletingAccount},[t[72]||(t[72]=n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1)),v(u(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,i6),e.confirmDeleteAccount?(l(),d("div",r6,[n("label",a6,"Type "+u(e.user?.username)+" to confirm",1),D(n("input",{id:"delete-username",class:"form-control","onUpdate:modelValue":t[17]||(t[17]=r=>e.deleteUsername=r),autocomplete:"off"},null,512),[[wt,e.deleteUsername]]),n("div",l6,[n("button",{type:"button",class:"btn btn-outline-danger",onClick:t[18]||(t[18]=r=>e.deleteAccount()),disabled:e.deletingAccount||e.deleteUsername!==e.user?.username},u(e.deletingAccount?"Deleting\u2026":"Delete permanently"),9,d6),n("button",{type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=r=>{e.confirmDeleteAccount=!1,e.deleteUsername=""}),disabled:e.deletingAccount},"Cancel",8,u6)])])):p("v-if",!0)])],512),[[W,e.settingsTab==="account"]])])}var c6={class:"pr-page"},p6={class:"container paper-page pr-page-inner"},f6={class:"pr-header"},h6={class:"pr-title-row"},m6={class:"paper-page-title pr-title"},v6=["textContent"],g6={key:1,class:"text-muted"},y6=["href"],b6={class:"pr-header-meta"},w6={key:0,class:"pr-meta-item"},k6=["textContent"],E6={key:1,class:"pr-meta-item"},C6=["textContent"],S6={key:2,class:"pr-meta-item"},_6=["textContent"],N6={key:0,class:"pr-body-card"},R6={key:1,class:"paper-tabs",role:"tablist"},D6=["aria-selected","tabindex"],T6=["aria-selected","tabindex"],A6=["textContent"],O6={class:"paper-tab-content"},P6={key:0,role:"tabpanel",id:"pr-diff-panel","aria-labelledby":"pr-diff-tab"},I6=["innerHTML"],V6={key:1,role:"tabpanel",id:"pr-comments-panel","aria-labelledby":"pr-comments-tab"},q6={class:"pr-comments"},M6={class:"pr-comment"},U6={class:"pr-comment-head"},$6={key:0,class:"pr-comment-author"},L6=["textContent"],F6=["textContent"],B6={key:0,class:"pr-comment-body"},H6={key:0,class:"paper-table-empty"};function ed(e,t){let o=Ge("markdown");return l(),d("div",c6,[n("div",p6,[t[17]||(t[17]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"Reviewer"),v(" \xA0/\xA0 "),n("span",{class:"here"},"Pull request")],-1)),n("header",f6,[n("div",h6,[n("h1",m6,[e.details?.title?(l(),d("span",{key:0,textContent:u(e.details?.title)},null,8,v6)):p("v-if",!0),e.details?.title?p("v-if",!0):(l(),d("span",g6,"Untitled pull request"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[4]||(t[4]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),n("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,y6)):p("v-if",!0)]),n("div",b6,[n("span",{class:P(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[n("span",{class:P(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),v(" "+u(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(l(),d("span",w6,[t[5]||(t[5]=n("i",{class:"fab fa-github"},null,-1)),t[6]||(t[6]=v()),n("span",{textContent:u(e.details?.baseRepositoryFullName)},null,8,k6)])):p("v-if",!0),e.details?.updatedDate?(l(),d("span",E6,[t[7]||(t[7]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=v()),n("span",{textContent:u(e.fmt?.date(e.details?.updatedDate))},null,8,C6)])):p("v-if",!0),e.details?.anonymizeDate?(l(),d("span",S6,[t[9]||(t[9]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=v(" Anonymized ",-1)),n("span",{textContent:u(e.fmt?.date(e.details?.anonymizeDate))},null,8,_6)])):p("v-if",!0)])]),e.details?.body?(l(),d("section",N6,[t[11]||(t[11]=n("div",{class:"paper-section-eyebrow"},"Description",-1)),Ce(o,{content:e.details?.body},null,8,["content"])])):p("v-if",!0),e.details?.diff||e.details?.comments?(l(),d("nav",R6,[e.details?.diff?(l(),d("button",{key:0,class:P(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",id:"pr-diff-tab","aria-selected":e.tabState?.active==="diff","aria-controls":"pr-diff-panel",tabindex:e.tabState?.active==="diff"?0:-1,onKeydown:t[0]||(t[0]=i=>e.previewTabKeydown(i)),onClick:t[1]||(t[1]=i=>e.tabState.active="diff")},[...t[12]||(t[12]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),v(" Diff ",-1)])],42,D6)):p("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:P(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"pr-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"pr-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=i=>e.previewTabKeydown(i)),onClick:t[3]||(t[3]=i=>e.tabState.active="comments")},[t[13]||(t[13]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1)),n("span",{textContent:u(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,A6)],42,T6)):p("v-if",!0)])):p("v-if",!0),n("div",O6,[e.details?.diff&&e.tabState?.active=="diff"?(l(),d("div",P6,[n("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,I6)])):p("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",V6,[n("ul",q6,[(l(!0),d(K,null,ne(e.details?.comments,(i,s)=>(l(),d("li",M6,[n("div",U6,[i?.author?(l(),d("span",$6,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=v(" @",-1)),n("span",{textContent:u(i?.author)},null,8,L6)])):p("v-if",!0),i?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:u(e.fmt?.date(i?.updatedDate))},null,8,F6)):p("v-if",!0)]),i?.body?(l(),d("div",B6,[Ce(o,{content:i?.body},null,8,["content"])])):p("v-if",!0)]))),256)),e.details?.comments?.length?p("v-if",!0):(l(),d("li",H6,[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-comment"})],-1),n("span",null,"No comments on this pull request.",-1)])]))])])):p("v-if",!0)])])])}var z6={class:"repository-task status-page"},j6={class:"task-lede"},G6={class:"task-columns"},W6={class:"task-preparation","aria-label":"Repository preparation"},K6={key:0,class:"task-ready",role:"status"},Y6={key:1},J6={key:2,class:"text-danger",role:"alert"},Q6={key:3,class:"paper-section-copy"},X6={key:4,class:"paper-ratelimit-card",role:"status"},Z6={class:"paper-error-msg"},x6=["aria-valuenow"],eU={class:"paper-progress-label"},tU=["textContent"],nU={key:0},oU=["textContent"],sU={class:"paper-progress-pct"},iU={key:6,class:"paper-error-card",role:"alert"},rU={key:0,class:"paper-error-msg"},aU={key:1,class:"paper-error-msg"},lU={key:2},dU=["href"],uU={class:"paper-error-actions"},cU=["href"],pU={key:7,class:"share-link"},fU={class:"share-link-row"},hU=["value"],mU={class:"ui-icon","aria-hidden":"true"},vU=["href"],gU=["textContent"],yU={class:"share-link-actions"},bU=["href"],wU=["href"],kU={class:"task-summary","aria-label":"Repository summary"},EU={class:"task-summary-foot"};function td(e,t){return l(),d("div",z6,[t[23]||(t[23]=n("div",{class:"paper-crumbs"},[n("a",{href:"/dashboard"},"My work"),v(" / Repository")],-1)),t[24]||(t[24]=n("h1",null,"Prepare your anonymous review link",-1)),n("p",j6,u(e.repo?.status==="ready"?"Your repository is ready to share.":"Your settings are saved. Track preparation before sharing the link."),1),t[25]||(t[25]=n("ol",{class:"task-trail","aria-label":"Repository progress"},[n("li",null,"1. Repository"),n("li",null,"2. Review and hosting"),n("li",{"aria-current":"step"},"3. Review link")],-1)),n("div",G6,[n("section",W6,[e.repo?.status==="ready"?(l(),d("div",K6,[...t[3]||(t[3]=[n("strong",null,"Your review link is ready",-1)])])):p("v-if",!0),n("h2",null,u(e.repoId),1),e.repo?.status==="ready"?(l(),d("p",Y6,"Share the link with reviewers. They do not need to sign in.")):p("v-if",!0),e.error?(l(),d("p",J6,[t[4]||(t[4]=v("Unable to load repository status. ",-1)),n("button",{type:"button",class:"task-text-button",onClick:t[0]||(t[0]=o=>e.getStatus())},"Try again")])):p("v-if",!0),e.repo?.status!=="ready"?(l(),d("p",Q6,[...t[5]||(t[5]=[v(" The repository will take a few minutes to get ready, depending on its size. Visit the ",-1),n("a",{href:"/faq"},"FAQ",-1),v(" for more information. ",-1)])])):p("v-if",!0),e.rateLimitResetAt?(l(),d("div",X6,[t[8]||(t[8]=fe('
Temporarily paused
GitHub API rate limit reached
',1)),n("p",Z6,[t[6]||(t[6]=v("Anonymization will resume automatically in ",-1)),n("strong",null,u(e.rateLimitCountdown),1),t[7]||(t[7]=v(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):p("v-if",!0),e.repo?.status!=="ready"&&e.repo?.status!="error"&&!e.rateLimitResetAt?(l(),d("div",{key:5,class:P(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[n("div",{class:"paper-progress-bar",style:qe("width: "+e.progress+"%;")},null,4),n("div",eU,[n("span",{textContent:u(e.fmt?.title(e.repo?.status))},null,8,tU),e.repo?.statusMessage?(l(),d("span",nU,[t[9]||(t[9]=v("\xA0\xB7\xA0",-1)),n("span",{textContent:u(e.repo?.statusMessage)},null,8,oU)])):p("v-if",!0),n("span",sU,u(e.progress||0)+"%",1)])],10,x6)):p("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(l(),d("div",iU,[t[13]||(t[13]=fe('
Anonymization failed
Something went wrong while preparing this repository.
',1)),e.repo?.statusMessage?(l(),d("p",rU,u(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):p("v-if",!0),e.repo?.statusMessage?p("v-if",!0):(l(),d("p",aU,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),e.repo?.statusMessage==="quota_exceeded"?(l(),d("p",lU,[n("a",{href:e.safeUrl("/anonymize/"+e.repoId)},"Review this repository\u2019s hosting",8,dU),t[10]||(t[10]=v(", then retry preparation.",-1))])):p("v-if",!0),t[14]||(t[14]=n("ul",{class:"paper-error-hints"},[n("li",null,"Make sure the source URL points to a repository or pull request you can access."),n("li",null,"Check that the chosen branch and commit still exist on GitHub."),n("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),n("div",uU,[n("a",{class:"btn btn-ink",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[11]||(t[11]=[n("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit anonymization",-1)])],8,cU),t[12]||(t[12]=fe(' Read the FAQ Report a bug in Anonymous GitHub',2))])])):p("v-if",!0),e.repo?.status=="ready"?(l(),d("div",pU,[t[17]||(t[17]=n("p",{class:"paper-section-copy"},"Reviewers can browse the repository at this address without seeing who you are.",-1)),n("div",fU,[n("input",{id:"share-url",class:"form-control share-link-input",readonly:"","aria-label":"Anonymous link",value:e.shareUrl,onFocus:t[1]||(t[1]=o=>o.target.select())},null,40,hU),n("button",{type:"button",class:"btn btn-ink",onClick:t[2]||(t[2]=o=>e.copyShareUrl())},[(l(),d("svg",mU,[n("use",{href:e.copied?"#ui-icon-check":"#project-icon-copy"},null,8,vU)])),n("span",{"aria-live":"polite",textContent:u(e.copied?"Copied":"Copy link")},null,8,gU)])]),n("div",yU,[n("a",{class:"btn",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[15]||(t[15]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" Open repository ",-1)])],8,bU),e.repo?.options?.page?(l(),d("a",{key:0,class:"btn",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[16]||(t[16]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),v(" Open GitHub page ",-1)])],8,wU)):p("v-if",!0)])])):p("v-if",!0)]),n("aside",kU,[n("h3",null,u(e.repoId),1),n("dl",null,[t[18]||(t[18]=n("dt",null,"Source",-1)),n("dd",null,u(e.repo?.source?.fullName?"https://github.com/"+e.repo.source.fullName:"Loading\u2026"),1),t[19]||(t[19]=n("dt",null,"Lifetime",-1)),n("dd",null,u(e.repo?.options?.expirationMode==="never"?"Never expire while subscribed":e.repo?.options?.expirationDate?"Until "+e.fmt.date(e.repo.options.expirationDate):"Loading\u2026"),1),t[20]||(t[20]=n("dt",null,"Review access",-1)),t[21]||(t[21]=n("dd",null,"Anonymous and free",-1))]),n("div",EU,[n("strong",null,u(e.repo?.status==="ready"?"Ready to share":"Repository preparation"),1),t[22]||(t[22]=n("p",null,"Coauthors do not each need a subscription.",-1))])])])])}var us={"partials/reviewConsent.htm":Rl,"partials/connections.htm":Dl,"partials/signin.htm":Tl,"partials/404.htm":Al,"partials/admin/conferences.htm":Ol,"partials/admin/errors.htm":Pl,"partials/admin/overview.htm":Il,"partials/admin/queues.htm":Vl,"partials/admin/repositories.htm":ql,"partials/admin/user.htm":Ml,"partials/admin/users.htm":Ul,"partials/anonymize.htm":$l,"partials/anonymizePullRequest.htm":Ll,"partials/claim.htm":Fl,"partials/conference.htm":Bl,"partials/conferences.htm":Hl,"partials/dashboard.htm":zl,"partials/explorer.htm":jl,"partials/faq.htm":Gl,"partials/gist.htm":Wl,"partials/header.htm":Kl,"partials/home.htm":Yl,"partials/loading.htm":Jl,"partials/newConference.htm":Ql,"partials/pageView.htm":Xl,"partials/pr-dashboard.htm":Zl,"partials/profile.htm":xl,"partials/pullRequest.htm":ed,"partials/status.htm":td};var CU={class:"ui-icon-definitions","aria-hidden":"true",focusable:"false"};function nd(e,t){return l(),d("svg",CU,[...t[0]||(t[0]=[fe('',1)])])}function od(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"},t.watchGroup(["options.diff","options.comments"],()=>{t.options[t.prTabState.active]||(t.prTabState.active=t.options.diff?"diff":t.options.comments?"comments":null)})),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let i={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(i){let s=nt(()=>t.fmt.orderBy(t.fmt.filter(i[1](),t[i[2]]),t.orderBy));Object.defineProperty(t,i[0],{configurable:!0,get:()=>s.value})}}function sd(e=(...t)=>fetch(...t)){async function t(i,s,r,a={}){let c=new URL(s,window.location.href);for(let[y,b]of Object.entries(a.params||{}))if(b!=null)for(let h of Array.isArray(b)?b:[b])c.searchParams.append(y,typeof h=="object"?JSON.stringify(h):h);let f=new AbortController,g;a.timeout?.then?a.timeout.then(()=>f.abort()):a.timeout&&(g=setTimeout(()=>f.abort(),a.timeout));try{let y={Accept:"application/json, text/plain, */*",...a.headers},b=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);b&&c.origin===window.location.origin&&(y["X-XSRF-TOKEN"]=decodeURIComponent(b[1]));let h;r!==void 0&&(r instanceof FormData?h=r:(y["Content-Type"]||(y["Content-Type"]="application/json;charset=utf-8"),h=JSON.stringify(r)));let E=await e(c.href,{method:i,headers:y,body:h,credentials:"same-origin",signal:f.signal}),S=await E.text(),m=S;if(a.transformResponse)m=a.transformResponse(S);else if(S&&(/json/i.test(E.headers.get("content-type")||"")||/^[\[{]/.test(S.trim())))try{m=JSON.parse(S)}catch{}let C={data:m,status:E.status,headers:N=>E.headers.get(N)};if(!E.ok)throw C;return C}catch(y){throw y.name==="AbortError"?{status:-1,data:null}:y}finally{clearTimeout(g)}}let o={};for(let i of["get","delete","head"])o[i]=(s,r)=>t(i.toUpperCase(),s,void 0,r);for(let i of["post","put","patch"])o[i]=(s,r,a)=>t(i.toUpperCase(),s,r,a);return o}var id={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((i,s)=>{e=i,t=s}),resolve:e,reject:t}}};var rd=function(e){function t(o){return o=o||{used:0,total:0},o.unlimited=!o.total,o.percent=o.unlimited?0:Math.min(100,o.used*100/o.total),o.level=o.unlimited?"unlimited":o.percent>=95?"danger":o.percent>=80?"warn":"ok",o}return{decorate:t,load:function(){return e.get("/api/user/quota").then(o=>{let i=o.data||{};return i.storage=t(i.storage),i.file=t(i.file),i.repository=t(i.repository),i})}}};var gi={};_d(gi,{bigNum:()=>_U,date:()=>MU,diff:()=>AU,filter:()=>VU,humanFileSize:()=>SU,humanTime:()=>NU,limitTo:()=>IU,number:()=>OU,orderBy:()=>qU,plural:()=>UU,statusLabel:()=>DU,statusMsg:()=>TU,title:()=>RU,uppercase:()=>PU});var SU=e=>window.humanFileSize(e),_U=(function(){return function(t){let o=Number(t)||0,i=Math.abs(o);return i<1e3?String(o):i<1e4?(o/1e3).toFixed(1).replace(/\.0$/,"")+"k":i<1e6?Math.round(o/1e3)+"k":i<1e7?(o/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(o/1e6)+"M"}})(),NU=(function(){return function(t){if(!t)return"never";t instanceof Date&&(t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(t=Math.round((Date.now()-new Date(t))/1e3));var o=t<0?"from now":"ago";if(Math.abs(t)>7200*24){let f=new Date;return f.setSeconds(f.getSeconds()-t),"on "+f.toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}t=Math.abs(t);for(var i=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],s=["year","month","week","day","hour","minute","second"],r=0;r1&&(c+="s"),a>=1)return a+" "+c+" "+o}return"0 seconds "+o}})(),RU=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),o=t.map(function(i){return i.charAt(0).toUpperCase()+i.substring(1,i.length)});return o.join(" ")}})(),DU=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var o=String(t).replace(/[_-]+/g," ").toLowerCase();return o.charAt(0).toUpperCase()+o.slice(1)}})(),TU=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var o=t.match(/^rate_limited:(\d+)$/);if(o){var i=Math.max(0,Math.ceil((parseInt(o[1],10)-Date.now())/1e3));if(i<=0)return"Rate limited \u2014 resuming soon";var s=Math.floor(i/60),r=i%60;return"Rate limited \u2014 retrying in "+(s>0?s+"m "+r+"s":r+"s")}if(e[t])return e[t];if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var a=t.replace(/_/g," ");return a.charAt(0).toUpperCase()+a.slice(1)}return t}})(),AU=(function(e){let t=i=>i.replace(/&/g,"&").replace(//g,">");function o(i,s){if(!s)return;let r=s.newPath&&s.newPath!=="/dev/null"?s.newPath:s.oldPath||"",a=s.oldPath==="/dev/null"?"added":s.newPath==="/dev/null"?"deleted":s.oldPath&&s.newPath&&s.oldPath!==s.newPath?"renamed":"modified";if(i.push('
'),i.push('
'+t(r)+''+a+"
"),s.lines.length){i.push('');for(let c of s.lines)i.push('");i.push("
'+(c.oldNo||"")+''+(c.newNo||"")+''+(c.kind==="add"?"+":c.kind==="remove"?"-":c.kind==="hunk"?"@":"")+''+t(c.text)+"
")}i.push("
")}return function(i){if(!i)return i;let s=[],r=null,a=0,c=0,f=()=>(r||(r={oldPath:"",newPath:"",lines:[]}),r),g=()=>{r&&(r.lines.length||r.oldPath||r.newPath)&&(o(s,r),r=null)},y=i.split(` +`);for(let b=0;be});function OU(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function PU(e){return String(e??"").toUpperCase()}function IU(e,t,o=0){return(e||[]).slice(o,o+t)}function VU(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function qU(e,t){if(!t)return e||[];let o=Array.isArray(t)?t:[t];return[...e||[]].sort((i,s)=>{for(let r of o){let a=r[0]==="-"?-1:1;r=r.replace(/^[+-]/,"");let c=r.split(".").reduce((g,y)=>g?.[y],i),f=r.split(".").reduce((g,y)=>g?.[y],s);if(typeof c=="string"&&(c=c.toLowerCase()),typeof f=="string"&&(f=f.toLowerCase()),c!==f)return(c==null?-1:f==null?1:ci[s])}function UU(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}var ad={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=et(null);return Lt(()=>{let i=[t.value][0];i.classList.add("html-doc");function s(){i.innerHTML="";let r=e.content;if(typeof r!="string")return;let a=document.createElement("iframe");a.className="html-doc-frame",a.setAttribute("title","Rendered HTML document");let c=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&c.push("allow-scripts","allow-forms","allow-modals"),a.setAttribute("sandbox",c.join(" ")),a.setAttribute("referrerpolicy","no-referrer"),i.appendChild(a);let f="";e.baseUrl&&(f=''),a.srcdoc=f+r}Be(()=>e.content,s,{immediate:!0}),Be(()=>e.baseUrl,s,{immediate:!0}),Be(()=>e.allowScripts,s,{immediate:!0})}),()=>we("html-doc",{ref:t})}};var ld={name:"pdfviewer",props:["src"],setup(e){let t=et(null);return Lt(()=>{let o=[t.value],i=400,s=[.5,.75,1,1.25,1.5,2,3],r=1e3,a=o[0];a.classList.add("pdf-viewer");let c=null,f=[],g=!1,y=null,b=1,h=1,E=0,S=0,m=612/792,C=0,N=null,A=new Map,M=0;function U(k){let _=A.get(k);_&&(_.cancelled=!0,_.task?.cancel?.(),A.delete(k));let V=k.querySelector("canvas");V&&(V.width=0,V.height=0),k.innerHTML="",delete k.dataset.state}let q=document.createElement("div");q.className="pdf-toolbar";let B=document.createElement("div");B.className="pdf-pages",B.tabIndex=0,B.setAttribute("aria-label","PDF pages"),a.appendChild(q),a.appendChild(B);function oe(k,_,V){let G=document.createElement("button");return G.type="button",G.className="pdf-toolbar-btn",G.title=_,G.setAttribute("aria-label",_),G.innerHTML='',G.addEventListener("click",V),G}let ee=oe("fa-chevron-up","Previous page",function(){Te(h-1)}),R=oe("fa-chevron-down","Next page",function(){Te(h+1)}),j=document.createElement("input");j.type="text",j.className="pdf-toolbar-page",j.setAttribute("aria-label","Page number"),j.title="Page number \u2014 type a page and press Enter",j.addEventListener("keydown",function(k){k.key==="Enter"&&(Te(parseInt(j.value,10)),j.blur())}),j.addEventListener("blur",function(){j.value=String(h)});let ie=document.createElement("span");ie.className="pdf-toolbar-count";let ve=oe("fa-search-minus","Zoom out",function(){Z(s[Math.max(0,X()-1)])}),z=oe("fa-search-plus","Zoom in",function(){Z(s[Math.min(s.length-1,X()+1)])}),J=document.createElement("button");J.type="button",J.className="pdf-toolbar-btn pdf-toolbar-zoom",J.title="Reset zoom to fit the width",J.setAttribute("aria-label","Reset zoom to fit the width"),J.addEventListener("click",function(){Z(1)}),q.appendChild(ee),q.appendChild(R);let Q=document.createElement("span");Q.className="pdf-toolbar-group",Q.appendChild(j),Q.appendChild(ie),q.appendChild(Q);let te=document.createElement("span");te.className="pdf-toolbar-group pdf-toolbar-right",te.appendChild(ve),te.appendChild(J),te.appendChild(z),q.appendChild(te);function X(){let k=0;for(let _=0;_=k,J.textContent=Math.round(b*100)+"%",ve.disabled=X()===0,z.disabled=X()===s.length-1}function Ee(k){let _=f[k-1];_&&(B.scrollTop+=_.getBoundingClientRect().top-B.getBoundingClientRect().top)}function Te(k){if(!c||isNaN(k))return;let _=Math.min(Math.max(1,k),c.numPages);f[_-1]&&(Ee(_),h=_,E=_,S=Date.now()+800,re(),Ie())}function Ae(){if(!f.length||Date.now(){}),N=null),y&&(clearTimeout(y),y=null),c&&(c.destroy(),c=null),f=[],h=1,B.innerHTML="",re()}function _e(){B.innerHTML="";let k=document.createElement("div");k.className="pdf-viewer-error",k.textContent="This PDF could not be displayed.",B.appendChild(k)}function ze(){let k=Math.max(120,B.clientWidth-24);return Math.round(Math.min(k,r)*b)}function Ue(k,_,V){let G=window.devicePixelRatio||1,w=k.getViewport({scale:1}),T=parseFloat(_.style.width);if(!T)return;let O=k.getViewport({scale:T/w.width*G}),I=document.createElement("canvas");return I.width=Math.floor(O.width),I.height=Math.floor(O.height),I.style.width=T+"px",I.style.height=Math.floor(O.height/G)+"px",_.innerHTML="",_.appendChild(I),_.style.height=I.style.height,V.task=k.render({canvasContext:I.getContext("2d"),viewport:O}),V.task.promise}function Ie(){if(!c)return;let k=C,_=B.getBoundingClientRect(),V=_.top-i,G=_.top+B.clientHeight+i,w=f.map((O,I)=>({slot:O,i:I,rect:O.getBoundingClientRect()})).filter(O=>O.rect.top<=G&&O.rect.bottom>=V).sort((O,I)=>Math.abs(O.rect.top-_.top)-Math.abs(I.rect.top-_.top)).slice(0,6),T=new Set(w.map(O=>O.slot));for(let O of A.keys())T.has(O)||U(O);for(let{slot:O,i:I}of w){if(O.dataset.state||M>=2)continue;let F={cancelled:!1,task:null};A.set(O,F),M++,O.dataset.state="rendering";let L;c.getPage(I+1).then(ae=>{if(L=ae,!(F.cancelled||k!==C))return Ue(L,O,F)}).then(()=>{F.cancelled||k!==C||(O.dataset.state="done",E&&Date.now(){!F.cancelled&&k===C&&(O.dataset.state="failed")}).finally(()=>{M--,L?.cleanup?.(),c&&Ie()})}}function H(){g||(g=!0,window.requestAnimationFrame(function(){g=!1,Ae(),Ie()}))}function se(){let k=!1;function _(){k||(k=!0,Ie())}window.requestAnimationFrame(_),window.setTimeout(_,50)}function Y(){C++,f.forEach(U);let k=ze();f.forEach(function(_){delete _.dataset.state,_.innerHTML="",_.style.width=k+"px",_.style.height=Math.round(k/m)+"px"}),Ie()}function Z(k){if(!c||!f.length||k===b)return;let _=h;b=k,re(),Y(),Te(_)}function ue(){c&&(y&&clearTimeout(y),y=setTimeout(function(){y=null,c&&f.length&&Y()},250))}function be(k){if(Se(),!k)return;let _=C;N=pdfjsLib.getDocument({url:k,isEvalSupported:!1,standardFontDataUrl:"/script/external/pdf-standard-fonts/",cMapUrl:"/script/external/pdf-cmaps/",cMapPacked:!0}),N.promise.then(function(V){if(_!==C){V.destroy();return}return c=V,c.getPage(1).then(function(G){if(_!==C)return;let w=G.getViewport({scale:1});w.width&&w.height&&(m=w.width/w.height);let T=ze();for(let O=1;O<=c.numPages;O++){let I=document.createElement("div");I.className="pdf-viewer-page",I.style.width=T+"px",I.style.height=Math.round(T/m)+"px",B.appendChild(I),f.push(I)}re(),se()})}).catch(function(){_===C&&_e()})}B.addEventListener("scroll",H,{passive:!0}),$(window).on("resize",ue),re(),Be(()=>e.src,be,{immediate:!0}),cn(function(){B.removeEventListener("scroll",H),$(window).off("resize",ue),Se()})}),()=>we("pdfviewer",{ref:t})}};var $U={key:0,class:"quota-row quota-usage"},LU={class:"quota-header"},FU={class:"quota-label"},BU={class:"project-type-svg","aria-hidden":"true"},HU=["href"],zU={key:0,class:"quota-percent"},jU={key:1,class:"quota-unlimited-tag"},GU={class:"quota-value"},WU={key:0},KU=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],YU={key:1,class:"quota-remaining"},JU={key:2,class:"quota-remaining quota-limit"};function dd(e,t){return e.quota?(l(),d("div",$U,[(l(),d(K,null,ne([{key:"repository",label:"Repositories",kind:"count",icon:"project-type-repo"},{key:"storage",label:"Storage",kind:"bytes",icon:"project-icon-storage"},{key:"file",label:"Files",kind:"count",icon:"project-icon-file"}],o=>n("div",{class:P(["quota-item","quota-"+e.quota[o.key].level]),key:o.key},[n("div",LU,[n("span",FU,[(l(),d("svg",BU,[n("use",{href:"#"+o.icon},null,8,HU)])),v(u(o.label),1)]),e.quota[o.key].unlimited?p("v-if",!0):(l(),d("span",zU,u(e.fmt.number(e.quota[o.key].percent,0))+"% used",1)),e.quota[o.key].unlimited?(l(),d("span",jU,"Unlimited")):p("v-if",!0)]),n("div",GU,[n("strong",null,u(e.formatAmount(e.quota[o.key].used,o.kind)),1),e.quota[o.key].unlimited?p("v-if",!0):(l(),d("span",WU," / "+u(e.formatAmount(e.quota[o.key].total,o.kind)),1))]),e.quota[o.key].unlimited?p("v-if",!0):(l(),d("div",{key:0,class:P(["quota-track","quota-"+e.quota[o.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":o.label+" quota","aria-valuenow":Math.min(e.quota[o.key].used,e.quota[o.key].total),"aria-valuemax":e.quota[o.key].total,"aria-valuetext":e.fmt.number(e.quota[o.key].percent,0)+"% used"},[e.quota[o?.key].unlimited?p("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:qe({width:e.quota[o.key].percent+"%"})},null,4))],10,KU)),!e.quota[o.key].unlimited&&e.quota[o.key].used=e.quota[o.key].total?(l(),d("p",JU,u(e.quota[o.key].used>e.quota[o.key].total?"Limit exceeded":"Limit reached"),1)):p("v-if",!0)],2)),64))])):p("v-if",!0)}var QU={props:["quota","fmt"],setup(e){return{formatAmount:(t,o)=>o==="bytes"?e.fmt.humanFileSize(e.quota?.storage?.unit==="bytes"?t*8:t).replace(/([a-zA-Z]+)$/," $1"):e.fmt.number(t)}},render:dd},XU=new Set(ce),cd={props:["content","terms","options"],setup(e){let t=et(null),o=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../")};return Lt(()=>{o(),Be(()=>[e.content,e.terms,e.options],o,{deep:!0})}),()=>we("markdown",{ref:t})}},ZU={props:["file","terms","options"],setup(e){let t=et(null),o=()=>Ke(()=>t.value?.querySelectorAll("pre code").forEach(i=>window.Prism?.highlightElement(i)));return Lt(o),Be(()=>[e.file?.content,e.terms,e.options],o,{deep:!0}),()=>{let i=e.file||{},s=(i.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(s)||i.language==="Markdown")return we("gist-file",{ref:t},we(cd,{content:i.content,terms:e.terms,options:e.options}));let r={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},a=(i.language||s||"none").toLowerCase();return we("gist-file",{ref:t},we("pre",{class:"line-numbers"},we("code",{class:"language-"+(r[a]||a),key:i.content},i.content||"")))}}},xU={props:["file","content"],setup(e){let t=et(null),o=0,i,s=async()=>{let r=++o;i?.abort(),i=new AbortController;try{let a=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:i.signal}).then(c=>{if(!c.ok)throw Error("Notebook request failed");return c.json()});if(await nn("notebook"),r!==o)return;t.value.innerHTML=DOMPurify.sanitize(nb.parse(a).render()),t.value.querySelectorAll("pre code").forEach(c=>window.Prism?.highlightElement(c))}catch(a){r===o&&a.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return Lt(()=>{s(),Be(()=>[e.file,e.content],s)}),cn(()=>{o++,i?.abort()}),()=>we("notebook",{ref:t})}},e$={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,i])=>i.code),o=t.reduce((i,[,s])=>i+s.code,0);return we("loc",t.map(([i,s])=>we("div",{class:"lang",title:`${i}: ${s.code.toLocaleString()} lines`,style:{width:s.code*100/o+"%",background:langColors[i]}})))}}},pd={Markdown:cd,GistFile:ZU,Notebook:xU,Loc:e$,HtmlDoc:ad,QuotaUsage:QU,Pdfviewer:_r(async()=>(await nn("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",ld))},fd={async mounted(e,{value:t}){e._editorValue=t;try{if(await Si(),e._editorDisposed)return;let o=e._editorValue,i=ace.edit(e);e._editor=i,i.setValue(String(o.content??""),-1),ud(e,o.options),e._editorCleanup=o.options?.onLoad?.(i)}catch(o){e._editorDisposed||(e.textContent=o.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),ud(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editorCleanup?.(),e._editor?.destroy()}};function ud(e,t={}){let o=XU.has(t.mode)?t.mode:"text";e._editor.session.setMode("ace/mode/"+o),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var hd={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],o=new Set,i=new IntersectionObserver(s=>{s.forEach(a=>a.isIntersecting?o.add(a.target.id):o.delete(a.target.id));let r=t.find(a=>o.has(a.hash.slice(1)));t.forEach(a=>a.classList.toggle("active",a===r))},{rootMargin:"-20% 0px -60% 0px",threshold:0});Ke(()=>t.forEach(s=>{let r=document.getElementById(s.hash.slice(1));r&&i.observe(r)})),e._observer=i},beforeUnmount(e){e._observer?.disconnect()}};function t$(e){let t={children:[]},o=new Map([["",t]]);function i(s){if(o.has(s))return o.get(s);let r=s.lastIndexOf("/"),a=i(r<0?"":s.slice(0,r)),c={name:s.slice(r+1),children:[]};return o.set(s,c),a.children.push(c),c}for(let s of e||[]){let r=s.path?`${s.path}/${s.name}`:s.name;s.size==null?i(r):i(s.path||"").children.push({...s})}return t.children}var md={name:"FileTree",props:["file","parent","searchQuery","searchResults","page"],setup(e){let t=el(),o=et(null),i=Fe(Object.create(null)),s=null,r=nt(()=>t$(e.file)),a=()=>"/"+(Array.isArray(t.params.path)?t.params.path.join("/"):t.params.path||"");Be(()=>[t.params.repoId,t.params.path],()=>{let h="";a().split("/").filter(Boolean).forEach(E=>{h+="/"+E,i[h]=!0})},{immediate:!0});let c=nt(()=>{if(!e.searchQuery||!e.searchResults)return null;let h=new Set,E=new Set;return e.searchResults.forEach(S=>{h.add(S.path?`${S.path}/${S.name}`:S.name);let m="";(S.path||"").split("/").filter(Boolean).forEach(C=>{m=m?m+"/"+C:C,E.add(m)})}),{files:h,folders:E}}),f=()=>[...o.value.querySelectorAll("li > a")],g=h=>{o.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),h&&(s=h.dataset.path,h.classList.add("tree-focused"),h.scrollIntoView?.({block:"nearest"}),o.value.focus())};function y(h){let E=f(),S=o.value.querySelector(".tree-focused")||E[0],m=E.indexOf(S);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(h.key)||(h.preventDefault(),h.key==="ArrowDown"&&g(E[(m+1)%E.length]),h.key==="ArrowUp"&&g(E[(m-1+E.length)%E.length]),!S))return;let C=S.closest("li");h.key==="ArrowRight"&&C.classList.contains("folder")&&(C.classList.contains("open")?g(C.querySelector(":scope > ul > li > a")):S.click()),h.key==="ArrowLeft"&&(C.classList.contains("folder")&&C.classList.contains("open")?S.click():g(C.parentElement.closest("li.folder")?.querySelector(":scope > a"))),h.key==="Enter"&&S.click()}function b(h,E=""){let S=[...h].sort((m,C)=>+!!C.children-+!!m.children||m.name.localeCompare(C.name));return we("ul",S.flatMap(m=>{let C=m,N=C.name,A=(E+"/"+N).slice(1);if(c.value&&!c.value.files.has(A)&&!c.value.folders.has(A))return[];for(;C.children?.length===1;)C=C.children[0],N+="/"+C.name;let M=E+"/"+N,U=!!C.children,q=c.value?i[M]!==!1:!!i[M],B=U&&e.page?.options?.truncatedFolders?.includes(M.slice(1)),oe=e.page?.fileCounts?.[M.slice(1)]||0,ee=we("span",{class:U?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},U?we("svg",{viewBox:"0 0 14 12",focusable:"false"},we("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),R=we("span",{class:"tree-name"},N),j=ve=>{g(ve.currentTarget),U&&(ve.preventDefault(),i[M]=!q,i[M]&&!C.children.length&&e.page.getFiles(M.slice(1)),Ke(()=>g(f().find(z=>z.dataset.path===s))))},ie=we("a",{"data-path":M,href:U?void 0:`/r/${encodeURIComponent(t.params.repoId)}${encodePathForUrl(M)}`,class:{"tree-focused":s===M},onClick:j},[U?we("span",{class:"tree-toggle"}):E?we("span",{class:"tree-spacer"}):null,ee,R,B?we("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},we("i",{class:"fas fa-exclamation-triangle"})):null,U&&oe?we("span",{class:"tree-count"},oe):null]);return we("li",{key:M,class:{file:!0,folder:U,open:q,active:a()===M,truncated:B},title:U?"":`Size: ${humanFileSize(C.size||0)}`},[ie,U&&q?b(C.children,M):null])}))}return()=>we("tree",{ref:o,tabindex:0,onKeydown:y},e.file?.length?c.value?.files.size===0?we("div",{class:"tree-search-empty"},"No files found"):b(r.value):"Empty repository")}};function gd(){return Fe({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function yd(e,t){if(!e[t]){let o=gd();Object.defineProperty(o,"invalid",{get(){return Object.values(o.errors).some(Boolean)||Object.keys(o).some(i=>i!=="invalid"&&o[i]&&typeof o[i]=="object"&&o[i].invalid)}}),e[t]=o}return e[t]}var bd={beforeMount(e,{value:t}){e._formState=yd(t,e.name),e.addEventListener("submit",o=>o.preventDefault())}};function n$(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function vd(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?n$(t):t??""),yi(e)}function yi(e){let t=e._field.validation;if(!t)return;let o=e.validity;for(let[i,s]of Object.entries({required:o.valueMissing,pattern:o.patternMismatch,min:o.rangeUnderflow,max:o.rangeOverflow,date:o.badInput,email:o.typeMismatch&&e.type==="email",url:o.typeMismatch&&e.type==="url"}))t.setValidity(i,e.disabled||!s)}var wd={beforeMount(e,{value:t}){var a;let o=t.form&&yd(t.state,t.form),i=o&&e.name?o[a=e.name]||(o[a]=gd()):null;e._field={binding:t,validation:i,timer:null};let s=()=>{clearTimeout(e._field.timer),e._field.timer=null;let c=e._field.binding,f=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(f=e.value===""?null:Number(e.value)),e.type==="date"&&(f=e.value?new Date(e.value+"T00:00:00"):null),i){i.setDirty();for(let g of Object.keys(i.errors))i.setValidity(g,!0)}c.set(f),yi(e),c.change?.()}};e._field.commit=s;let r=c=>{let f=e._field.binding.options?.debounce||0,g=typeof f=="number"?f:f[c.type]??f.default??0;clearTimeout(e._field.timer),g?e._field.timer=setTimeout(s,g):s()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",r),e.addEventListener("blur",()=>{i&&(i.touched=!0),e._field.timer&&s()})},mounted:vd,updated(e,{value:t}){e._field.binding=t,vd(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:o}=e._field,i=t.form&&t.state[t.form];i&&i[e.name]===o&&delete i[e.name]}};function kd(e,t){let o=e.target.closest("form");if(o?._formState&&(o._formState.submitted=!0),o?.querySelectorAll("input, select, textarea").forEach(i=>{i._field?.timer&&i._field.commit(),i._field&&yi(i)}),o&&!o.checkValidity()){let i=o.querySelector("input:invalid, select:invalid, textarea:invalid");i?.scrollIntoView?.({block:"center"}),i?.focus(),o.reportValidity();return}return t()}var Ed=Symbol("session"),o$=/^\/(w|api|github)(\/|$)/;function Cd(e,t={}){let o=e?.split(".").reduce((i,s)=>i?.[s],go);return o==null&&e?.startsWith("ERRORS.")&&(o=go.ERRORS.unknown_error),String(o??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(i,s)=>t[s]??"")}var s$={...gi,translate:Cd};function i$(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function r$(e="#app",t={}){let o=!!document.querySelector('meta[name="review-consent-page"][content="1"]'),i=o&&window.location.pathname==="/review-link"?Ei(window):null,s=()=>{let h=i;return i=null,h};!t.history&&window.location.pathname==="/"&&/^#!\/r\/[^/?#]+/.test(window.location.hash)&&window.history.replaceState(window.history.state,"",window.location.hash.slice(2));let r=new Map,a=sd(t.fetch),c,f;function g(){let h=ut(),E={url(m){return m===void 0?f.currentRoute.value.fullPath:(f.push(m),E)},replace(m){return f.replace(m)},path(){return f.currentRoute.value.path},search(){return f.currentRoute.value.query}},S=new Proxy({},{get(m,C){let N=f.currentRoute.value.params[C];return Array.isArray(N)?N.join("/"):N}});return{takeReviewHandoff:s,http:a,...h,location:E,params:S,window,promises:id,html:{trustAsHtml:m=>m},translate:(m,C)=>Promise.resolve(Cd(m,C)),quotaService:rd(a)}}function y(h){return{name:h.template,setup(){let E=pi(dt(Ed),r);h.setup(E,g()),od(h.template,E);let S=[];return()=>us[h.template](E,S)}}}f=xa({history:t.history||Qa(),routes:Nl.map(h=>h.redirect?h:{path:h.path,component:y(h),meta:{title:h.title,preserveExplorer:h.preserveExplorer}})});let b=ga({setup(){c=pi(null,r),c.fmt=s$,c.window=window,c.Math=Math,c.sanitize=m=>DOMPurify.sanitize(m??""),c.highlightRedactions=m=>(c.site_options,sl(m)),c.submitForm=kd,c.safeUrl=i$;let h=g();rl(c,h.http,h.location,h.timeout),un(Ed,c),Be(()=>c.title,m=>{document.title=m||"Anonymous GitHub"});let E=[],S=m=>{let C=m.target.closest?.("a[href]");if(m.defaultPrevented||m.button!==0||m.metaKey||m.ctrlKey||m.shiftKey||m.altKey||!C||C.hasAttribute("download")||C.target&&C.target!=="_self"||C.dataset.toggle||C.getAttribute("href").startsWith("#"))return;let A=new URL(C.href,window.location.href);o||/^\/review-link\/?$/i.test(A.pathname)||A.origin!==window.location.origin||o$.test(A.pathname)||(m.preventDefault(),f.push(A.pathname+A.search+A.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",S),cn(()=>document.removeEventListener("click",S)),()=>[nd(c,[]),o?null:we("header",{class:"app-header"},us["partials/header.htm"](c,E)),we("main",{class:"app-view align-items-stretch w-100"},we(ui,null,{default:({Component:m,route:C})=>m?we(m,{key:C.meta.preserveExplorer?C.matched[0]?.path:C.path}):null})),we("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},c.toasts.map((m,C)=>we("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:C},[we("div",{class:"toast-header"},[we("strong",{class:"mr-auto"},m.title),we("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>c.removeToast(m)},"\xD7")]),we("div",{class:"toast-body"},m.body)])))]}});for(let[h,E]of Object.entries(pd))b.component(h,E);return b.component("Tree",md),b.component("PartialView",{props:["name","state"],setup(h){let E=[];return()=>us[h.name](h.state,E)}}),b.directive("field",wd),b.directive("form",bd),b.directive("code-editor",fd),b.directive("paper-scrollspy",hd),b.use(f),f.beforeEach(async h=>{if(h.path==="/review-link"&&!o||o&&h.path!=="/review-link")return window.location.assign(h.fullPath),!1;c?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(h.path)&&await nn("markdown"),/^\/(r|repository)\//.test(h.path)&&await nn("org")}),f.afterEach(h=>{if(!c)return;c.title=h.meta.title,c.emit("routeChange",{title:h.meta.title}),c.emit("routeUpdate",{title:h.meta.title});let E=document.querySelector(".app-view");!h.meta.preserveExplorer&&E&&(E.scrollTop=0)}),b.mount(e),{app:b,router:f,state:c}}document.querySelector("#app")&&(window.anonymousApp=r$());})(); /*! Bundled license information: @vue/shared/dist/shared.esm-bundler.js: