:root{--link-color:#0000FF;--link-visited-color:#800080;--link-active-color:#FF0000;--font-color:#080808;--pre-background-color:#eee;--code-background-color:#eee;--summary-background-color:#eee;--blockquete-background-color:#eee;--blockquete-border-color:#bbb;--details-open-color:#eee;--hr-color:#ddd;--footer-color:#333;--index-article-list-date-color:#333;--resume-border-color:#ddd;--resume-career-place-color:#555;--resume-date-range-color:#555;--alert-error-background:#f8d7da;--alert-error-color:#721c24;--alert-error-border-color:#f5c6cb;--alert-success-background:#dbf1d1;--alert-success-color:#22600c;--alert-success-border-color:#dbebbe;--alert-info-background:#d1ecf1;--alert-info-color:#0c5460;--alert-info-border-color:#bee5eb;--table-border:#ddd}@media(prefers-color-scheme:dark){:root{--background-color:#222;--link-color:#85ADFF;--link-visited-color:#CD94FF;--link-active-color:#FF8A8A;--font-color:#e5e5e5;--pre-background-color:#333;--code-background-color:#333;--summary-background-color:#333;--blockquete-background-color:#333;--blockquete-border-color:#666;--details-open-color:#333;--hr-color:#444;--footer-color:#bbb;--index-article-list-date-color:#bbb;--resume-border-color:#444;--resume-career-place-color:#bbb;--resume-date-range-color:#bbb;--alert-error-background:#721c24;--alert-error-color:#f8d7da;--alert-error-border-color:#f5c6cb;--alert-success-background:#22600c;--alert-success-color:#dbf1d1;--alert-success-border-color:#dbebbe;--alert-info-background:#0c5460;--alert-info-color:#d1ecf1;--alert-info-border-color:#bee5eb;--table-border:#444}}@media(prefers-color-scheme:light){.chroma{background-color:#fff}.chroma .err{color:red;background-color:#faa}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#ffc}.chroma .lnt{margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .k{color:#080;font-weight:700}.chroma .kc{color:#080;font-weight:700}.chroma .kd{color:#080;font-weight:700}.chroma .kn{color:#080;font-weight:700}.chroma .kp{color:#038;font-weight:700}.chroma .kr{color:#080;font-weight:700}.chroma .kt{color:#339;font-weight:700}.chroma .na{color:#00c}.chroma .nb{color:#007020}.chroma .nc{color:#b06;font-weight:700}.chroma .no{color:#036;font-weight:700}.chroma .nd{color:#555;font-weight:700}.chroma .ni{color:#800;font-weight:700}.chroma .ne{color:red;font-weight:700}.chroma .nf{color:#06b;font-weight:700}.chroma .nl{color:#970;font-weight:700}.chroma .nn{color:#0e84b5;font-weight:700}.chroma .nt{color:#070}.chroma .nv{color:#963}.chroma .vc{color:#369}.chroma .vg{color:#d70;font-weight:700}.chroma .vi{color:#33b}.chroma .s{background-color:#fff0f0}.chroma .sa{background-color:#fff0f0}.chroma .sb{background-color:#fff0f0}.chroma .sc{color:#04d;background-color:#fff0f0}.chroma .dl{background-color:#fff0f0}.chroma .sd{color:#d42;background-color:#fff0f0}.chroma .s2{background-color:#fff0f0}.chroma .se{color:#666;background-color:#fff0f0;font-weight:700}.chroma .sh{background-color:#fff0f0}.chroma .si{background-color:#eee}.chroma .sx{color:#d20;background-color:#fff0f0}.chroma .sr{color:#000;background-color:#fff0ff}.chroma .s1{background-color:#fff0f0}.chroma .ss{color:#a60;background-color:#fff0f0}.chroma .m{color:#60e;font-weight:700}.chroma .mb{color:#60e;font-weight:700}.chroma .mf{color:#60e;font-weight:700}.chroma .mh{color:#058;font-weight:700}.chroma .mi{color:#00d;font-weight:700}.chroma .il{color:#60e;font-weight:700}.chroma .mo{color:#40e;font-weight:700}.chroma .o{color:#333}.chroma .ow{color:#000;font-weight:700}.chroma .c{color:#888}.chroma .ch{color:#888}.chroma .cm{color:#888}.chroma .c1{color:#888}.chroma .cs{color:#c00;font-weight:700}.chroma .cp{color:#579}.chroma .cpf{color:#579}.chroma .gd{color:#a00000}.chroma .ge{font-style:italic}.chroma .gr{color:red}.chroma .gh{color:navy;font-weight:700}.chroma .gi{color:#00a000}.chroma .go{color:#888}.chroma .gp{color:#c65d09;font-weight:700}.chroma .gs{font-weight:700}.chroma .gu{color:purple;font-weight:700}.chroma .gt{color:#04d}.chroma .gl{text-decoration:underline}.chroma .w{color:#bbb}}@media(prefers-color-scheme:dark){.chroma{color:#f8f8f2;background-color:#282a36}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:#ffc}.chroma .lnt{margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .ln{margin-right:.4em;padding:0 .4em;color:#7f7f7f}.chroma .k{color:#ff79c6}.chroma .kc{color:#ff79c6}.chroma .kd{color:#8be9fd;font-style:italic}.chroma .kn{color:#ff79c6}.chroma .kp{color:#ff79c6}.chroma .kr{color:#ff79c6}.chroma .kt{color:#8be9fd}.chroma .na{color:#50fa7b}.chroma .nb{color:#8be9fd;font-style:italic}.chroma .nc{color:#50fa7b}.chroma .nf{color:#50fa7b}.chroma .nl{color:#8be9fd;font-style:italic}.chroma .nt{color:#ff79c6}.chroma .nv{color:#8be9fd;font-style:italic}.chroma .vc{color:#8be9fd;font-style:italic}.chroma .vg{color:#8be9fd;font-style:italic}.chroma .vi{color:#8be9fd;font-style:italic}.chroma .s{color:#f1fa8c}.chroma .sa{color:#f1fa8c}.chroma .sb{color:#f1fa8c}.chroma .sc{color:#f1fa8c}.chroma .dl{color:#f1fa8c}.chroma .sd{color:#f1fa8c}.chroma .s2{color:#f1fa8c}.chroma .se{color:#f1fa8c}.chroma .sh{color:#f1fa8c}.chroma .si{color:#f1fa8c}.chroma .sx{color:#f1fa8c}.chroma .sr{color:#f1fa8c}.chroma .s1{color:#f1fa8c}.chroma .ss{color:#f1fa8c}.chroma .m{color:#bd93f9}.chroma .mb{color:#bd93f9}.chroma .mf{color:#bd93f9}.chroma .mh{color:#bd93f9}.chroma .mi{color:#bd93f9}.chroma .il{color:#bd93f9}.chroma .mo{color:#bd93f9}.chroma .o{color:#ff79c6}.chroma .ow{color:#ff79c6}.chroma .c{color:#6272a4}.chroma .ch{color:#6272a4}.chroma .cm{color:#6272a4}.chroma .c1{color:#6272a4}.chroma .cs{color:#6272a4}.chroma .cp{color:#ff79c6}.chroma .cpf{color:#ff79c6}.chroma .gd{color:#8b080b}.chroma .ge{text-decoration:underline}.chroma .gh{font-weight:700}.chroma .gi{font-weight:700}.chroma .go{color:#44475a}.chroma .gu{font-weight:700}.chroma .gl{text-decoration:underline}}html{font-family:sans-serif;color:var(--font-color);background-color:var(--background-color)}body{max-width:920px;margin:0 auto;padding:1rem}@media(max-width:640px){body{-webkit-text-size-adjust:none}}hr{height:2px;background-color:var(--hr-color);border:none}h1{font-size:x-large}h1 small{display:block;font-size:medium;margin:.3rem 0}.title{margin-top:0}article{margin:0 auto;max-width:720px;line-height:1.3}article img,article video,article iframe{display:block;margin:0 auto;max-width:75%}@media(max-width:640px){article img,article video,article iframe{max-width:calc(100% - 2rem)}}.footnotes{font-size:.85rem}footer{margin-top:1rem;text-align:center;font-size:.8rem;color:var(--footer-color)}pre{background-color:var(--pre-background-color)!important;padding:.25rem 1rem;margin:0 -1rem;max-width:100%;overflow-x:auto}code{background-color:var(--code-background-color);padding:.1rem}summary{cursor:pointer;background-color:var(--summary-background-color);padding:.25rem 1rem;margin:0 -1rem}details[open]{border-bottom:1rem solid var(--details-open-color);margin:0 -1rem 1rem;padding:0 1rem}blockquote{border-left:5px solid var(--blockquete-border-color);background-color:var(--blockquete-background-color);padding:.2rem 1rem;margin-left:-1rem;margin-right:-1rem}blockquote p{margin:0}blockquote blockquote{margin:.5rem 0}dl{display:grid;grid-template-columns:auto 1fr;grid-gap:.2rem 1rem}dl dt{font-weight:700;grid-column-start:1;font-size:.9rem}dl dd{grid-column-start:2;margin:0}dl dd:not(:last-child){margin-bottom:.5rem}a:link{color:var(--link-color)}a:visited{color:var(--link-visited-color)}a:active{color:var(--link-active-color)}.comments{margin:3rem 0 1rem}.alert{padding:.5rem;border:1px solid transparent;margin-bottom:1rem}.alert.alert-error{background:var(--alert-error-background);color:var(--alert-error-color);border-color:var(--alert-error-border-color)}.alert.alert-success{background:var(--alert-success-background);color:var(--alert-success-color);border-color:var(--alert-success-border-color)}.alert.alert-info{background:var(--alert-info-background);color:var(--alert-info-color);border-color:var(--alert-info-border-color)}table,th,td{border:1px solid var(--table-border);border-collapse:collapse}th,td{padding:.5rem}