{"id":2286,"date":"2026-02-17T15:16:45","date_gmt":"2026-02-17T13:16:45","guid":{"rendered":"https:\/\/lightrest.codeline.fr\/?page_id=2286"},"modified":"2026-02-25T19:17:17","modified_gmt":"2026-02-25T17:17:17","slug":"la-classe-lrsession","status":"publish","type":"page","link":"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession\/","title":{"rendered":"La classe lrSession"},"content":{"rendered":"<div class=\"page-injector lr-doc\" data-deeplink=\"1\" data-trace=\"0\" data-source=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrsession\/\" style=\"zoom:1.5;\">\n<!-- Page Injector: scoped CSS -->\n\n<style>\n.lr-doc{--md-text-font:\"Roboto\";--md-code-font:\"Roboto Mono\"}\n<\/style>\n\n<style>\n@charset \"UTF-8\";.lr-doc{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}.lr-doc *, .lr-doc :after, .lr-doc :before{box-sizing:inherit}@media (prefers-reduced-motion){.lr-doc *, .lr-doc :after, .lr-doc :before{transition:none!important}}.lr-doc{margin:0}.lr-doc a, .lr-doc button, .lr-doc input, .lr-doc label{-webkit-tap-highlight-color:transparent}.lr-doc a{color:inherit;text-decoration:none}.lr-doc hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}.lr-doc small{font-size:80%}.lr-doc sub, .lr-doc sup{line-height:1em}.lr-doc img{border-style:none}.lr-doc table{border-collapse:initial;border-spacing:0}.lr-doc td, .lr-doc th{font-weight:400;vertical-align:top}.lr-doc button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}.lr-doc input{border:0;outline:none}.lr-doc{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}.lr-doc [data-md-color-scheme=default]{color-scheme:light}.lr-doc [data-md-color-scheme=default] img[src$=\"#gh-dark-mode-only\"], .lr-doc [data-md-color-scheme=default] img[src$=\"#only-dark\"]{display:none}.lr-doc, .lr-doc [data-md-color-scheme=default]{--md-hue:225deg;--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-bg-color--light:#f5f5f5b3;--md-code-bg-color--lighter:#f5f5f54d;--md-code-hl-color:#4287ff;--md-code-hl-color--light:#4287ff1a;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-mark-color:#ffff0080;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059}.lr-doc .md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}.lr-doc{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}.lr-doc aside, .lr-doc, .lr-doc input{font-feature-settings:\"kern\",\"liga\";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}.lr-doc code, .lr-doc kbd, .lr-doc pre{font-feature-settings:\"kern\";font-family:var(--md-code-font-family)}.lr-doc{--md-typeset-table-sort-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"m18 21-4-4h3V7h-3l4-4 4 4h-3v10h3M2 19v-2h10v2M2 13v-2h7v2M2 7V5h4v2z\"\/><\/svg>');--md-typeset-table-sort-icon--asc:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 17h3l-4 4-4-4h3V3h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2z\"\/><\/svg>');--md-typeset-table-sort-icon--desc:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 7h3l-4-4-4 4h3v14h2M2 17h10v2H2M6 5v2H2V5m0 6h7v2H2z\"\/><\/svg>')}.lr-doc .md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6;overflow-wrap:break-word}@media print{.lr-doc .md-typeset{font-size:.68rem}}.lr-doc .md-typeset blockquote, .lr-doc .md-typeset dl, .lr-doc .md-typeset figure, .lr-doc .md-typeset ol, .lr-doc .md-typeset pre, .lr-doc .md-typeset ul{margin-bottom:1em;margin-top:1em}.lr-doc .md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.lr-doc .md-typeset h1, .lr-doc .md-typeset h2{font-weight:300;letter-spacing:-.01em}.lr-doc .md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.lr-doc .md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.lr-doc .md-typeset h2+h3{margin-top:.8em}.lr-doc .md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.lr-doc .md-typeset h5, .lr-doc .md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.lr-doc .md-typeset h5{text-transform:uppercase}.lr-doc .md-typeset h5 code{text-transform:none}.lr-doc .md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.lr-doc .md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.lr-doc .md-typeset a, .lr-doc .md-typeset a:before{transition:color 125ms}.lr-doc .md-typeset a:focus, .lr-doc .md-typeset a:hover{color:var(--md-accent-fg-color)}.lr-doc .md-typeset a:focus code, .lr-doc .md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.lr-doc .md-typeset a code{color:var(--md-typeset-a-color)}.lr-doc .md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.lr-doc .md-typeset code, .lr-doc .md-typeset kbd, .lr-doc .md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none;transition:background-color 125ms}@media print{.lr-doc .md-typeset code, .lr-doc .md-typeset kbd, .lr-doc .md-typeset pre{white-space:pre-wrap}}.lr-doc .md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;transition:color 125ms,background-color 125ms;word-break:break-word}.lr-doc .md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.lr-doc .md-typeset pre{display:flow-root;line-height:1.4;position:relative}.lr-doc .md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.lr-doc .md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.lr-doc .md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.lr-doc .md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.lr-doc .md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.lr-doc .md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.lr-doc .md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.lr-doc .md-typeset abbr{cursor:help;text-decoration:none}.lr-doc .md-typeset [data-preview], .lr-doc .md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light)}.lr-doc .md-typeset small{opacity:.75}.lr-doc [dir=ltr] .md-typeset sub, .lr-doc [dir=ltr] .md-typeset sup{margin-left:.078125em}.lr-doc [dir=rtl] .md-typeset sub, .lr-doc [dir=rtl] .md-typeset sup{margin-right:.078125em}.lr-doc [dir=ltr] .md-typeset blockquote{padding-left:.6rem}.lr-doc [dir=rtl] .md-typeset blockquote{padding-right:.6rem}.lr-doc [dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}.lr-doc [dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.lr-doc .md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.lr-doc .md-typeset ul{list-style-type:disc}.lr-doc .md-typeset ul[type]{list-style-type:revert-layer}.lr-doc [dir=ltr] .md-typeset ol, .lr-doc [dir=ltr] .md-typeset ul{margin-left:.625em}.lr-doc [dir=rtl] .md-typeset ol, .lr-doc [dir=rtl] .md-typeset ul{margin-right:.625em}.lr-doc .md-typeset ol, .lr-doc .md-typeset ul{padding:0}.lr-doc .md-typeset ol:not([hidden]), .lr-doc .md-typeset ul:not([hidden]){display:flow-root}.lr-doc .md-typeset ol ol, .lr-doc .md-typeset ul ol{list-style-type:lower-alpha}.lr-doc .md-typeset ol ol ol, .lr-doc .md-typeset ul ol ol{list-style-type:lower-roman}.lr-doc .md-typeset ol ol ol ol, .lr-doc .md-typeset ul ol ol ol{list-style-type:upper-alpha}.lr-doc .md-typeset ol ol ol ol ol, .lr-doc .md-typeset ul ol ol ol ol{list-style-type:upper-roman}.lr-doc .md-typeset ol[type], .lr-doc .md-typeset ul[type]{list-style-type:revert-layer}.lr-doc [dir=ltr] .md-typeset ol li, .lr-doc [dir=ltr] .md-typeset ul li{margin-left:1.25em}.lr-doc [dir=rtl] .md-typeset ol li, .lr-doc [dir=rtl] .md-typeset ul li{margin-right:1.25em}.lr-doc .md-typeset ol li, .lr-doc .md-typeset ul li{margin-bottom:.5em}.lr-doc .md-typeset ol li blockquote, .lr-doc .md-typeset ol li p, .lr-doc .md-typeset ul li blockquote, .lr-doc .md-typeset ul li p{margin:.5em 0}.lr-doc .md-typeset ol li:last-child, .lr-doc .md-typeset ul li:last-child{margin-bottom:0}.lr-doc [dir=ltr] .md-typeset ol li ol, .lr-doc [dir=ltr] .md-typeset ol li ul, .lr-doc [dir=ltr] .md-typeset ul li ol, .lr-doc [dir=ltr] .md-typeset ul li ul{margin-left:.625em}.lr-doc [dir=rtl] .md-typeset ol li ol, .lr-doc [dir=rtl] .md-typeset ol li ul, .lr-doc [dir=rtl] .md-typeset ul li ol, .lr-doc [dir=rtl] .md-typeset ul li ul{margin-right:.625em}.lr-doc .md-typeset ol li ol, .lr-doc .md-typeset ol li ul, .lr-doc .md-typeset ul li ol, .lr-doc .md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}.lr-doc [dir=ltr] .md-typeset dd{margin-left:1.875em}.lr-doc [dir=rtl] .md-typeset dd{margin-right:1.875em}.lr-doc .md-typeset dd{margin-bottom:1.5em;margin-top:1em}.lr-doc .md-typeset img, .lr-doc .md-typeset svg, .lr-doc .md-typeset video{height:auto;max-width:100%}.lr-doc .md-typeset img[align=left]{margin:1em 1em 1em 0}.lr-doc .md-typeset img[align=right]{margin:1em 0 1em 1em}.lr-doc .md-typeset img[align]:only-child{margin-top:0}.lr-doc .md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:fit-content}.lr-doc .md-typeset figure img{display:block;margin:0 auto}.lr-doc .md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.lr-doc .md-typeset iframe{max-width:100%}.lr-doc .md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.lr-doc .md-typeset table:not([class]){display:table}}.lr-doc .md-typeset table:not([class])+*{margin-top:1.5em}.lr-doc .md-typeset table:not([class]) td>:first-child, .lr-doc .md-typeset table:not([class]) th>:first-child{margin-top:0}.lr-doc .md-typeset table:not([class]) td>:last-child, .lr-doc .md-typeset table:not([class]) th>:last-child{margin-bottom:0}.lr-doc .md-typeset table:not([class]) td:not([align]), .lr-doc .md-typeset table:not([class]) th:not([align]){text-align:left}.lr-doc [dir=rtl] .md-typeset table:not([class]) td:not([align]), .lr-doc [dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.lr-doc .md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.lr-doc .md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.lr-doc .md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.lr-doc .md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.lr-doc .md-typeset table:not([class]) a{word-break:normal}.lr-doc .md-typeset table th[role=columnheader]{cursor:pointer}.lr-doc [dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}.lr-doc [dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.lr-doc .md-typeset table th[role=columnheader]:after{content:\"\";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.lr-doc .md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.lr-doc .md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.lr-doc .md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.lr-doc .md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.lr-doc .md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.lr-doc .md-typeset__table{display:block}}.lr-doc .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.984375em){.lr-doc .md-content__inner>pre{margin:1em -.8rem}.lr-doc .md-content__inner>pre code{border-radius:0}}.lr-doc .md-typeset .md-author{border-radius:100%;display:block;flex-shrink:0;height:1.6rem;overflow:hidden;position:relative;transition:color 125ms,transform 125ms;width:1.6rem}.lr-doc .md-typeset .md-author img{display:block}.lr-doc .md-typeset .md-author--more{background:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--lighter);font-size:.6rem;font-weight:700;line-height:1.6rem;text-align:center}.lr-doc .md-typeset .md-author--long{height:2.4rem;width:2.4rem}.lr-doc .md-typeset a.md-author{transform:scale(1)}.lr-doc .md-typeset a.md-author img{border-radius:100%;filter:grayscale(100%) opacity(75%);transition:filter 125ms}.lr-doc .md-typeset a.md-author:focus, .lr-doc .md-typeset a.md-author:hover{transform:scale(1.1);z-index:1}.lr-doc .md-typeset a.md-author:focus img, .lr-doc .md-typeset a.md-author:hover img{filter:grayscale(0)}.lr-doc .md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.lr-doc .md-banner{display:none}}.lr-doc .md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.lr-doc .md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}.lr-doc [dir=ltr] .md-banner__button{float:right}.lr-doc [dir=rtl] .md-banner__button{float:left}.lr-doc .md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.lr-doc .no-js .md-banner__button{display:none}.lr-doc .md-banner__button:hover{opacity:.7}.lr-doc{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){.lr-doc{font-size:137.5%}}@media screen and (min-width:125em){.lr-doc{font-size:150%}}.lr-doc{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{.lr-doc{display:block}}@media screen and (max-width:59.984375em){.lr-doc[data-md-scrolllock]{position:fixed}}.lr-doc .md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.lr-doc .md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.lr-doc .md-container{display:block}}.lr-doc .md-main{flex-grow:1}.lr-doc .md-main__inner{display:flex;height:100%;margin-top:1.5rem}.lr-doc .md-ellipsis{overflow:hidden;text-overflow:ellipsis}.lr-doc .md-toggle{display:none}.lr-doc .md-option{height:0;opacity:0;position:absolute;width:0}.lr-doc .md-option:checked+label:not([hidden]){display:block}.lr-doc .md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.lr-doc .md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.lr-doc .md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}.lr-doc{--md-clipboard-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z\"\/><\/svg>')}.lr-doc .md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;transition:color .25s;width:1.5em;z-index:1}@media print{.lr-doc .md-clipboard{display:none}}.lr-doc .md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.lr-doc :hover>.md-clipboard{color:var(--md-default-fg-color--light)}.lr-doc .md-clipboard:focus, .lr-doc .md-clipboard:hover{color:var(--md-accent-fg-color)}.lr-doc .md-clipboard:after{background-color:currentcolor;content:\"\";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.lr-doc .md-clipboard--inline{cursor:pointer}.lr-doc .md-clipboard--inline code{transition:color .25s,background-color .25s}.lr-doc .md-clipboard--inline:focus code, .lr-doc .md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.lr-doc{--md-code-select-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 19h-4v2h4c1.1 0 2-.9 2-2v-4h-2m0-12h-4v2h4v4h2V5c0-1.1-.9-2-2-2M5 5h4V3H5c-1.1 0-2 .9-2 2v4h2m0 6H3v4c0 1.1.9 2 2 2h4v-2H5zm2-4h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2zM7 7h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2zm-8 8h2v2H7zm4 0h2v2h-2zm4 0h2v2h-2z\"\/><\/svg>');--md-code-copy-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z\"\/><\/svg>')}.lr-doc .md-typeset .md-code__content{display:grid}.lr-doc .md-code__nav{background-color:var(--md-code-bg-color--lighter);border-radius:.1rem;display:flex;gap:.2rem;padding:.2rem;position:absolute;right:.25em;top:.25em;transition:background-color .25s;z-index:1}.lr-doc :hover>.md-code__nav{background-color:var(--md-code-bg-color--light)}.lr-doc .md-code__button{color:var(--md-default-fg-color--lightest);cursor:pointer;display:block;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;transition:color .25s;width:1.5em}.lr-doc :hover>*>.md-code__button{color:var(--md-default-fg-color--light)}.lr-doc .md-code__button.focus-visible, .lr-doc .md-code__button:hover{color:var(--md-accent-fg-color)}.lr-doc .md-code__button--active{color:var(--md-default-fg-color)!important}.lr-doc .md-code__button:after{background-color:currentcolor;content:\"\";display:block;height:1.125em;margin:0 auto;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.lr-doc .md-code__button[data-md-type=select]:after{-webkit-mask-image:var(--md-code-select-icon);mask-image:var(--md-code-select-icon)}.lr-doc .md-code__button[data-md-type=copy]:after{-webkit-mask-image:var(--md-code-copy-icon);mask-image:var(--md-code-copy-icon)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.lr-doc .md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.lr-doc .md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.lr-doc .md-consent__form{padding:.8rem}.lr-doc .md-consent__settings{display:none;margin:1em 0}.lr-doc input:checked+.md-consent__settings{display:block}.lr-doc .md-consent__controls{margin-bottom:.8rem}.lr-doc .md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.984375em){.lr-doc .md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.lr-doc .md-consent label{cursor:pointer}.lr-doc .md-content{flex-grow:1;min-width:0}.lr-doc .md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){.lr-doc [dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}.lr-doc [dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner, .lr-doc [dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}.lr-doc [dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.lr-doc .md-content__inner:before{content:\"\";display:block;height:.4rem}.lr-doc .md-content__inner>:last-child{margin-bottom:0}.lr-doc [dir=ltr] .md-content__button{float:right}.lr-doc [dir=rtl] .md-content__button{float:left}.lr-doc [dir=ltr] .md-content__button{margin-left:.4rem}.lr-doc [dir=rtl] .md-content__button{margin-right:.4rem}.lr-doc .md-content__button{margin:.4rem 0;padding:0}@media print{.lr-doc .md-content__button{display:none}}.lr-doc .md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.lr-doc .md-content__button svg{display:inline;vertical-align:top}.lr-doc [dir=rtl] .md-content__button svg{transform:scaleX(-1)}.lr-doc [dir=ltr] .md-dialog{right:.8rem}.lr-doc [dir=rtl] .md-dialog{left:.8rem}.lr-doc .md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.lr-doc .md-dialog{display:none}}.lr-doc .md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.lr-doc .md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.lr-doc .md-feedback{margin:2em 0 1em;text-align:center}.lr-doc .md-feedback fieldset{border:none;margin:0;padding:0}.lr-doc .md-feedback__title{font-weight:700;margin:1em auto}.lr-doc .md-feedback__inner{position:relative}.lr-doc .md-feedback__list{display:flex;flex-wrap:wrap;place-content:baseline center;position:relative}.lr-doc .md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}.lr-doc :disabled .md-feedback__list{min-height:1.8rem}.lr-doc .md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.lr-doc .md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.lr-doc .md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.lr-doc .md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.lr-doc .md-feedback__note>*{margin:0 auto;max-width:16rem}.lr-doc :disabled .md-feedback__note{opacity:1;transform:translateY(0)}@media print{.lr-doc .md-feedback{display:none}}.lr-doc .md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.lr-doc .md-footer{display:none}}.lr-doc .md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.lr-doc .md-footer__inner:not([hidden]){display:flex}.lr-doc .md-footer__link{align-items:end;display:flex;flex-grow:0.01;margin-bottom:.4rem;margin-top:1rem;max-width:100%;outline-color:var(--md-accent-fg-color);overflow:hidden;transition:opacity .25s}.lr-doc .md-footer__link:focus, .lr-doc .md-footer__link:hover{opacity:.7}.lr-doc [dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.984375em){.lr-doc .md-footer__link--prev{flex-shrink:0}.lr-doc .md-footer__link--prev .md-footer__title{display:none}}.lr-doc [dir=ltr] .md-footer__link--next{margin-left:auto}.lr-doc [dir=rtl] .md-footer__link--next{margin-right:auto}.lr-doc .md-footer__link--next{text-align:right}.lr-doc [dir=rtl] .md-footer__link--next{text-align:left}.lr-doc .md-footer__title{flex-grow:1;font-size:.9rem;margin-bottom:.7rem;max-width:calc(100% - 2.4rem);padding:0 1rem;white-space:nowrap}.lr-doc .md-footer__button{margin:.2rem;padding:.4rem}.lr-doc .md-footer__direction{font-size:.64rem;opacity:.7}.lr-doc .md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.lr-doc .md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}.lr-doc .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}.lr-doc .md-footer-meta.md-typeset a:focus, .lr-doc .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.lr-doc .md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.lr-doc .md-copyright{width:auto}}.lr-doc .md-copyright__highlight{color:var(--md-footer-fg-color--light)}.lr-doc .md-social{display:inline-flex;gap:.2rem;margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.lr-doc .md-social{padding:.6rem 0}}.lr-doc .md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.lr-doc .md-social__link:before{line-height:1.9}.lr-doc .md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.lr-doc .md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.lr-doc .md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.lr-doc .md-typeset .md-button:focus, .lr-doc .md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.lr-doc [dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}.lr-doc [dir=ltr] .md-typeset .md-input, .lr-doc [dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}.lr-doc [dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.lr-doc .md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.lr-doc .md-typeset .md-input:focus, .lr-doc .md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.lr-doc .md-typeset .md-input--stretch{width:100%}.lr-doc .md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:sticky;right:0;top:0;z-index:4}@media print{.lr-doc .md-header{display:none}}.lr-doc .md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.lr-doc .md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.lr-doc .md-header__inner{align-items:center;display:flex;padding:0 .2rem}.lr-doc .md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.lr-doc .md-header__button:hover{opacity:.7}.lr-doc .md-header__button:not([hidden]){display:inline-block}.lr-doc .md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.lr-doc .md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.234375em){.lr-doc .md-header__button.md-logo{display:none}}.lr-doc .md-header__button.md-logo img, .lr-doc .md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.lr-doc .md-header__button[for=__search]{display:none}}.lr-doc .no-js .md-header__button[for=__search]{display:none}.lr-doc [dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.lr-doc .md-header__button[for=__drawer]{display:none}}.lr-doc .md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.lr-doc .md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}.lr-doc [dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.lr-doc .md-header__topic:first-child{font-weight:700}.lr-doc [dir=ltr] .md-header__title{margin-left:1rem;margin-right:.4rem}.lr-doc [dir=rtl] .md-header__title{margin-left:.4rem;margin-right:1rem}.lr-doc .md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.lr-doc .md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}.lr-doc [dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.lr-doc .md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.lr-doc .md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.lr-doc .md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}.lr-doc [data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.lr-doc .md-header__option>input{bottom:0}.lr-doc .md-header__source{display:none}@media screen and (min-width:60em){.lr-doc [dir=ltr] .md-header__source{margin-left:1rem}.lr-doc [dir=rtl] .md-header__source{margin-right:1rem}.lr-doc .md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){.lr-doc [dir=ltr] .md-header__source{margin-left:1.4rem}.lr-doc [dir=rtl] .md-header__source{margin-right:1.4rem}}.lr-doc .md-meta{color:var(--md-default-fg-color--light);font-size:.7rem;line-height:1.3}.lr-doc .md-meta__list{display:inline-flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.lr-doc .md-meta__item:not(:last-child):after{content:\"\u00b7\";margin-left:.2rem;margin-right:.2rem}.lr-doc .md-meta__link{color:var(--md-typeset-a-color)}.lr-doc .md-meta__link:focus, .lr-doc .md-meta__link:hover{color:var(--md-accent-fg-color)}.lr-doc .md-draft{background-color:#ff1744;border-radius:.125em;color:#fff;display:inline-block;font-weight:700;padding-left:.5714285714em;padding-right:.5714285714em}.lr-doc{--md-nav-icon--prev:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z\"\/><\/svg>');--md-nav-icon--next:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z\"\/><\/svg>');--md-toc-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 9h14V7H3zm0 4h14v-2H3zm0 4h14v-2H3zm16 0h2v-2h-2zm0-10v2h2V7zm0 6h2v-2h-2z\"\/><\/svg>')}.lr-doc .md-nav{font-size:.7rem;line-height:1.3}.lr-doc .md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.lr-doc .md-nav__title .md-nav__button{display:none}.lr-doc .md-nav__title .md-nav__button img{height:100%;width:auto}.lr-doc .md-nav__title .md-nav__button.md-logo img, .lr-doc .md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.lr-doc .md-nav__list{list-style:none;margin:0;padding:0}.lr-doc .md-nav__link{align-items:flex-start;display:flex;gap:.4rem;margin-top:.625em;scroll-snap-align:start;transition:color 125ms}.lr-doc .md-nav__link--passed, .lr-doc .md-nav__link--passed code{color:var(--md-default-fg-color--light)}.lr-doc .md-nav__item .md-nav__link--active, .lr-doc .md-nav__item .md-nav__link--active code{color:var(--md-typeset-a-color)}.lr-doc .md-nav__link .md-ellipsis{position:relative}.lr-doc .md-nav__link .md-ellipsis code{word-break:normal}.lr-doc [dir=ltr] .md-nav__link .md-icon:last-child{margin-left:auto}.lr-doc [dir=rtl] .md-nav__link .md-icon:last-child{margin-right:auto}.lr-doc .md-nav__link .md-typeset{font-size:.7rem;line-height:1.3}.lr-doc .md-nav__link svg{fill:currentcolor;flex-shrink:0;height:1.3em;position:relative}.lr-doc .md-nav__link[for]:focus, .lr-doc .md-nav__link[for]:hover, .lr-doc .md-nav__link[href]:focus, .lr-doc .md-nav__link[href]:hover{color:var(--md-accent-fg-color);cursor:pointer}.lr-doc .md-nav__link[for]:focus code, .lr-doc .md-nav__link[for]:hover code, .lr-doc .md-nav__link[href]:focus code, .lr-doc .md-nav__link[href]:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.lr-doc .md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.lr-doc .md-nav--primary .md-nav__link[for=__toc]{display:none}.lr-doc .md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.lr-doc .md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.lr-doc .md-nav__container>.md-nav__link{margin-top:0}.lr-doc .md-nav__container>.md-nav__link:first-child{flex-grow:1;min-width:0}.lr-doc .md-nav__icon{flex-shrink:0}.lr-doc .md-nav__source{display:none}@media screen and (max-width:76.234375em){.lr-doc .md-nav--primary, .lr-doc .md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.lr-doc .md-nav--primary .md-nav__item, .lr-doc .md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.lr-doc .md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}.lr-doc [dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}.lr-doc [dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.lr-doc .md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.lr-doc .md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:\"\";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.lr-doc .md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.lr-doc .md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.lr-doc .md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.lr-doc .md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.lr-doc .md-nav--primary .md-nav__list{flex:1}.lr-doc .md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest)}.lr-doc .md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.lr-doc .md-nav--primary .md-nav__item--active>.md-nav__link:focus, .lr-doc .md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.lr-doc .md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}.lr-doc .md-nav--primary .md-nav__link svg{margin-top:.1em}.lr-doc .md-nav--primary .md-nav__link>.md-nav__link{padding:0}.lr-doc [dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}.lr-doc [dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.lr-doc .md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.lr-doc .md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:\"\";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.lr-doc [dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.lr-doc .md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}.lr-doc [dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}.lr-doc [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}.lr-doc [dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}.lr-doc [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}.lr-doc [dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}.lr-doc [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}.lr-doc [dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}.lr-doc [dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.lr-doc .md-nav--secondary{background-color:initial}.lr-doc .md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}.lr-doc [dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.lr-doc .md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.lr-doc .md-nav__toggle:checked~.md-nav>.md-nav__list{backface-visibility:hidden}}@media screen and (max-width:59.984375em){.lr-doc .md-nav--primary .md-nav__link[for=__toc]{display:flex}.lr-doc .md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:\"\"}.lr-doc .md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.lr-doc .md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.lr-doc .md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.234375em){.lr-doc .md-nav--integrated .md-nav__link[for=__toc]{display:flex}.lr-doc .md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:\"\"}.lr-doc .md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.lr-doc .md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.lr-doc .md-nav{margin-bottom:-.4rem}.lr-doc .md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.lr-doc .md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.lr-doc .md-nav--secondary .md-nav__title .md-nav__icon{display:none}.lr-doc [dir=ltr] .md-nav--secondary .md-nav__list{padding-left:.6rem}.lr-doc [dir=rtl] .md-nav--secondary .md-nav__list{padding-right:.6rem}.lr-doc .md-nav--secondary .md-nav__list{padding-bottom:.4rem}.lr-doc [dir=ltr] .md-nav--secondary .md-nav__item>.md-nav__link{margin-right:.4rem}.lr-doc [dir=rtl] .md-nav--secondary .md-nav__item>.md-nav__link{margin-left:.4rem}}@media screen and (min-width:76.25em){.lr-doc .md-nav{margin-bottom:-.4rem;transition:max-height .25s cubic-bezier(.86,0,.07,1)}.lr-doc .md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:sticky;top:0;z-index:1}.lr-doc .md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.lr-doc .md-nav--primary .md-nav__title .md-nav__icon{display:none}.lr-doc [dir=ltr] .md-nav--primary .md-nav__list{padding-left:.6rem}.lr-doc [dir=rtl] .md-nav--primary .md-nav__list{padding-right:.6rem}.lr-doc .md-nav--primary .md-nav__list{padding-bottom:.4rem}.lr-doc [dir=ltr] .md-nav--primary .md-nav__item>.md-nav__link{margin-right:.4rem}.lr-doc [dir=rtl] .md-nav--primary .md-nav__item>.md-nav__link{margin-left:.4rem}.lr-doc .md-nav__toggle~.md-nav{display:grid;grid-template-rows:minmax(.4rem,0fr);opacity:0;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .25s,visibility 0ms .25s;visibility:collapse}.lr-doc .md-nav__toggle~.md-nav>.md-nav__list{overflow:hidden}.lr-doc .md-nav__toggle.md-toggle--indeterminate~.md-nav, .lr-doc .md-nav__toggle:checked~.md-nav{grid-template-rows:minmax(.4rem,1fr);opacity:1;transition:grid-template-rows .25s cubic-bezier(.86,0,.07,1),opacity .15s .1s,visibility 0ms;visibility:visible}.lr-doc .md-nav__toggle.md-toggle--indeterminate~.md-nav{transition:none}.lr-doc .md-nav__item--nested>.md-nav>.md-nav__title{display:none}.lr-doc .md-nav__item--section{display:block;margin:1.25em 0}.lr-doc .md-nav__item--section:last-child{margin-bottom:0}.lr-doc .md-nav__item--section>.md-nav__link{font-weight:700}.lr-doc .md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.lr-doc .md-nav__item--section>.md-nav__link:not(.md-nav__container){pointer-events:none}.lr-doc .md-nav__item--section>.md-nav__link .md-icon, .lr-doc .md-nav__item--section>.md-nav__link>[for]{display:none}.lr-doc [dir=ltr] .md-nav__item--section>.md-nav{margin-left:-.6rem}.lr-doc [dir=rtl] .md-nav__item--section>.md-nav{margin-right:-.6rem}.lr-doc .md-nav__item--section>.md-nav{display:block;opacity:1;visibility:visible}.lr-doc .md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.lr-doc .md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s;width:.9rem}.lr-doc .md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.lr-doc .md-nav__icon:after{background-color:currentcolor;border-radius:100%;content:\"\";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;vertical-align:-.1rem;width:100%}.lr-doc [dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.lr-doc .md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after, .lr-doc .md-nav__item--nested .md-toggle--indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.lr-doc .md-nav--lifted>.md-nav__list>.md-nav__item, .lr-doc .md-nav--lifted>.md-nav__title{display:none}.lr-doc .md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block}.lr-doc .md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);margin-top:0;position:sticky;top:0;z-index:1}.lr-doc .md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__container){pointer-events:none}.lr-doc .md-nav--lifted>.md-nav__list>.md-nav__item--active.md-nav__item--section{margin:0}.lr-doc [dir=ltr] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-left:-.6rem}.lr-doc [dir=rtl] .md-nav--lifted>.md-nav__list>.md-nav__item>.md-nav:not(.md-nav--secondary){margin-right:-.6rem}.lr-doc .md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.lr-doc .md-nav--lifted .md-nav[data-md-level=\"1\"]{grid-template-rows:minmax(.4rem,1fr);opacity:1;visibility:visible}.lr-doc [dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}.lr-doc [dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.lr-doc .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em;opacity:1;visibility:visible}.lr-doc .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__list{overflow:visible;padding-bottom:0}.lr-doc .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}.lr-doc .md-pagination{font-size:.8rem;font-weight:700;gap:.4rem}.lr-doc .md-pagination, .lr-doc .md-pagination>*{align-items:center;display:flex;justify-content:center}.lr-doc .md-pagination>*{border-radius:.2rem;height:1.8rem;min-width:1.8rem;text-align:center}.lr-doc .md-pagination__current{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light)}.lr-doc .md-pagination__link{transition:color 125ms,background-color 125ms}.lr-doc .md-pagination__link:focus, .lr-doc .md-pagination__link:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.lr-doc .md-pagination__link:focus svg, .lr-doc .md-pagination__link:hover svg{color:var(--md-accent-fg-color)}.lr-doc .md-pagination__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.lr-doc .md-pagination__link svg{fill:currentcolor;color:var(--md-default-fg-color--lighter);display:block;max-height:100%;width:1.2rem}.lr-doc{--md-path-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z\"\/><\/svg>')}.lr-doc .md-path{font-size:.7rem;margin:0 .8rem;overflow:auto;padding-top:1.2rem}.lr-doc .md-path:not([hidden]){display:block}@media screen and (min-width:76.25em){.lr-doc .md-path{margin:0 1.2rem}}.lr-doc .md-path__list{align-items:center;display:flex;gap:.2rem;list-style:none;margin:0;padding:0}.lr-doc .md-path__item:not(:first-child){display:inline-flex;gap:.2rem;white-space:nowrap}.lr-doc .md-path__item:not(:first-child):before{background-color:var(--md-default-fg-color--lighter);content:\"\";display:inline;height:.8rem;-webkit-mask-image:var(--md-path-icon);mask-image:var(--md-path-icon);width:.8rem}.lr-doc .md-path__link{align-items:center;color:var(--md-default-fg-color--light);display:flex}.lr-doc .md-path__link:focus, .lr-doc .md-path__link:hover{color:var(--md-accent-fg-color)}.lr-doc{--md-post-pin-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M16 12V4h1V2H7v2h1v8l-2 2v2h5.2v6h1.6v-6H18v-2z\"\/><\/svg>')}.lr-doc .md-post__back{border-bottom:.05rem solid var(--md-default-fg-color--lightest);margin-bottom:1.2rem;padding-bottom:1.2rem}@media screen and (max-width:76.234375em){.lr-doc .md-post__back{display:none}}.lr-doc [dir=rtl] .md-post__back svg{transform:scaleX(-1)}.lr-doc .md-post__authors{display:flex;flex-direction:column;gap:.6rem;margin:0 .6rem 1.2rem}.lr-doc .md-post .md-post__meta a{transition:color 125ms}.lr-doc .md-post .md-post__meta a:focus, .lr-doc .md-post .md-post__meta a:hover{color:var(--md-accent-fg-color)}.lr-doc .md-post__title{color:var(--md-default-fg-color--light);font-weight:700}.lr-doc .md-post--excerpt{margin-bottom:3.2rem}.lr-doc .md-post--excerpt .md-post__header{align-items:center;display:flex;gap:.6rem;min-height:1.6rem}.lr-doc .md-post--excerpt .md-post__authors{align-items:center;display:inline-flex;flex-direction:row;gap:.2rem;margin:0;min-height:2.4rem}.lr-doc [dir=ltr] .md-post--excerpt .md-post__meta .md-meta__list{margin-right:.4rem}.lr-doc [dir=rtl] .md-post--excerpt .md-post__meta .md-meta__list{margin-left:.4rem}.lr-doc .md-post--excerpt .md-post__content>:first-child{--md-scroll-margin:6rem;margin-top:0}.lr-doc .md-post>.md-nav--secondary{margin:1em 0}.lr-doc .md-pin{background:var(--md-default-fg-color--lightest);border-radius:1rem;margin-top:-.05rem;padding:.2rem}.lr-doc .md-pin:after{background-color:currentcolor;content:\"\";display:block;height:.6rem;margin:0 auto;-webkit-mask-image:var(--md-post-pin-icon);mask-image:var(--md-post-pin-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.6rem}.lr-doc .md-profile{align-items:center;display:flex;font-size:.7rem;gap:.6rem;line-height:1.4;width:100%}.lr-doc .md-profile__description{flex-grow:1}.lr-doc .md-content--post{display:flex}@media screen and (max-width:76.234375em){.lr-doc .md-content--post{flex-flow:column-reverse}}.lr-doc .md-content--post>.md-content__inner{flex-grow:1;min-width:0}@media screen and (min-width:76.25em){.lr-doc [dir=ltr] .md-content--post>.md-content__inner{margin-left:1.2rem}.lr-doc [dir=rtl] .md-content--post>.md-content__inner{margin-right:1.2rem}}@media screen and (max-width:76.234375em){.lr-doc .md-sidebar.md-sidebar--post{padding:0;position:static;width:100%}.lr-doc .md-sidebar.md-sidebar--post .md-sidebar__scrollwrap{overflow:visible}.lr-doc .md-sidebar.md-sidebar--post .md-sidebar__inner{padding:0}.lr-doc .md-sidebar.md-sidebar--post .md-post__meta{margin-left:.6rem;margin-right:.6rem}.lr-doc .md-sidebar.md-sidebar--post .md-nav__item{border:none;display:inline}.lr-doc .md-sidebar.md-sidebar--post .md-nav__list{display:inline-flex;flex-wrap:wrap;gap:.6rem;padding-bottom:.6rem;padding-top:.6rem}.lr-doc .md-sidebar.md-sidebar--post .md-nav__link{padding:0}.lr-doc .md-sidebar.md-sidebar--post .md-nav{height:auto;margin-bottom:0;position:static}}.lr-doc{--md-progress-value:0;--md-progress-delay:400ms}.lr-doc .md-progress{background:var(--md-primary-bg-color);height:.075rem;opacity:min(clamp(0,var(--md-progress-value),1),clamp(0,100 - var(--md-progress-value),1));position:fixed;top:0;transform:scaleX(calc(var(--md-progress-value)*1%));transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1),opacity .25s var(--md-progress-delay);width:100%;z-index:4}.lr-doc{--md-search-result-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h7c-.41-.25-.8-.56-1.14-.9-.33-.33-.61-.7-.86-1.1H6V4h7v5h5v1.18c.71.16 1.39.43 2 .82V8zm6.31 16.9c1.33-2.11.69-4.9-1.4-6.22-2.11-1.33-4.91-.68-6.22 1.4-1.34 2.11-.69 4.89 1.4 6.22 1.46.93 3.32.93 4.79.02L22 23.39 23.39 22zm-3.81.1a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5\"\/><\/svg>')}.lr-doc .md-search{position:relative}@media screen and (min-width:60em){.lr-doc .md-search{padding:.2rem 0}}.lr-doc .no-js .md-search{display:none}.lr-doc .md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.984375em){.lr-doc [dir=ltr] .md-search__overlay{left:-2.2rem}.lr-doc [dir=rtl] .md-search__overlay{right:-2.2rem}.lr-doc .md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){.lr-doc [dir=ltr] .md-search__overlay{left:0}.lr-doc [dir=rtl] .md-search__overlay{right:0}.lr-doc .md-search__overlay{background-color:#0000008a;cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.984375em){.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.984375em){.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.984375em){.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.lr-doc .md-search__inner{backface-visibility:hidden}@media screen and (max-width:59.984375em){.lr-doc [dir=ltr] .md-search__inner{left:0}.lr-doc [dir=rtl] .md-search__inner{right:0}.lr-doc .md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}.lr-doc [dir=rtl] .md-search__inner{transform:translateX(-5%)}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){.lr-doc [dir=ltr] .md-search__inner{float:right}.lr-doc [dir=rtl] .md-search__inner{float:left}.lr-doc .md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.234375em){.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.lr-doc .md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem #0000;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.lr-doc .md-search__form{background-color:#00000042;border-radius:.1rem;height:1.8rem}.lr-doc .md-search__form:hover{background-color:#ffffff1f}}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem #00000012;color:var(--md-default-fg-color)}.lr-doc [dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}.lr-doc [dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.lr-doc .md-search__input{background:#0000;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.lr-doc .md-search__input::placeholder{transition:color .25s}.lr-doc .md-search__input::placeholder, .lr-doc .md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.lr-doc .md-search__input::-ms-clear{display:none}@media screen and (max-width:59.984375em){.lr-doc .md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){.lr-doc [dir=ltr] .md-search__input{padding-left:2.2rem}.lr-doc [dir=rtl] .md-search__input{padding-right:2.2rem}.lr-doc .md-search__input{color:inherit;font-size:.8rem}.lr-doc .md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.lr-doc .md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon{color:var(--md-default-fg-color--light)}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:#0000}}.lr-doc .md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.lr-doc .md-search__icon:hover{opacity:.7}.lr-doc [dir=ltr] .md-search__icon[for=__search]{left:.5rem}.lr-doc [dir=rtl] .md-search__icon[for=__search]{right:.5rem}.lr-doc .md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}.lr-doc [dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.984375em){.lr-doc [dir=ltr] .md-search__icon[for=__search]{left:.8rem}.lr-doc [dir=rtl] .md-search__icon[for=__search]{right:.8rem}.lr-doc .md-search__icon[for=__search]{top:.6rem}.lr-doc .md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.lr-doc .md-search__icon[for=__search]{pointer-events:none}.lr-doc .md-search__icon[for=__search] svg:last-child{display:none}}.lr-doc [dir=ltr] .md-search__options{right:.5rem}.lr-doc [dir=rtl] .md-search__options{left:.5rem}.lr-doc .md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.984375em){.lr-doc [dir=ltr] .md-search__options{right:.8rem}.lr-doc [dir=rtl] .md-search__options{left:.8rem}.lr-doc .md-search__options{top:.6rem}}.lr-doc [dir=ltr] .md-search__options>.md-icon{margin-left:.2rem}.lr-doc [dir=rtl] .md-search__options>.md-icon{margin-right:.2rem}.lr-doc .md-search__options>.md-icon{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.lr-doc .md-search__options>.md-icon:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon{opacity:1;pointer-events:auto;transform:scale(1)}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon:hover{opacity:.7}.lr-doc [dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}.lr-doc [dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.lr-doc .md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){.lr-doc [dir=ltr] .md-search__suggest{padding-left:2.2rem}.lr-doc [dir=rtl] .md-search__suggest{padding-right:2.2rem}.lr-doc .md-search__suggest{font-size:.8rem}}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}.lr-doc [dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}.lr-doc [dir=ltr] .md-search__output, .lr-doc [dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}.lr-doc [dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.lr-doc .md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.984375em){.lr-doc .md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.lr-doc .md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.lr-doc .md-search__scrollwrap{backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.lr-doc .md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.234375em){.lr-doc .md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.lr-doc .md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.lr-doc .md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}.lr-doc [data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.lr-doc .md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.lr-doc .md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.lr-doc .md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.lr-doc .md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.lr-doc .md-search-result{color:var(--md-default-fg-color);word-break:break-word}.lr-doc .md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){.lr-doc [dir=ltr] .md-search-result__meta{padding-left:2.2rem}.lr-doc [dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.lr-doc .md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;user-select:none}.lr-doc .md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.lr-doc .md-search-result__item:first-child{box-shadow:none}.lr-doc .md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.lr-doc .md-search-result__link:focus, .lr-doc .md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.lr-doc .md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.lr-doc .md-search-result__more>summary{cursor:pointer;display:block;outline:none;position:sticky;scroll-snap-align:start;top:0;z-index:1}.lr-doc .md-search-result__more>summary::marker{display:none}.lr-doc .md-search-result__more>summary::-webkit-details-marker{display:none}.lr-doc .md-search-result__more>summary>div{color:var(--md-typeset-a-color);font-size:.64rem;padding:.75em .8rem;transition:color .25s,background-color .25s}@media screen and (min-width:60em){.lr-doc [dir=ltr] .md-search-result__more>summary>div{padding-left:2.2rem}.lr-doc [dir=rtl] .md-search-result__more>summary>div{padding-right:2.2rem}}.lr-doc .md-search-result__more>summary:focus>div, .lr-doc .md-search-result__more>summary:hover>div{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.lr-doc .md-search-result__more[open]>summary{background-color:var(--md-default-bg-color)}.lr-doc .md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){.lr-doc [dir=ltr] .md-search-result__article{padding-left:2.2rem}.lr-doc [dir=rtl] .md-search-result__article{padding-right:2.2rem}}.lr-doc [dir=ltr] .md-search-result__icon{left:0}.lr-doc [dir=rtl] .md-search-result__icon{right:0}.lr-doc .md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.984375em){.lr-doc .md-search-result__icon{display:none}}.lr-doc .md-search-result__icon:after{background-color:currentcolor;content:\"\";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.lr-doc [dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.lr-doc .md-search-result .md-typeset{color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.6}.lr-doc .md-search-result .md-typeset h1{color:var(--md-default-fg-color);font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.lr-doc .md-search-result .md-typeset h1 mark{text-decoration:none}.lr-doc .md-search-result .md-typeset h2{color:var(--md-default-fg-color);font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.lr-doc .md-search-result .md-typeset h2 mark{text-decoration:none}.lr-doc .md-search-result__terms{color:var(--md-default-fg-color);display:block;font-size:.64rem;font-style:italic;margin:.5em 0}.lr-doc .md-search-result mark{background-color:initial;color:var(--md-accent-fg-color);text-decoration:underline}.lr-doc .md-select{position:relative;z-index:1}.lr-doc .md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.lr-doc .md-select:focus-within .md-select__inner, .lr-doc .md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.lr-doc .md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:\"\";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.lr-doc .md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.lr-doc .md-select__item{line-height:1.8rem}.lr-doc [dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}.lr-doc [dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.lr-doc .md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.lr-doc .md-select__link:focus, .lr-doc .md-select__link:hover{color:var(--md-accent-fg-color)}.lr-doc .md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.lr-doc .md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:sticky;top:2.4rem;width:12.1rem}@media print{.lr-doc .md-sidebar{display:none}}@media screen and (max-width:76.234375em){.lr-doc [dir=ltr] .md-sidebar--primary{left:-12.1rem}.lr-doc [dir=rtl] .md-sidebar--primary{right:-12.1rem}.lr-doc .md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}.lr-doc [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}.lr-doc [dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.lr-doc .md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.lr-doc .md-sidebar{height:0}.lr-doc .no-js .md-sidebar{height:auto}.lr-doc .md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.lr-doc .md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.lr-doc .md-sidebar--secondary{height:0}.lr-doc .no-js .md-sidebar--secondary{height:auto}.lr-doc .md-sidebar--secondary:not([hidden]){display:block}.lr-doc .md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.lr-doc .md-sidebar__scrollwrap{backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000}@media screen and (min-width:60em){.lr-doc .md-sidebar__scrollwrap{scrollbar-gutter:stable;scrollbar-width:thin}}.lr-doc .md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.lr-doc .md-sidebar__scrollwrap:focus-within, .lr-doc .md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.lr-doc .md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb, .lr-doc .md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.lr-doc .md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover, .lr-doc .md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.lr-doc .md-sidebar__scrollwrap{scrollbar-gutter:auto}.lr-doc [dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}.lr-doc [dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.234375em){.lr-doc .md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}.lr-doc [data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}.lr-doc{--md-source-forks-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 16 16\"><path d=\"M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0M5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0m6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0\"\/><\/svg>');--md-source-repositories-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 16 16\"><path d=\"M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.5 2.5 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.5 2.5 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.25.25 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z\"\/><\/svg>');--md-source-stars-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 16 16\"><path d=\"M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25m0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41z\"\/><\/svg>');--md-source-version-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 16 16\"><path d=\"M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.75 1.75 0 0 1 1 7.775m1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2\"\/><\/svg>')}.lr-doc .md-source{backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.lr-doc .md-source:hover{opacity:.7}.lr-doc .md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}.lr-doc [dir=ltr] .md-source__icon svg{margin-left:.6rem}.lr-doc [dir=rtl] .md-source__icon svg{margin-right:.6rem}.lr-doc .md-source__icon svg{margin-top:.6rem}.lr-doc [dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}.lr-doc [dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}.lr-doc [dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}.lr-doc [dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}.lr-doc [dir=ltr] .md-source__repository{margin-left:.6rem}.lr-doc [dir=rtl] .md-source__repository{margin-right:.6rem}.lr-doc .md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.lr-doc .md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.lr-doc .md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.lr-doc .md-source__fact{overflow:hidden;text-overflow:ellipsis}.lr-doc .md-source__repository--active .md-source__fact{animation:fact .4s ease-out}.lr-doc [dir=ltr] .md-source__fact:before{margin-right:.1rem}.lr-doc [dir=rtl] .md-source__fact:before{margin-left:.1rem}.lr-doc .md-source__fact:before{background-color:currentcolor;content:\"\";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.lr-doc .md-source__fact:nth-child(1n+2){flex-shrink:0}.lr-doc .md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.lr-doc .md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.lr-doc .md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.lr-doc .md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.lr-doc .md-source-file{margin:1em 0}.lr-doc [dir=ltr] .md-source-file__fact{margin-right:.6rem}.lr-doc [dir=rtl] .md-source-file__fact{margin-left:.6rem}.lr-doc .md-source-file__fact{align-items:center;color:var(--md-default-fg-color--light);display:inline-flex;font-size:.68rem;gap:.3rem}.lr-doc .md-source-file__fact .md-icon{flex-shrink:0;margin-bottom:.05rem}.lr-doc [dir=ltr] .md-source-file__fact .md-author{float:left}.lr-doc [dir=rtl] .md-source-file__fact .md-author{float:right}.lr-doc .md-source-file__fact .md-author{margin-right:.2rem}.lr-doc .md-source-file__fact svg{width:.9rem}.lr-doc{--md-status:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M11 9h2V7h-2m1 13c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m-1 15h2v-6h-2z\"\/><\/svg>');--md-status--new:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"m23 12-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68zm-10 5h-2v-2h2zm0-4h-2V7h2z\"\/><\/svg>');--md-status--deprecated:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M9 3v1H4v2h1v13a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6h1V4h-5V3zm0 5h2v9H9zm4 0h2v9h-2z\"\/><\/svg>');--md-status--encrypted:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5zm0 6c1.4 0 2.8 1.1 2.8 2.5V11c.6 0 1.2.6 1.2 1.3v3.5c0 .6-.6 1.2-1.3 1.2H9.2c-.6 0-1.2-.6-1.2-1.3v-3.5c0-.6.6-1.2 1.2-1.2V9.5C9.2 8.1 10.6 7 12 7m0 1.2c-.8 0-1.5.5-1.5 1.3V11h3V9.5c0-.8-.7-1.3-1.5-1.3\"\/><\/svg>')}.lr-doc .md-status:after{background-color:var(--md-default-fg-color--light);content:\"\";display:inline-block;height:1.125em;-webkit-mask-image:var(--md-status);mask-image:var(--md-status);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-bottom;width:1.125em}.lr-doc .md-status:hover:after{background-color:currentcolor}.lr-doc .md-status--new:after{-webkit-mask-image:var(--md-status--new);mask-image:var(--md-status--new)}.lr-doc .md-status--deprecated:after{-webkit-mask-image:var(--md-status--deprecated);mask-image:var(--md-status--deprecated)}.lr-doc .md-status--encrypted:after{-webkit-mask-image:var(--md-status--encrypted);mask-image:var(--md-status--encrypted)}.lr-doc .md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.lr-doc .md-tabs{display:none}}@media screen and (max-width:76.234375em){.lr-doc .md-tabs{display:none}}.lr-doc .md-tabs[hidden]{pointer-events:none}.lr-doc [dir=ltr] .md-tabs__list{margin-left:.2rem}.lr-doc [dir=rtl] .md-tabs__list{margin-right:.2rem}.lr-doc .md-tabs__list{contain:content;display:flex;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.lr-doc .md-tabs__list::-webkit-scrollbar{display:none}.lr-doc .md-tabs__item{height:2.4rem;padding-left:.6rem;padding-right:.6rem}.lr-doc .md-tabs__item--active .md-tabs__link{color:inherit;opacity:1}.lr-doc .md-tabs__link{backface-visibility:hidden;display:flex;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.lr-doc .md-tabs__link:focus, .lr-doc .md-tabs__link:hover{color:inherit;opacity:1}.lr-doc [dir=ltr] .md-tabs__link svg{margin-right:.4rem}.lr-doc [dir=rtl] .md-tabs__link svg{margin-left:.4rem}.lr-doc .md-tabs__link svg{fill:currentcolor;height:1.3em}.lr-doc .md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.lr-doc .md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.lr-doc .md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.lr-doc .md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.lr-doc .md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.lr-doc .md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.lr-doc .md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.lr-doc .md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.lr-doc .md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.lr-doc .md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.lr-doc .md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.lr-doc .md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.lr-doc .md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.lr-doc .md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.lr-doc .md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.lr-doc .md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}.lr-doc{--md-tag-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"m5.41 21 .71-4h-4l.35-2h4l1.06-6h-4l.35-2h4l.71-4h2l-.71 4h6l.71-4h2l-.71 4h4l-.35 2h-4l-1.06 6h4l-.35 2h-4l-.71 4h-2l.71-4h-6l-.71 4zM9.53 9l-1.06 6h6l1.06-6z\"\/><\/svg>')}.lr-doc .md-typeset .md-tags:not([hidden]){display:inline-flex;flex-wrap:wrap;gap:.5em;margin-bottom:.75em;margin-top:-.125em}.lr-doc .md-typeset .md-tag{align-items:center;background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-flex;font-size:.64rem;font-size:min(.8em,.64rem);font-weight:700;gap:.5em;letter-spacing:normal;line-height:1.6;padding:.3125em .78125em}.lr-doc .md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.lr-doc .md-typeset .md-tag[href]:focus, .lr-doc .md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.lr-doc [id]>.md-typeset .md-tag{vertical-align:text-top}.lr-doc .md-typeset .md-tag-shadow{opacity:.5}.lr-doc .md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:\"\";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.lr-doc .md-typeset .md-tag-icon[href]:focus:before, .lr-doc .md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{transform:scale(.95)}75%{transform:scale(1)}to{transform:scale(.95)}}.lr-doc{--md-annotation-bg-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2\"\/><\/svg>');--md-annotation-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2\"\/><\/svg>')}.lr-doc .md-tooltip{backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.lr-doc .md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.lr-doc .md-tooltip--inline{font-weight:700;-webkit-user-select:none;user-select:none;width:auto}.lr-doc .md-tooltip--inline:not(.md-tooltip--active){transform:translateY(.2rem) scale(.9)}.lr-doc .md-tooltip--inline .md-tooltip__inner{font-size:.5rem;padding:.2rem .4rem}.lr-doc [hidden]+.md-tooltip--inline{display:none}.lr-doc .focus-visible>.md-tooltip, .lr-doc .md-tooltip:target{outline:var(--md-accent-fg-color) auto}.lr-doc .md-tooltip__inner{font-size:.64rem;padding:.8rem}.lr-doc .md-tooltip__inner.md-typeset>:first-child{margin-top:0}.lr-doc .md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.lr-doc .md-annotation{font-style:normal;font-weight:400;outline:none;text-align:initial;vertical-align:text-bottom;white-space:normal}.lr-doc [dir=rtl] .md-annotation{direction:rtl}.lr-doc code .md-annotation{font-family:var(--md-code-font-family);font-size:inherit}.lr-doc .md-annotation:not([hidden]){display:inline-block;line-height:1.25}.lr-doc .md-annotation__index{border-radius:.01px;cursor:pointer;display:inline-block;margin-left:.4ch;margin-right:.4ch;outline:none;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;vertical-align:text-top;z-index:0}.lr-doc .md-annotation .md-annotation__index{transition:z-index .25s}@media screen{.lr-doc .md-annotation__index{width:2.2ch}.lr-doc [data-md-visible]>.md-annotation__index{animation:pulse 2s infinite}.lr-doc .md-annotation__index:before{background:var(--md-default-bg-color);-webkit-mask-image:var(--md-annotation-bg-icon);mask-image:var(--md-annotation-bg-icon)}.lr-doc .md-annotation__index:after, .lr-doc .md-annotation__index:before{content:\"\";height:2.2ch;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:-.1ch;width:2.2ch;z-index:-1}.lr-doc .md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);-webkit-mask-image:var(--md-annotation-icon);mask-image:var(--md-annotation-icon);transform:scale(1.0001);transition:background-color .25s,transform .25s}.lr-doc .md-tooltip--active+.md-annotation__index:after{transform:rotate(45deg)}.lr-doc .md-tooltip--active+.md-annotation__index:after, .lr-doc :hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}}.lr-doc .md-tooltip--active+.md-annotation__index{animation-play-state:paused;transition-duration:0ms;z-index:2}.lr-doc .md-annotation__index [data-md-annotation-id]{display:inline-block}@media print{.lr-doc .md-annotation__index [data-md-annotation-id]{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);font-weight:700;padding:0 .6ch;white-space:nowrap}.lr-doc .md-annotation__index [data-md-annotation-id]:after{content:attr(data-md-annotation-id)}}.lr-doc .md-typeset .md-annotation-list{counter-reset:annotation;list-style:none!important}.lr-doc .md-typeset .md-annotation-list li{position:relative}.lr-doc [dir=ltr] .md-typeset .md-annotation-list li:before{left:-2.125em}.lr-doc [dir=rtl] .md-typeset .md-annotation-list li:before{right:-2.125em}.lr-doc .md-typeset .md-annotation-list li:before{background:var(--md-default-fg-color--lighter);border-radius:2ch;color:var(--md-default-bg-color);content:counter(annotation);counter-increment:annotation;font-size:.8875em;font-weight:700;height:2ch;line-height:1.25;min-width:2ch;padding:0 .6ch;position:absolute;text-align:center;top:.25em}.lr-doc{--md-tooltip-width:20rem;--md-tooltip-tail:0.3rem}.lr-doc .md-tooltip2{backface-visibility:hidden;color:var(--md-default-fg-color);font-family:var(--md-text-font-family);opacity:0;pointer-events:none;position:absolute;top:calc(var(--md-tooltip-host-y) + var(--md-tooltip-y));transform:translateY(-.4rem);transform-origin:calc(var(--md-tooltip-host-x) + var(--md-tooltip-x)) 0;transition:transform 0ms .25s,opacity .25s,z-index .25s;width:100%;z-index:0}.lr-doc .md-tooltip2:before{border-left:var(--md-tooltip-tail) solid #0000;border-right:var(--md-tooltip-tail) solid #0000;content:\"\";display:block;left:clamp(1.5 * .8rem,var(--md-tooltip-host-x) + var(--md-tooltip-x) - var(--md-tooltip-tail),100vw - 2 * var(--md-tooltip-tail) - 1.5 * .8rem);position:absolute;z-index:1}.lr-doc .md-tooltip2--top:before{border-top:var(--md-tooltip-tail) solid var(--md-default-bg-color);bottom:calc(var(--md-tooltip-tail)*-1 + .025rem);filter:drop-shadow(0 1px 0 hsla(0,0%,0%,.05))}.lr-doc .md-tooltip2--bottom:before{border-bottom:var(--md-tooltip-tail) solid var(--md-default-bg-color);filter:drop-shadow(0 -1px 0 hsla(0,0%,0%,.05));top:calc(var(--md-tooltip-tail)*-1 + .025rem)}.lr-doc .md-tooltip2--active{opacity:1;transform:translateY(0);transition:transform .4s cubic-bezier(0,1,.5,1),opacity .25s,z-index 0ms;z-index:2}.lr-doc .md-tooltip2__inner{scrollbar-gutter:stable;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);left:clamp(.8rem,var(--md-tooltip-host-x) - .8rem,100vw - var(--md-tooltip-width) - .8rem);max-height:40vh;max-width:calc(100vw - 1.6rem);position:relative;scrollbar-width:thin}.lr-doc .md-tooltip2__inner::-webkit-scrollbar{height:.2rem;width:.2rem}.lr-doc .md-tooltip2__inner::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.lr-doc .md-tooltip2__inner::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.lr-doc [role=dialog]>.md-tooltip2__inner{font-size:.64rem;overflow:auto;padding:0 .8rem;pointer-events:auto;width:var(--md-tooltip-width)}.lr-doc [role=dialog]>.md-tooltip2__inner:after, .lr-doc [role=dialog]>.md-tooltip2__inner:before{content:\"\";display:block;height:.8rem;position:sticky;width:100%;z-index:10}.lr-doc [role=dialog]>.md-tooltip2__inner:before{background:linear-gradient(var(--md-default-bg-color),#0000 75%);top:0}.lr-doc [role=dialog]>.md-tooltip2__inner:after{background:linear-gradient(#0000,var(--md-default-bg-color) 75%);bottom:0}.lr-doc [role=tooltip]>.md-tooltip2__inner{font-size:.5rem;font-weight:700;left:clamp(.8rem,var(--md-tooltip-host-x) + var(--md-tooltip-x) - var(--md-tooltip-width)\/2,100vw - var(--md-tooltip-width) - .8rem);max-width:min(100vw - 2 * .8rem,400px);padding:.2rem .4rem;-webkit-user-select:none;user-select:none;width:fit-content}.lr-doc .md-tooltip2__inner.md-typeset>:first-child{margin-top:0}.lr-doc .md-tooltip2__inner.md-typeset>:last-child{margin-bottom:0}.lr-doc [dir=ltr] .md-top{margin-left:50%}.lr-doc [dir=rtl] .md-top{margin-right:50%}.lr-doc .md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);cursor:pointer;display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.lr-doc .md-top{display:none}}.lr-doc [dir=rtl] .md-top{transform:translate(50%)}.lr-doc .md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}.lr-doc [dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.lr-doc .md-top:focus, .lr-doc .md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.lr-doc .md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}.lr-doc{--md-version-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 320 512\"><!--! Font Awesome Free 7.1.0 by @fontawesome - https:\/\/fontawesome.com License - https:\/\/fontawesome.com\/license\/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d=\"M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192h-256c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 7 34.8l128 128z\"\/><\/svg>')}.lr-doc .md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}.lr-doc [dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}.lr-doc [dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.lr-doc .md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}.lr-doc [dir=ltr] .md-version__current:after{margin-left:.4rem}.lr-doc [dir=rtl] .md-version__current:after{margin-right:.4rem}.lr-doc .md-version__current:after{background-color:currentcolor;content:\"\";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.lr-doc .md-version__alias{margin-left:.3rem;opacity:.7}.lr-doc .md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.lr-doc .md-version:focus-within .md-version__list, .lr-doc .md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (hover:none),(pointer:coarse){.lr-doc .md-version:hover .md-version__list{animation:hoverfix .25s forwards}.lr-doc .md-version:focus-within .md-version__list{animation:none}}.lr-doc .md-version__item{line-height:1.8rem}.lr-doc [dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}.lr-doc [dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.lr-doc .md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.lr-doc .md-version__link:focus, .lr-doc .md-version__link:hover{color:var(--md-accent-fg-color)}.lr-doc .md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}.lr-doc{--md-admonition-icon--note:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m3.1 5.07c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1-2.05-2.05 1-1c.1-.11.24-.16.38-.16m-1.97 1.74 2.06 2.06-6.06 6.06H7.07v-2.06z\"\/><\/svg>');--md-admonition-icon--abstract:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M17 9H7V7h10m0 6H7v-2h10m-3 6H7v-2h7M12 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m7 0h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2\"\/><\/svg>');--md-admonition-icon--info:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2\"\/><\/svg>');--md-admonition-icon--tip:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66-.12a.6.6 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22 2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.93 2.27\"\/><\/svg>');--md-admonition-icon--success:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59z\"\/><\/svg>');--md-admonition-icon--question:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10\"\/><\/svg>');--md-admonition-icon--warning:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z\"\/><\/svg>');--md-admonition-icon--failure:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\/><\/svg>');--md-admonition-icon--danger:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"m11.5 20 4.86-9.73H13V4l-5 9.73h3.5zM12 2c2.75 0 5.1 1 7.05 2.95S22 9.25 22 12s-1 5.1-2.95 7.05S14.75 22 12 22s-5.1-1-7.05-2.95S2 14.75 2 12s1-5.1 2.95-7.05S9.25 2 12 2\"\/><\/svg>');--md-admonition-icon--bug:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M11 13h2v1h-2zm10-8v6c0 5.5-3.8 10.7-9 12-5.2-1.3-9-6.5-9-12V5l9-4zm-4 5h-2.2c-.2-.6-.6-1.1-1.1-1.5l1.2-1.2-.7-.7L12.8 8H12c-.2 0-.5 0-.7.1L9.9 6.6l-.8.8 1.2 1.2c-.5.3-.9.8-1.1 1.4H7v1h2v1H7v1h2v1H7v1h2.2c.4 1.2 1.5 2 2.8 2s2.4-.8 2.8-2H17v-1h-2v-1h2v-1h-2v-1h2zm-6 2h2v-1h-2z\"\/><\/svg>');--md-admonition-icon--example:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M7 2v2h1v14a4 4 0 0 0 4 4 4 4 0 0 0 4-4V4h1V2zm4 14c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m2-4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m1-5h-4V4h4z\"\/><\/svg>');--md-admonition-icon--quote:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3z\"\/><\/svg>')}.lr-doc .md-typeset .admonition, .lr-doc .md-typeset details{background-color:var(--md-admonition-bg-color);border:.075rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid;transition:box-shadow 125ms}@media print{.lr-doc .md-typeset .admonition, .lr-doc .md-typeset details{box-shadow:none}}.lr-doc .md-typeset .admonition:focus-within, .lr-doc .md-typeset details:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.lr-doc .md-typeset .admonition>*, .lr-doc .md-typeset details>*{box-sizing:border-box}.lr-doc .md-typeset .admonition .admonition, .lr-doc .md-typeset .admonition details, .lr-doc .md-typeset details .admonition, .lr-doc .md-typeset details details{margin-bottom:1em;margin-top:1em}.lr-doc .md-typeset .admonition .md-typeset__scrollwrap, .lr-doc .md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.lr-doc .md-typeset .admonition .md-typeset__table, .lr-doc .md-typeset details .md-typeset__table{padding:0 .6rem}.lr-doc .md-typeset .admonition>.tabbed-set:only-child, .lr-doc .md-typeset details>.tabbed-set:only-child{margin-top:0}.lr-doc .md-typeset .admonition>:last-child, .lr-doc .md-typeset details>:last-child{margin-bottom:.6rem}.lr-doc [dir=ltr] .md-typeset .admonition-title, .lr-doc [dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}.lr-doc [dir=rtl] .md-typeset .admonition-title, .lr-doc [dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}.lr-doc [dir=ltr] .md-typeset .admonition-title, .lr-doc [dir=ltr] .md-typeset summary{border-left-width:.2rem}.lr-doc [dir=rtl] .md-typeset .admonition-title, .lr-doc [dir=rtl] .md-typeset summary{border-right-width:.2rem}.lr-doc [dir=ltr] .md-typeset .admonition-title, .lr-doc [dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}.lr-doc [dir=ltr] .md-typeset .admonition-title, .lr-doc [dir=ltr] .md-typeset summary, .lr-doc [dir=rtl] .md-typeset .admonition-title, .lr-doc [dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}.lr-doc [dir=rtl] .md-typeset .admonition-title, .lr-doc [dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.lr-doc .md-typeset .admonition-title, .lr-doc .md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}.lr-doc .md-typeset .admonition-title:last-child, .lr-doc .md-typeset summary:last-child{margin-bottom:0}.lr-doc [dir=ltr] .md-typeset .admonition-title:before, .lr-doc [dir=ltr] .md-typeset summary:before{left:.6rem}.lr-doc [dir=rtl] .md-typeset .admonition-title:before, .lr-doc [dir=rtl] .md-typeset summary:before{right:.6rem}.lr-doc .md-typeset .admonition-title:before, .lr-doc .md-typeset summary:before{background-color:#448aff;content:\"\";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.lr-doc .md-typeset .admonition-title code, .lr-doc .md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.lr-doc .md-typeset .admonition.note, .lr-doc .md-typeset details.note{border-color:#448aff}.lr-doc .md-typeset .admonition.note:focus-within, .lr-doc .md-typeset details.note:focus-within{box-shadow:0 0 0 .2rem #448aff1a}.lr-doc .md-typeset .note>.admonition-title, .lr-doc .md-typeset .note>summary{background-color:#448aff1a}.lr-doc .md-typeset .note>.admonition-title:before, .lr-doc .md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.lr-doc .md-typeset .note>.admonition-title:after, .lr-doc .md-typeset .note>summary:after{color:#448aff}.lr-doc .md-typeset .admonition.abstract, .lr-doc .md-typeset details.abstract{border-color:#00b0ff}.lr-doc .md-typeset .admonition.abstract:focus-within, .lr-doc .md-typeset details.abstract:focus-within{box-shadow:0 0 0 .2rem #00b0ff1a}.lr-doc .md-typeset .abstract>.admonition-title, .lr-doc .md-typeset .abstract>summary{background-color:#00b0ff1a}.lr-doc .md-typeset .abstract>.admonition-title:before, .lr-doc .md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.lr-doc .md-typeset .abstract>.admonition-title:after, .lr-doc .md-typeset .abstract>summary:after{color:#00b0ff}.lr-doc .md-typeset .admonition.info, .lr-doc .md-typeset details.info{border-color:#00b8d4}.lr-doc .md-typeset .admonition.info:focus-within, .lr-doc .md-typeset details.info:focus-within{box-shadow:0 0 0 .2rem #00b8d41a}.lr-doc .md-typeset .info>.admonition-title, .lr-doc .md-typeset .info>summary{background-color:#00b8d41a}.lr-doc .md-typeset .info>.admonition-title:before, .lr-doc .md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.lr-doc .md-typeset .info>.admonition-title:after, .lr-doc .md-typeset .info>summary:after{color:#00b8d4}.lr-doc .md-typeset .admonition.tip, .lr-doc .md-typeset details.tip{border-color:#00bfa5}.lr-doc .md-typeset .admonition.tip:focus-within, .lr-doc .md-typeset details.tip:focus-within{box-shadow:0 0 0 .2rem #00bfa51a}.lr-doc .md-typeset .tip>.admonition-title, .lr-doc .md-typeset .tip>summary{background-color:#00bfa51a}.lr-doc .md-typeset .tip>.admonition-title:before, .lr-doc .md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.lr-doc .md-typeset .tip>.admonition-title:after, .lr-doc .md-typeset .tip>summary:after{color:#00bfa5}.lr-doc .md-typeset .admonition.success, .lr-doc .md-typeset details.success{border-color:#00c853}.lr-doc .md-typeset .admonition.success:focus-within, .lr-doc .md-typeset details.success:focus-within{box-shadow:0 0 0 .2rem #00c8531a}.lr-doc .md-typeset .success>.admonition-title, .lr-doc .md-typeset .success>summary{background-color:#00c8531a}.lr-doc .md-typeset .success>.admonition-title:before, .lr-doc .md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.lr-doc .md-typeset .success>.admonition-title:after, .lr-doc .md-typeset .success>summary:after{color:#00c853}.lr-doc .md-typeset .admonition.question, .lr-doc .md-typeset details.question{border-color:#64dd17}.lr-doc .md-typeset .admonition.question:focus-within, .lr-doc .md-typeset details.question:focus-within{box-shadow:0 0 0 .2rem #64dd171a}.lr-doc .md-typeset .question>.admonition-title, .lr-doc .md-typeset .question>summary{background-color:#64dd171a}.lr-doc .md-typeset .question>.admonition-title:before, .lr-doc .md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.lr-doc .md-typeset .question>.admonition-title:after, .lr-doc .md-typeset .question>summary:after{color:#64dd17}.lr-doc .md-typeset .admonition.warning, .lr-doc .md-typeset details.warning{border-color:#ff9100}.lr-doc .md-typeset .admonition.warning:focus-within, .lr-doc .md-typeset details.warning:focus-within{box-shadow:0 0 0 .2rem #ff91001a}.lr-doc .md-typeset .warning>.admonition-title, .lr-doc .md-typeset .warning>summary{background-color:#ff91001a}.lr-doc .md-typeset .warning>.admonition-title:before, .lr-doc .md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.lr-doc .md-typeset .warning>.admonition-title:after, .lr-doc .md-typeset .warning>summary:after{color:#ff9100}.lr-doc .md-typeset .admonition.failure, .lr-doc .md-typeset details.failure{border-color:#ff5252}.lr-doc .md-typeset .admonition.failure:focus-within, .lr-doc .md-typeset details.failure:focus-within{box-shadow:0 0 0 .2rem #ff52521a}.lr-doc .md-typeset .failure>.admonition-title, .lr-doc .md-typeset .failure>summary{background-color:#ff52521a}.lr-doc .md-typeset .failure>.admonition-title:before, .lr-doc .md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.lr-doc .md-typeset .failure>.admonition-title:after, .lr-doc .md-typeset .failure>summary:after{color:#ff5252}.lr-doc .md-typeset .admonition.danger, .lr-doc .md-typeset details.danger{border-color:#ff1744}.lr-doc .md-typeset .admonition.danger:focus-within, .lr-doc .md-typeset details.danger:focus-within{box-shadow:0 0 0 .2rem #ff17441a}.lr-doc .md-typeset .danger>.admonition-title, .lr-doc .md-typeset .danger>summary{background-color:#ff17441a}.lr-doc .md-typeset .danger>.admonition-title:before, .lr-doc .md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.lr-doc .md-typeset .danger>.admonition-title:after, .lr-doc .md-typeset .danger>summary:after{color:#ff1744}.lr-doc .md-typeset .admonition.bug, .lr-doc .md-typeset details.bug{border-color:#f50057}.lr-doc .md-typeset .admonition.bug:focus-within, .lr-doc .md-typeset details.bug:focus-within{box-shadow:0 0 0 .2rem #f500571a}.lr-doc .md-typeset .bug>.admonition-title, .lr-doc .md-typeset .bug>summary{background-color:#f500571a}.lr-doc .md-typeset .bug>.admonition-title:before, .lr-doc .md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.lr-doc .md-typeset .bug>.admonition-title:after, .lr-doc .md-typeset .bug>summary:after{color:#f50057}.lr-doc .md-typeset .admonition.example, .lr-doc .md-typeset details.example{border-color:#7c4dff}.lr-doc .md-typeset .admonition.example:focus-within, .lr-doc .md-typeset details.example:focus-within{box-shadow:0 0 0 .2rem #7c4dff1a}.lr-doc .md-typeset .example>.admonition-title, .lr-doc .md-typeset .example>summary{background-color:#7c4dff1a}.lr-doc .md-typeset .example>.admonition-title:before, .lr-doc .md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.lr-doc .md-typeset .example>.admonition-title:after, .lr-doc .md-typeset .example>summary:after{color:#7c4dff}.lr-doc .md-typeset .admonition.quote, .lr-doc .md-typeset details.quote{border-color:#9e9e9e}.lr-doc .md-typeset .admonition.quote:focus-within, .lr-doc .md-typeset details.quote:focus-within{box-shadow:0 0 0 .2rem #9e9e9e1a}.lr-doc .md-typeset .quote>.admonition-title, .lr-doc .md-typeset .quote>summary{background-color:#9e9e9e1a}.lr-doc .md-typeset .quote>.admonition-title:before, .lr-doc .md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.lr-doc .md-typeset .quote>.admonition-title:after, .lr-doc .md-typeset .quote>summary:after{color:#9e9e9e}.lr-doc{--md-footnotes-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.42L5.83 13H21V7z\"\/><\/svg>')}.lr-doc .md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}.lr-doc [dir=ltr] .md-typeset .footnote>ol{margin-left:0}.lr-doc [dir=rtl] .md-typeset .footnote>ol{margin-right:0}.lr-doc .md-typeset .footnote>ol>li{transition:color 125ms}.lr-doc .md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.lr-doc .md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.lr-doc .md-typeset .footnote>ol>li:hover .footnote-backref, .lr-doc .md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.lr-doc .md-typeset .footnote>ol>li>:first-child{margin-top:0}.lr-doc .md-typeset .footnote-ref{font-size:.75em;font-weight:700}.lr-doc .md-typeset .footnote-ref{outline-offset:.1rem}.lr-doc .md-typeset [id^=\"fnref:\"]:target>.footnote-ref{outline:auto}.lr-doc .md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.lr-doc .md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}.lr-doc [dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.lr-doc .md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.lr-doc .md-typeset .footnote-backref:before{background-color:currentcolor;content:\"\";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}.lr-doc [dir=rtl] .md-typeset .footnote-backref:before{transform:scaleX(-1)}.lr-doc [dir=ltr] .md-typeset .headerlink{margin-left:.5rem}.lr-doc [dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.lr-doc .md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.lr-doc .md-typeset .headerlink{display:none}}.lr-doc .md-typeset .headerlink:focus, .lr-doc .md-typeset :hover>.headerlink, .lr-doc .md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.lr-doc .md-typeset .headerlink:focus, .lr-doc .md-typeset .headerlink:hover, .lr-doc .md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.lr-doc .md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.lr-doc .md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.lr-doc .md-typeset h1:target, .lr-doc .md-typeset h2:target, .lr-doc .md-typeset h3:target{--md-scroll-offset:0.2rem}.lr-doc .md-typeset h4:target{--md-scroll-offset:0.15rem}.lr-doc .md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.984375em){.lr-doc .md-typeset div.arithmatex{margin:0 -.8rem}.lr-doc .md-typeset div.arithmatex>*{width:min-content}}.lr-doc .md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto}.lr-doc .md-typeset div.arithmatex>* mjx-container{margin:0!important}.lr-doc .md-typeset div.arithmatex mjx-assistive-mml{height:0}.lr-doc .md-typeset .katex-html svg{max-width:revert}.lr-doc .md-typeset del.critic{background-color:var(--md-typeset-del-color)}.lr-doc .md-typeset del.critic, .lr-doc .md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.lr-doc .md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.lr-doc .md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.lr-doc .md-typeset .critic.comment:before{content:\"\/* \"}.lr-doc .md-typeset .critic.comment:after{content:\" *\/\"}.lr-doc .md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.lr-doc .md-typeset .critic.block>:first-child{margin-top:.5em}.lr-doc .md-typeset .critic.block>:last-child{margin-bottom:.5em}.lr-doc{--md-details-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z\"\/><\/svg>')}.lr-doc .md-typeset details{display:flow-root;overflow:visible;padding-top:0}.lr-doc .md-typeset details[open]>summary:after{transform:rotate(90deg)}.lr-doc .md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.lr-doc .md-typeset details:not([open])>summary{border-radius:.1rem}.lr-doc [dir=ltr] .md-typeset summary{padding-right:1.8rem}.lr-doc [dir=rtl] .md-typeset summary{padding-left:1.8rem}.lr-doc [dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}.lr-doc [dir=ltr] .md-typeset summary, .lr-doc [dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}.lr-doc [dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.lr-doc .md-typeset summary{cursor:pointer;display:block;min-height:1rem;overflow:hidden}.lr-doc .md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.lr-doc .md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.lr-doc [dir=ltr] .md-typeset summary:after{right:.4rem}.lr-doc [dir=rtl] .md-typeset summary:after{left:.4rem}.lr-doc .md-typeset summary:after{background-color:currentcolor;content:\"\";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}.lr-doc [dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.lr-doc .md-typeset summary::marker{display:none}.lr-doc .md-typeset summary::-webkit-details-marker{display:none}.lr-doc .md-typeset .emojione, .lr-doc .md-typeset .gemoji, .lr-doc .md-typeset .twemoji{--md-icon-size:1.125em;display:inline-flex;height:var(--md-icon-size);vertical-align:text-top}.lr-doc .md-typeset .emojione svg, .lr-doc .md-typeset .gemoji svg, .lr-doc .md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:var(--md-icon-size)}.lr-doc .md-typeset .lg, .lr-doc .md-typeset .xl, .lr-doc .md-typeset .xxl, .lr-doc .md-typeset .xxxl{vertical-align:text-bottom}.lr-doc .md-typeset .middle{vertical-align:middle}.lr-doc .md-typeset .lg{--md-icon-size:1.5em}.lr-doc .md-typeset .xl{--md-icon-size:2.25em}.lr-doc .md-typeset .xxl{--md-icon-size:3em}.lr-doc .md-typeset .xxxl{--md-icon-size:4em}.lr-doc .highlight .o, .lr-doc .highlight .ow{color:var(--md-code-hl-operator-color)}.lr-doc .highlight .p{color:var(--md-code-hl-punctuation-color)}.lr-doc .highlight .cpf, .lr-doc .highlight .l, .lr-doc .highlight .s, .lr-doc .highlight .s1, .lr-doc .highlight .s2, .lr-doc .highlight .sb, .lr-doc .highlight .sc, .lr-doc .highlight .si, .lr-doc .highlight .ss{color:var(--md-code-hl-string-color)}.lr-doc .highlight .cp, .lr-doc .highlight .se, .lr-doc .highlight .sh, .lr-doc .highlight .sr, .lr-doc .highlight .sx{color:var(--md-code-hl-special-color)}.lr-doc .highlight .il, .lr-doc .highlight .m, .lr-doc .highlight .mb, .lr-doc .highlight .mf, .lr-doc .highlight .mh, .lr-doc .highlight .mi, .lr-doc .highlight .mo{color:var(--md-code-hl-number-color)}.lr-doc .highlight .k, .lr-doc .highlight .kd, .lr-doc .highlight .kn, .lr-doc .highlight .kp, .lr-doc .highlight .kr, .lr-doc .highlight .kt{color:var(--md-code-hl-keyword-color)}.lr-doc .highlight .kc, .lr-doc .highlight .n{color:var(--md-code-hl-name-color)}.lr-doc .highlight .bp, .lr-doc .highlight .nb, .lr-doc .highlight .no{color:var(--md-code-hl-constant-color)}.lr-doc .highlight .nc, .lr-doc .highlight .ne, .lr-doc .highlight .nf, .lr-doc .highlight .nn{color:var(--md-code-hl-function-color)}.lr-doc .highlight .nd, .lr-doc .highlight .ni, .lr-doc .highlight .nl, .lr-doc .highlight .nt{color:var(--md-code-hl-keyword-color)}.lr-doc .highlight .c, .lr-doc .highlight .c1, .lr-doc .highlight .ch, .lr-doc .highlight .cm, .lr-doc .highlight .cs, .lr-doc .highlight .sd{color:var(--md-code-hl-comment-color)}.lr-doc .highlight .na, .lr-doc .highlight .nv, .lr-doc .highlight .vc, .lr-doc .highlight .vg, .lr-doc .highlight .vi{color:var(--md-code-hl-variable-color)}.lr-doc .highlight .ge, .lr-doc .highlight .gh, .lr-doc .highlight .go, .lr-doc .highlight .gp, .lr-doc .highlight .gr, .lr-doc .highlight .gs, .lr-doc .highlight .gt, .lr-doc .highlight .gu{color:var(--md-code-hl-generic-color)}.lr-doc .highlight .gd, .lr-doc .highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.lr-doc .highlight .gd{background-color:var(--md-typeset-del-color)}.lr-doc .highlight .gi{background-color:var(--md-typeset-ins-color)}.lr-doc .highlight .hll{background-color:var(--md-code-hl-color--light);box-shadow:2px 0 0 0 var(--md-code-hl-color) inset;display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.lr-doc .highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.lr-doc .highlight span.filename+pre{margin-top:0}.lr-doc .highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.lr-doc .highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:sticky;-webkit-user-select:none;user-select:none;z-index:3}.lr-doc .highlight code a[id]{position:absolute;visibility:hidden}.lr-doc .highlight code[data-md-copying]{display:initial}.lr-doc .highlight code[data-md-copying] .hll{display:contents}.lr-doc .highlight code[data-md-copying] .md-annotation{display:none}.lr-doc .highlighttable{display:flow-root}.lr-doc .highlighttable tbody, .lr-doc .highlighttable td{display:block;padding:0}.lr-doc .highlighttable tr{display:flex}.lr-doc .highlighttable pre{margin:0}.lr-doc .highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.lr-doc .highlighttable th.filename span.filename{margin-top:0}.lr-doc .highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;user-select:none}.lr-doc .highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset}.lr-doc .highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.lr-doc .highlighttable .linenodiv span[class]{padding-right:.5882352941em}.lr-doc .highlighttable .code{flex:1;min-width:0}.lr-doc .linenodiv a{color:inherit}.lr-doc .md-typeset .highlighttable{direction:ltr;margin:1em 0}.lr-doc .md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.lr-doc .md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.lr-doc .md-typeset .highlight+.result:after{clear:both;content:\"\";display:block}@media screen and (max-width:44.984375em){.lr-doc .md-content__inner>.highlight{margin:1em -.8rem}.lr-doc .md-content__inner>.highlight>.filename, .lr-doc .md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code, .lr-doc .md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename, .lr-doc .md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos, .lr-doc .md-content__inner>.highlight>pre>code{border-radius:0}.lr-doc .md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.lr-doc .md-typeset .keys kbd:after, .lr-doc .md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.lr-doc .md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.lr-doc .md-typeset .keys .key-alt:before, .lr-doc .md-typeset .keys .key-left-alt:before, .lr-doc .md-typeset .keys .key-right-alt:before{content:\"\u2387\";padding-right:.4em}.lr-doc .md-typeset .keys .key-command:before, .lr-doc .md-typeset .keys .key-left-command:before, .lr-doc .md-typeset .keys .key-right-command:before{content:\"\u2318\";padding-right:.4em}.lr-doc .md-typeset .keys .key-control:before, .lr-doc .md-typeset .keys .key-left-control:before, .lr-doc .md-typeset .keys .key-right-control:before{content:\"\u2303\";padding-right:.4em}.lr-doc .md-typeset .keys .key-left-meta:before, .lr-doc .md-typeset .keys .key-meta:before, .lr-doc .md-typeset .keys .key-right-meta:before{content:\"\u25c6\";padding-right:.4em}.lr-doc .md-typeset .keys .key-left-option:before, .lr-doc .md-typeset .keys .key-option:before, .lr-doc .md-typeset .keys .key-right-option:before{content:\"\u2325\";padding-right:.4em}.lr-doc .md-typeset .keys .key-left-shift:before, .lr-doc .md-typeset .keys .key-right-shift:before, .lr-doc .md-typeset .keys .key-shift:before{content:\"\u21e7\";padding-right:.4em}.lr-doc .md-typeset .keys .key-left-super:before, .lr-doc .md-typeset .keys .key-right-super:before, .lr-doc .md-typeset .keys .key-super:before{content:\"\u2756\";padding-right:.4em}.lr-doc .md-typeset .keys .key-left-windows:before, .lr-doc .md-typeset .keys .key-right-windows:before, .lr-doc .md-typeset .keys .key-windows:before{content:\"\u229e\";padding-right:.4em}.lr-doc .md-typeset .keys .key-arrow-down:before{content:\"\u2193\";padding-right:.4em}.lr-doc .md-typeset .keys .key-arrow-left:before{content:\"\u2190\";padding-right:.4em}.lr-doc .md-typeset .keys .key-arrow-right:before{content:\"\u2192\";padding-right:.4em}.lr-doc .md-typeset .keys .key-arrow-up:before{content:\"\u2191\";padding-right:.4em}.lr-doc .md-typeset .keys .key-backspace:before{content:\"\u232b\";padding-right:.4em}.lr-doc .md-typeset .keys .key-backtab:before{content:\"\u21e4\";padding-right:.4em}.lr-doc .md-typeset .keys .key-caps-lock:before{content:\"\u21ea\";padding-right:.4em}.lr-doc .md-typeset .keys .key-clear:before{content:\"\u2327\";padding-right:.4em}.lr-doc .md-typeset .keys .key-context-menu:before{content:\"\u2630\";padding-right:.4em}.lr-doc .md-typeset .keys .key-delete:before{content:\"\u2326\";padding-right:.4em}.lr-doc .md-typeset .keys .key-eject:before{content:\"\u23cf\";padding-right:.4em}.lr-doc .md-typeset .keys .key-end:before{content:\"\u2913\";padding-right:.4em}.lr-doc .md-typeset .keys .key-escape:before{content:\"\u238b\";padding-right:.4em}.lr-doc .md-typeset .keys .key-home:before{content:\"\u2912\";padding-right:.4em}.lr-doc .md-typeset .keys .key-insert:before{content:\"\u2380\";padding-right:.4em}.lr-doc .md-typeset .keys .key-page-down:before{content:\"\u21df\";padding-right:.4em}.lr-doc .md-typeset .keys .key-page-up:before{content:\"\u21de\";padding-right:.4em}.lr-doc .md-typeset .keys .key-print-screen:before{content:\"\u2399\";padding-right:.4em}.lr-doc .md-typeset .keys .key-tab:after{content:\"\u21e5\";padding-left:.4em}.lr-doc .md-typeset .keys .key-num-enter:after{content:\"\u2324\";padding-left:.4em}.lr-doc .md-typeset .keys .key-enter:after{content:\"\u23ce\";padding-left:.4em}.lr-doc{--md-tabbed-icon--prev:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M15.41 16.58 10.83 12l4.58-4.59L14 6l-6 6 6 6z\"\/><\/svg>');--md-tabbed-icon--next:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6z\"\/><\/svg>')}.lr-doc .md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.lr-doc .md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.lr-doc .md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.lr-doc .md-typeset .tabbed-set>input.focus-visible~.tabbed-labels:before{background-color:var(--md-accent-fg-color)}.lr-doc .md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.lr-doc .md-typeset .tabbed-labels{display:contents}}@media screen{.lr-doc .js .md-typeset .tabbed-labels{position:relative}.lr-doc .js .md-typeset .tabbed-labels:before{background:var(--md-default-fg-color);bottom:0;content:\"\";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,background-color .25s,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.lr-doc .md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.lr-doc .md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.lr-doc .md-typeset .tabbed-labels>label:first-child{order:1}.lr-doc .md-typeset .tabbed-labels>label:nth-child(2){order:2}.lr-doc .md-typeset .tabbed-labels>label:nth-child(3){order:3}.lr-doc .md-typeset .tabbed-labels>label:nth-child(4){order:4}.lr-doc .md-typeset .tabbed-labels>label:nth-child(5){order:5}.lr-doc .md-typeset .tabbed-labels>label:nth-child(6){order:6}.lr-doc .md-typeset .tabbed-labels>label:nth-child(7){order:7}.lr-doc .md-typeset .tabbed-labels>label:nth-child(8){order:8}.lr-doc .md-typeset .tabbed-labels>label:nth-child(9){order:9}.lr-doc .md-typeset .tabbed-labels>label:nth-child(10){order:10}.lr-doc .md-typeset .tabbed-labels>label:nth-child(11){order:11}.lr-doc .md-typeset .tabbed-labels>label:nth-child(12){order:12}.lr-doc .md-typeset .tabbed-labels>label:nth-child(13){order:13}.lr-doc .md-typeset .tabbed-labels>label:nth-child(14){order:14}.lr-doc .md-typeset .tabbed-labels>label:nth-child(15){order:15}.lr-doc .md-typeset .tabbed-labels>label:nth-child(16){order:16}.lr-doc .md-typeset .tabbed-labels>label:nth-child(17){order:17}.lr-doc .md-typeset .tabbed-labels>label:nth-child(18){order:18}.lr-doc .md-typeset .tabbed-labels>label:nth-child(19){order:19}.lr-doc .md-typeset .tabbed-labels>label:nth-child(20){order:20}}.lr-doc .md-typeset .tabbed-labels>label:hover{color:var(--md-default-fg-color)}.lr-doc .md-typeset .tabbed-labels>label>[href]:first-child{color:inherit}.lr-doc .md-typeset .tabbed-labels--linked>label{padding:0}.lr-doc .md-typeset .tabbed-labels--linked>label>a{display:block;padding:.78125em 1.25em .625em}.lr-doc .md-typeset .tabbed-content{width:100%}@media print{.lr-doc .md-typeset .tabbed-content{display:contents}}.lr-doc .md-typeset .tabbed-block{display:none}@media print{.lr-doc .md-typeset .tabbed-block{display:block}.lr-doc .md-typeset .tabbed-block:first-child{order:1}.lr-doc .md-typeset .tabbed-block:nth-child(2){order:2}.lr-doc .md-typeset .tabbed-block:nth-child(3){order:3}.lr-doc .md-typeset .tabbed-block:nth-child(4){order:4}.lr-doc .md-typeset .tabbed-block:nth-child(5){order:5}.lr-doc .md-typeset .tabbed-block:nth-child(6){order:6}.lr-doc .md-typeset .tabbed-block:nth-child(7){order:7}.lr-doc .md-typeset .tabbed-block:nth-child(8){order:8}.lr-doc .md-typeset .tabbed-block:nth-child(9){order:9}.lr-doc .md-typeset .tabbed-block:nth-child(10){order:10}.lr-doc .md-typeset .tabbed-block:nth-child(11){order:11}.lr-doc .md-typeset .tabbed-block:nth-child(12){order:12}.lr-doc .md-typeset .tabbed-block:nth-child(13){order:13}.lr-doc .md-typeset .tabbed-block:nth-child(14){order:14}.lr-doc .md-typeset .tabbed-block:nth-child(15){order:15}.lr-doc .md-typeset .tabbed-block:nth-child(16){order:16}.lr-doc .md-typeset .tabbed-block:nth-child(17){order:17}.lr-doc .md-typeset .tabbed-block:nth-child(18){order:18}.lr-doc .md-typeset .tabbed-block:nth-child(19){order:19}.lr-doc .md-typeset .tabbed-block:nth-child(20){order:20}}.lr-doc .md-typeset .tabbed-block>.highlight:first-child>pre, .lr-doc .md-typeset .tabbed-block>pre:first-child{margin:0}.lr-doc .md-typeset .tabbed-block>.highlight:first-child>pre>code, .lr-doc .md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.lr-doc .md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.lr-doc .md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.lr-doc .md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename, .lr-doc .md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.lr-doc .md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.lr-doc .md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.lr-doc .md-typeset .tabbed-block>.tabbed-set{margin:0}.lr-doc .md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.lr-doc .md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.lr-doc .md-typeset .tabbed-button:after{background-color:currentcolor;content:\"\";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.lr-doc .md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}.lr-doc [dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.lr-doc .md-typeset .tabbed-control[hidden]{opacity:0}.lr-doc .md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.lr-doc .md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.984375em){.lr-doc [dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}.lr-doc [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.lr-doc .md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}.lr-doc [dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}.lr-doc [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.lr-doc .md-content__inner>.tabbed-set .tabbed-labels:after{content:\"\"}.lr-doc [dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}.lr-doc [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}.lr-doc [dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}.lr-doc [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.lr-doc .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}.lr-doc [dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}.lr-doc [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}.lr-doc [dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}.lr-doc [dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.lr-doc .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.lr-doc .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child, .lr-doc .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10), .lr-doc .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11), .lr-doc .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12), .lr-doc .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13), .lr-doc .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14), .lr-doc .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15), .lr-doc .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16), .lr-doc .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17), .lr-doc .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18), .lr-doc .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19), .lr-doc .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2), .lr-doc .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20), .lr-doc .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3), .lr-doc .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4), .lr-doc .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5), .lr-doc .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6), .lr-doc .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7), .lr-doc .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8), .lr-doc .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-default-fg-color)}.lr-doc .md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child, .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8), .lr-doc .md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child, .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8), .lr-doc .md-typeset [role=dialog] .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9), .lr-doc .no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child, .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8), .lr-doc .no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child, .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8), .lr-doc [role=dialog] .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-default-fg-color)}}.lr-doc .md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child, .lr-doc .md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10), .lr-doc .md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11), .lr-doc .md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12), .lr-doc .md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13), .lr-doc .md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14), .lr-doc .md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15), .lr-doc .md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16), .lr-doc .md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17), .lr-doc .md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18), .lr-doc .md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19), .lr-doc .md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2), .lr-doc .md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20), .lr-doc .md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3), .lr-doc .md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4), .lr-doc .md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5), .lr-doc .md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6), .lr-doc .md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7), .lr-doc .md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8), .lr-doc .md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.lr-doc .md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child, .lr-doc .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10), .lr-doc .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11), .lr-doc .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12), .lr-doc .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13), .lr-doc .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14), .lr-doc .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15), .lr-doc .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16), .lr-doc .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17), .lr-doc .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18), .lr-doc .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19), .lr-doc .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2), .lr-doc .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20), .lr-doc .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3), .lr-doc .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4), .lr-doc .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5), .lr-doc .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6), .lr-doc .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7), .lr-doc .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8), .lr-doc .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}.lr-doc{--md-tasklist-icon:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m16.28-2.72a.75.75 0 0 0-.018-1.042.75.75 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.75.75 0 0 0-1.042.018.75.75 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z\"\/><\/svg>');--md-tasklist-icon--checked:url('data:image\/svg+xml;charset=utf-8,<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12m16.28-2.72a.75.75 0 0 0-.018-1.042.75.75 0 0 0-1.042-.018l-5.97 5.97-2.47-2.47a.75.75 0 0 0-1.042.018.75.75 0 0 0-.018 1.042l3 3a.75.75 0 0 0 1.06 0Z\"\/><\/svg>')}.lr-doc .md-typeset .task-list-item{list-style-type:none;position:relative}.lr-doc [dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}.lr-doc [dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.lr-doc .md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.lr-doc .md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}.lr-doc [dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}.lr-doc [dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.lr-doc .md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:\"\";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.lr-doc .md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}@media print{.lr-doc .giscus, .lr-doc [id=__comments]{display:none}}.lr-doc>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);--md-mermaid-sequence-actor-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actor-fg-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-actor-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-actor-line-color:var(--md-default-fg-color--lighter);--md-mermaid-sequence-actorman-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-actorman-line-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-box-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-box-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-label-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-label-fg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-loop-bg-color:var(--md-mermaid-node-bg-color);--md-mermaid-sequence-loop-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-loop-border-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-message-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-message-line-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-bg-color:var(--md-mermaid-label-bg-color);--md-mermaid-sequence-note-fg-color:var(--md-mermaid-edge-color);--md-mermaid-sequence-note-border-color:var(--md-mermaid-label-fg-color);--md-mermaid-sequence-number-bg-color:var(--md-mermaid-node-fg-color);--md-mermaid-sequence-number-fg-color:var(--md-accent-bg-color)}.lr-doc .mermaid{line-height:normal;margin:1em 0}.lr-doc .md-typeset .grid{grid-gap:.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));margin:1em 0}.lr-doc .md-typeset .grid.cards>ol, .lr-doc .md-typeset .grid.cards>ul{display:contents}.lr-doc .md-typeset .grid.cards>ol>li, .lr-doc .md-typeset .grid.cards>ul>li, .lr-doc .md-typeset .grid>.card{border:.05rem solid var(--md-default-fg-color--lightest);border-radius:.1rem;display:block;margin:0;padding:.8rem;transition:border .25s,box-shadow .25s}.lr-doc .md-typeset .grid.cards>ol>li:focus-within, .lr-doc .md-typeset .grid.cards>ol>li:hover, .lr-doc .md-typeset .grid.cards>ul>li:focus-within, .lr-doc .md-typeset .grid.cards>ul>li:hover, .lr-doc .md-typeset .grid>.card:focus-within, .lr-doc .md-typeset .grid>.card:hover{border-color:#0000;box-shadow:var(--md-shadow-z2)}.lr-doc .md-typeset .grid.cards>ol>li>hr, .lr-doc .md-typeset .grid.cards>ul>li>hr, .lr-doc .md-typeset .grid>.card>hr{margin-bottom:1em;margin-top:1em}.lr-doc .md-typeset .grid.cards>ol>li>:first-child, .lr-doc .md-typeset .grid.cards>ul>li>:first-child, .lr-doc .md-typeset .grid>.card>:first-child{margin-top:0}.lr-doc .md-typeset .grid.cards>ol>li>:last-child, .lr-doc .md-typeset .grid.cards>ul>li>:last-child, .lr-doc .md-typeset .grid>.card>:last-child{margin-bottom:0}.lr-doc .md-typeset .grid>*, .lr-doc .md-typeset .grid>.admonition, .lr-doc .md-typeset .grid>.highlight>*, .lr-doc .md-typeset .grid>.highlighttable, .lr-doc .md-typeset .grid>.md-typeset details, .lr-doc .md-typeset .grid>details, .lr-doc .md-typeset .grid>pre{margin-bottom:0;margin-top:0}.lr-doc .md-typeset .grid>.highlight>pre:only-child, .lr-doc .md-typeset .grid>.highlight>pre>code, .lr-doc .md-typeset .grid>.highlighttable, .lr-doc .md-typeset .grid>.highlighttable>tbody, .lr-doc .md-typeset .grid>.highlighttable>tbody>tr, .lr-doc .md-typeset .grid>.highlighttable>tbody>tr>.code, .lr-doc .md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight, .lr-doc .md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre, .lr-doc .md-typeset .grid>.highlighttable>tbody>tr>.code>.highlight>pre>code{height:100%}.lr-doc .md-typeset .grid>.tabbed-set{margin-bottom:0;margin-top:0}@media screen and (min-width:45em){.lr-doc [dir=ltr] .md-typeset .inline{float:left}.lr-doc [dir=rtl] .md-typeset .inline{float:right}.lr-doc [dir=ltr] .md-typeset .inline{margin-right:.8rem}.lr-doc [dir=rtl] .md-typeset .inline{margin-left:.8rem}.lr-doc .md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}.lr-doc [dir=ltr] .md-typeset .inline.end{float:right}.lr-doc [dir=rtl] .md-typeset .inline.end{float:left}.lr-doc [dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}.lr-doc [dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}}\n<\/style>\n\n<style>\n@font-face{\n  font-family: 'Roboto';\n  font-style: italic;\n  font-weight: 300;\n  font-stretch: normal;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/roboto\/v51\/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAj-lg.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto';\n  font-style: italic;\n  font-weight: 400;\n  font-stretch: normal;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/roboto\/v51\/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLoHQuAj-lg.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto';\n  font-style: italic;\n  font-weight: 700;\n  font-stretch: normal;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/roboto\/v51\/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLmbXuAj-lg.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto';\n  font-style: normal;\n  font-weight: 300;\n  font-stretch: normal;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/roboto\/v51\/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiA8.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto';\n  font-style: normal;\n  font-weight: 400;\n  font-stretch: normal;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/roboto\/v51\/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiA8.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto';\n  font-style: normal;\n  font-weight: 700;\n  font-stretch: normal;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/roboto\/v51\/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiA8.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto Mono';\n  font-style: italic;\n  font-weight: 400;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/robotomono\/v31\/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrlnANW6Cpw.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto Mono';\n  font-style: italic;\n  font-weight: 700;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/robotomono\/v31\/L0xoDF4xlVMF-BfR8bXMIjhOsXG-q2oeuFoqFrmAB9W6Cpw.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto Mono';\n  font-style: normal;\n  font-weight: 400;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/robotomono\/v31\/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vq_ROW9.ttf) format('truetype');\n}\n@font-face{\n  font-family: 'Roboto Mono';\n  font-style: normal;\n  font-weight: 700;\n  font-display: fallback;\n  src: url(https:\/\/fonts.gstatic.com\/s\/robotomono\/v31\/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_Of2_ROW9.ttf) format('truetype');\n}\n\n<\/style>\n\n<style>\n.lr-doc \/* =========================\n   LightREST - CSS (clean v3)\n   ========================= *\/\n\n\/* ===== Layout (largeur contenu) ===== *\/\n.md-grid{\n  max-width: min(90vw, 110rem);\n}.lr-doc \/* ===== Sidebar (lisibilit\u00e9 + indentation) ===== *\/\n.md-sidebar .md-nav__title{\n  font-weight: 700;\n  letter-spacing: .02em;\n  padding-left: 0 !important;\n}.lr-doc .md-sidebar .md-nav__item--section > .md-nav__link{\n  font-weight: 700;\n  text-transform: uppercase;\n  font-size: .78rem;\n  opacity: .85;\n  padding-left: 0 !important;\n}.lr-doc .md-sidebar .md-nav__link{\n  padding: .25rem 0 .25rem 1.25rem !important;\n  text-decoration: none;\n}.lr-doc .md-sidebar .md-nav__link--active{\n  font-weight: 700;\n  border-left: 3px solid #004080;\n}.lr-doc .md-sidebar .md-nav__link--active .md-ellipsis{\n  color: #004080;\n}.lr-doc \/* ===== Liens du contenu : noirs + soulignement pointill\u00e9 (hors menus) ===== *\/\n.md-content .md-typeset a, .lr-doc .md-content .md-typeset a:visited{\n  color: #111827 !important;\n  text-decoration-line: underline !important;\n  text-decoration-style: dotted !important;\n  text-decoration-thickness: 1px !important;\n  text-underline-offset: .18em !important;\n}.lr-doc .md-content .md-typeset a:hover{\n  color: #000000 !important;\n  background: rgba(0,0,0,.04);\n  border-radius: 3px;\n}.lr-doc .md-content .md-typeset a:focus-visible{\n  outline: 2px dotted #111827;\n  outline-offset: 2px;\n}.lr-doc \/* Exclusions menus *\/\n.md-nav a, .lr-doc .md-header a, .lr-doc .md-tabs a, .lr-doc .md-footer a{\n  color: inherit !important;\n  text-decoration: none !important;\n  background: transparent !important;\n  border-radius: 0 !important;\n}.lr-doc \/* ===== Polices code ===== *\/\n.md-typeset code, .lr-doc .md-typeset pre{\n  font-family: \"Lucida Console\", \"Consolas\", \"Courier New\", monospace;\n}.lr-doc \/* Code standard (gris clair) *\/\n.md-typeset pre{\n  background-color: #f3f4f6;\n  color: #1f2937;\n  border-radius: 2px;\n}.lr-doc \/* ===== Highlight dans les blocs code (exemples) ===== *\/\n.md-typeset pre > code .lr-hl{\n  color: #ffd54a;\n  font-weight: 700;\n  background: rgba(255, 213, 74, 0.12);\n  border-radius: 3px;\n  padding: 0 .15em;\n}.lr-doc \/* ===== Prototypage (HTML <pre>) ===== *\/\n.md-typeset pre.lr-proto{\n  background-color: #f3f4f6;\n  color: #1f2937;\n  border-radius: 8px;\n  padding: .6rem .8rem;\n  overflow-x: auto;\n  overflow-y: hidden;\n  white-space: pre;\n  max-width: 100%;\n  display: block;\n}.lr-doc \/* ===== Tables globales ===== *\/\n.md-typeset table{\n  border: 1px solid rgba(0,0,0,.12);\n  border-collapse: collapse;\n  width: 100%;\n  table-layout: fixed;\n  background: transparent !important; \/* pas de gris *\/\n}.lr-doc .md-typeset table th, .lr-doc .md-typeset table td{\n  border-bottom: 1px solid rgba(0,0,0,.12);\n  padding: .6rem .8rem;\n  vertical-align: top;\n}.lr-doc .md-typeset table thead th{\n  font-weight: 700;\n  background: transparent !important; \/* pas de gris *\/\n  border-bottom: 2px solid rgba(0,0,0,.12) !important;\n}.lr-doc \/* Wrappers Material autour des tables *\/\n.md-typeset .md-typeset__scrollwrap, .lr-doc .md-typeset .md-typeset__table{\n  width: 100% !important;\n  max-width: 100% !important;\n}.lr-doc \/* Tables membres\/constantes : NOM plus gros + code sans fond *\/\n.md-typeset table td:first-child code{\n  font-size: 0.70rem !important;\n  font-weight: 500 !important;\n  background: transparent !important;\n  padding: 0 !important;\n  border-radius: 0 !important;\n}.lr-doc \/* ===== Cartes de sections (lr-secwrap) ===== *\/\n.md-typeset .lr-secwrap{\n  margin: 1.1rem 0 !important;\n  border: 1px solid rgba(0,0,0,.12) !important;\n  border-radius: 12px !important;\n  overflow: hidden !important;\n  background: #fff !important;\n}.lr-doc .md-typeset .lr-secwrap .lr-sec{\n  margin: 0 !important;\n  padding: .60rem 1rem !important;\n  font-weight: 900 !important;\n  border-bottom: 1px solid rgba(0,0,0,.10) !important;\n  background: #f3f4f6 !important;\n}.lr-doc .md-typeset .lr-secwrap .lr-secbody{\n  padding: .65rem .9rem !important;\n}.lr-doc \/* \u00c9vite le double cadre : la carte porte la bordure, .lr-doc pas la table *\/\n.md-typeset .lr-secwrap .lr-secbody table{\n  margin: 0 !important;\n  border: 0 !important;\n  width: 100% !important;\n  background: transparent !important;\n}.lr-doc .md-typeset .lr-secwrap .lr-secbody .md-typeset__scrollwrap, .lr-doc .md-typeset .lr-secwrap .lr-secbody .md-typeset__table{\n  margin: 0 !important;\n}.lr-doc .md-typeset .lr-secwrap .lr-secbody .md-typeset__scrollwrap table, .lr-doc .md-typeset .lr-secwrap .lr-secbody .md-typeset__table table{\n  border: 0 !important;\n  margin: 0 !important;\n}.lr-doc \/* Couleurs par section *\/\n.md-typeset .lr-secwrap-proto{ border-left: 7px solid rgba(107,114,128,.85) !important; }.lr-doc .md-typeset .lr-secwrap-proto .lr-sec{ background: rgba(107,114,128,.10) !important; }.lr-doc .md-typeset .lr-secwrap-params{ border-left: 7px solid rgba(0,64,128,.90) !important; }.lr-doc .md-typeset .lr-secwrap-params .lr-sec{ background: rgba(0,64,128,.08) !important; }.lr-doc .md-typeset .lr-secwrap-returns{ border-left: 7px solid rgba(16,185,129,.90) !important; }.lr-doc .md-typeset .lr-secwrap-returns .lr-sec{ background: rgba(16,185,129,.10) !important; }.lr-doc .md-typeset .lr-empty{\n  color: rgba(0,0,0,.6);\n  font-style: italic;\n}.lr-doc \/* =========================================================\n   Blocs repliables (details.note) : header bleu + chevron \u00e0 gauche\n   ========================================================= *\/\n\n\/* Cache le marker natif *\/\n.md-content .md-typeset details.note > summary::-webkit-details-marker{ display:none !important; }.lr-doc .md-content .md-typeset details.note > summary::marker{ content:\"\" !important; }.lr-doc .md-typeset details.note > summary{\n  background-color: #004080;\n  color: #ffffff;\n  font-weight: 600;\n  border-radius: 0;\n\n  position: relative !important;\n  padding-left: 2.2rem !important; \/* place chevron *\/\n  display: flex !important;\n  align-items: center !important;\n}.lr-doc \/* Supprime l\u2019ic\u00f4ne \"note\" par d\u00e9faut *\/\n.md-typeset details.note > summary::before{\n  display: none !important;\n}.lr-doc \/* Chevron *\/\n.md-content .md-typeset details.note > summary::after{\n  content: \"\u25b8\" !important;\n  position: absolute !important;\n  left: .9rem !important;\n  top: 50% !important;\n\n  color: #4f8cff !important;\n  font-size: 1.2rem !important;\n  font-weight: 900 !important;\n  line-height: 1 !important;\n  opacity: 0.95 !important;\n\n  transform: translateY(-50%) rotate(0deg) !important;\n  transition: transform .15s ease !important;\n}.lr-doc .md-content .md-typeset details.note[open] > summary::after{\n  transform: translateY(-50%) rotate(90deg) !important;\n}.lr-doc \/* Ic\u00f4ne Material (si pr\u00e9sente) \u00e0 droite *\/\n.md-typeset details.note > summary .md-details__icon{\n  margin-left: auto;\n  display: inline-flex !important;\n  opacity: 1 !important;\n  color: #ffffff !important;\n  transition: transform .15s ease;\n}.lr-doc .md-typeset details.note > summary .md-details__icon svg{\n  fill: #ffffff !important;\n}.lr-doc .md-typeset details.note[open] > summary .md-details__icon{\n  transform: rotate(180deg);\n}.lr-doc \/* Ic\u00f4nes dans le titre (summary) : twemoji plus grand *\/\n.md-typeset details > summary .twemoji{ display:inline-flex !important; width:2.15em !important; height:2.15em !important; }.lr-doc .md-typeset details > summary .twemoji svg, .lr-doc .md-typeset details > summary .twemoji img{ width:100% !important; height:100% !important; }.lr-doc \/* =========================================================\n   Admonitions : harmonisation titres (toutes sections)\n   ========================================================= *\/\n\n\/* Gabarit unique pour TOUS les titres *\/\n.md-typeset .admonition > .admonition-title{\n  display: block !important;\n  position: relative !important;\n  margin: 0 !important;\n\n  min-height: 2.35rem !important;\n  padding: .60rem 1rem .60rem 2.8rem !important;\n\n  line-height: 1.25 !important;\n  font-weight: 900 !important;\n}.lr-doc \/* Ic\u00f4ne : position fixe *\/\n.md-typeset .admonition > .admonition-title::before{\n  position: absolute !important;\n  left: 1rem !important;\n  top: 50% !important;\n  transform: translateY(-50%) !important;\n\n  width: 1.20em !important;\n  height: 1.20em !important;\n  margin: 0 !important;\n  opacity: 1 !important;\n}.lr-doc \/* Contenu : padding homog\u00e8ne (\u00e9vite diff\u00e9rences \u201cPr\u00e9sentation\u201d) *\/\n.md-typeset .admonition > :not(.admonition-title){\n  padding: .65rem .9rem !important;\n}.lr-doc \/* ===== Pr\u00e9sentation (abstract) : style carte + accent orange (sans casser le gabarit) ===== *\/\n.md-typeset .admonition.abstract{\n  margin: 1.1rem 0 !important;\n  border: 1px solid rgba(0,0,0,.12) !important;\n  border-left: 7px solid #f59e0b !important;\n  border-radius: 12px !important;\n  overflow: hidden !important;\n  background: #fff !important;\n  padding: 0 !important;\n  box-shadow: none !important;\n}.lr-doc .md-typeset .admonition.abstract > .admonition-title{\n  background: rgba(245,158,11,.10) !important;\n  border-bottom: 1px solid rgba(0,0,0,.10) !important;\n}.lr-doc .md-typeset .admonition.abstract > .admonition-title::before{\n  color: #f59e0b !important;\n}.lr-doc \/* \u00c9vite les \u201cdouble paddings\u201d entre paragraphes *\/\n.md-typeset .admonition.abstract > :not(.admonition-title){\n  margin: 0 !important;\n}.lr-doc .md-typeset .admonition.abstract > :not(.admonition-title) + :not(.admonition-title){\n  padding-top: 0 !important;\n}.lr-doc \/* ===== Exemple (example) ===== *\/\n.md-typeset .admonition.example > .admonition-title{\n  background-color: #e5e7eb !important;\n  color: #111827 !important;\n  font-weight: 900 !important;\n}.lr-doc .md-typeset .admonition.example pre{\n  background-color: #1e1e1e;\n  color: #e8e8e8;\n}.lr-doc .md-typeset .admonition.example code{\n  background-color: transparent;\n  color: #e8e8e8;\n}.lr-doc .md-typeset .admonition.example > .admonition-content > p:first-child{\n  margin-top: 0;\n  margin-bottom: .6rem;\n  color: #111827;\n}.lr-doc \/* =========================================================\n   Mode inject\u00e9 \/ int\u00e9gration WordPress\n   ========================================================= *\/\n\n\/* Masque la TOC \u00e0 droite si besoin *\/\n.md-sidebar--secondary{ display:none !important; }.lr-doc \/* MkDocs inject\u00e9 : ne doit pas passer au-dessus du header WP *\/\n.md-header, .lr-doc .md-tabs{ z-index: 0 !important; }.lr-doc \/* Ajuste la taille globale en mode inject\u00e9 (si utilis\u00e9) *\/\n.lr-doc{ zoom: 1.25; }.lr-doc \/* ajuste 1.10 \u2192 1.30 *\/\n\n\n\/* =========================================================\n   EMBED (WordPress) : zoom (stable)\n   ========================================================= *\/\n.lr-doc{\n  zoom: 1.25;               \/* ajuste 1.10 \u2192 1.30 *\/\n}.lr-doc \/* =========================================================\n   Harmonisation des TITRES (S\u00dbR)\n   - Admonitions Material : title + ic\u00f4ne\n   - lr-secwrap : uniquement twemoji (pas de svg global)\n   ========================================================= *\/\n\n\/* 1) Admonitions : gabarit unique *\/\n.lr-doc .md-typeset .admonition > .admonition-title{\n  position: relative !important;\n  display: block !important;\n  margin: 0 !important;\n  min-height: 2.35rem !important;\n  padding: .60rem 1rem .60rem 2.8rem !important;\n  line-height: 1.25 !important;\n  font-weight: 900 !important;\n}.lr-doc \/* 2) Ic\u00f4ne des admonitions : placement fixe *\/\n.lr-doc .md-typeset .admonition > .admonition-title::before{\n  position: absolute !important;\n  left: 1rem !important;\n  top: 50% !important;\n  transform: translateY(-50%) !important;\n  width: 1.20em !important;\n  height: 1.20em !important;\n  margin: 0 !important;\n  opacity: 1 !important;\n}.lr-doc \/* 3) Pr\u00e9sentation (abstract) : conserve le style orange mais m\u00eame padding *\/\n.lr-doc .md-typeset .admonition.abstract > .admonition-title{\n  padding: .60rem 1rem .60rem 2.8rem !important;\n}.lr-doc \/* 4) Cartes lr-secwrap : m\u00eame padding titre *\/\n.lr-doc .md-typeset .lr-secwrap .lr-sec{\n  position: relative !important;\n  padding: .60rem 1rem .60rem 2.8rem !important;\n}.lr-doc \/* 5) Ic\u00f4ne des lr-secwrap : uniquement twemoji (s\u00e9curis\u00e9) *\/\n.lr-doc .md-typeset .lr-secwrap .lr-sec .twemoji{\n  position: absolute !important;\n  left: 1rem !important;\n  top: 50% !important;\n  transform: translateY(-50%) !important;\n  width: 1.20em !important;\n  height: 1.20em !important;\n  margin: 0 !important;\n}.lr-doc \/* Assure que le svg dans twemoji reste petit *\/\n.lr-doc .md-typeset .lr-secwrap .lr-sec .twemoji svg, .lr-doc .md-typeset .lr-secwrap .lr-sec .twemoji img{\n  width: 100% !important;\n  height: 100% !important;\n}.lr-doc .md-typeset .lr-secwrap-present{ border-left: 7px solid rgba(245,158,11,.90) !important; }.lr-doc .md-typeset .lr-secwrap-present .lr-sec{ background: rgba(245,158,11,.10) !important; }.lr-doc .md-typeset .lr-secwrap-example{ border-left: 7px solid rgba(124,58,237,.90) !important; }.lr-doc .md-typeset .lr-secwrap-example .lr-sec{ background: rgba(124,58,237,.10) !important; }.lr-doc \/* =========================================================\n   EXEMPLES : bloc code dark + marges compactes\n   ========================================================= *\/\n\n.md-typeset .lr-secwrap-example pre, .lr-doc .md-typeset .lr-secwrap-example .highlight pre{\n  background: #1e1e1e !important;\n  color: #e8e8e8 !important;\n  border-radius: 8px !important;\n  margin: .4rem 0 !important;      \/* r\u00e9duit la marge *\/\n  padding: .8rem 1rem !important;  \/* r\u00e9duit l\u2019espace *\/\n}.lr-doc \/* Le code ne doit pas remettre de fond clair *\/\n.md-typeset .lr-secwrap-example code{\n  background: transparent !important;\n  color: inherit !important;\n}.lr-doc \/* Certains th\u00e8mes entourent avec .highlight : on neutralise le fond du wrapper *\/\n.md-typeset .lr-secwrap-example .highlight{\n  background: transparent !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  border: 0 !important;\n}.lr-doc \/* Prototypage : compacter l'espace autour *\/\n.md-typeset .lr-secwrap-proto .lr-secbody{\n  padding: .45rem .65rem !important;   \/* au lieu de .65rem .9rem *\/\n}.lr-doc .md-typeset .lr-secwrap-proto pre.lr-proto{\n  margin: .35rem 0 !important;\n  padding: .6rem .8rem !important;\n  border-radius: 10px !important;\n}.lr-doc \/* === Code dark en lignes : base === *\/\n.md-typeset pre.lr-code-dark{\n  background: #1e1e1e !important;\n  color: #e8e8e8 !important;\n  border-radius: 10px !important;\n  padding: .8rem 1rem !important;\n  overflow-x: auto !important;\n}.lr-doc \/* Le code devient un conteneur de lignes *\/\n.md-typeset pre.lr-code-dark code.lr-code-lines{\n  display: block !important;\n  white-space: pre !important;\n}.lr-doc \/* Lignes normales *\/\n.md-typeset pre.lr-code-dark code.lr-code-lines .lr-line{\n  display: block !important;\n  line-height: 1.20 !important;\n}.lr-doc \/* \u2705 LIGNE VIDE : c\u2019est ici qu\u2019on r\u00e9duit le \u201cnoir\u201d *\/\n.md-typeset pre.lr-code-dark code.lr-code-lines .lr-emptyline{\n  height: .35em !important;     \/* <- ajuste (0.25 \u00e0 0.60) *\/\n  line-height: 0 !important;\n}.lr-doc \/* Ligne vide \u201cfine\u201d dans les blocs de code dark *\/\n.md-typeset pre.lr-code-dark .lr-blank{\n  display: block;\n  height: .35em;     \/* ajuste 0.25 \u00e0 0.60 *\/\n}.lr-doc \/* Prototypage : enlever le cadre bleu (focus\/outline) *\/\n.md-typeset .lr-secwrap-proto pre.lr-proto{\n  outline: none !important;\n  box-shadow: none !important;\n}.lr-doc \/* Pas de bouton Copier dans Prototypage *\/\n.md-typeset .lr-secwrap-proto .btn-clipboard{\n  display: none !important;\n}.lr-doc \/* Par d\u00e9faut : cache les boutons Copier dans la doc *\/\n.md-typeset .btn-clipboard{\n  display: none !important;\n}.lr-doc \/* \u2026mais on l\u2019autorise dans les EXEMPLES *\/\n.md-typeset .lr-secwrap-example .btn-clipboard{\n  display: block !important;\n}.lr-doc \/* Bo\u00eete code + bouton copier (exemples) *\/\n.md-typeset .lr-codebox{\n  position: relative;\n}.lr-doc .md-typeset .lr-codebox .lr-copy{\n  position: absolute;\n  top: .6rem;\n  right: .6rem;\n  z-index: 2;\n\n  font-size: .75rem;\n  padding: .25rem .5rem;\n  border-radius: 6px;\n  border: 0;\n  cursor: pointer;\n\n  color: #ffffff;\n  background: #004080;\n  opacity: .9;\n}.lr-doc .md-typeset .lr-codebox .lr-copy:hover{\n  opacity: 1;\n}.lr-doc .md-typeset .lr-secwrap-proto .btn-clipboard{ display:none !important; }.lr-doc \/* EXEMPLE : liste \u00e0 puces plus \u00e0 droite *\/\n.md-typeset .lr-secwrap-example .lr-secbody ul{\n  padding-left: 1.4rem !important;   \/* d\u00e9cale le contenu *\/\n  margin-left: 0 !important;\n}.lr-doc \/* Optionnel : d\u00e9cale aussi la puce elle-m\u00eame (selon rendu) *\/\n.md-typeset .lr-secwrap-example .lr-secbody ul{\n  list-style-position: outside;\n}.lr-doc \/* Supprimer le pied de page Material *\/\n.md-footer{\n  display: none !important;\n}.lr-doc .md-main__inner{\n  padding-bottom: 0 !important;\n}.lr-doc \/* =========================================\n   Cacher la barre de titre (haut de page)\n   + les onglets (si activ\u00e9s)\n   ========================================= *\/\n.md-header, .lr-doc .md-tabs{\n  display: none !important;\n}.lr-doc \/* Enl\u00e8ve l\u2019espace r\u00e9serv\u00e9 au header sticky (Material) *\/\n.lr-doc{\n  --md-header-height: 0px;\n}.lr-doc .md-main{\n  margin-top: 0 !important;\n}.lr-doc \/* =========================================\n   Cacher le menu MkDocs (sidebar gauche)\n   ========================================= *\/\n.md-sidebar--primary{\n  display: none !important;\n}.lr-doc \/* (Optionnel) Cacher la table des mati\u00e8res \u00e0 droite *\/\n.md-sidebar--secondary{\n  display: none !important;\n}.lr-doc \/* =========================================\n   \u00c9tendre le contenu\n   ========================================= *\/\n.md-main__inner{\n  margin: 0 !important;\n}.lr-doc .md-content{\n  max-width: min(95vw, 110rem);\n}.lr-doc \/* Supprime le symbole \u00b6 (permalink) \u00e0 c\u00f4t\u00e9 des titres *\/\n.md-typeset .headerlink{\n  display: none !important;\n}.lr-doc \/* Liens uniquement dans les blocs de code (fond noir) *\/\n.md-typeset pre code a, .lr-doc .md-typeset .highlight pre a, .lr-doc .md-typeset .highlight code a{\n  color: #fff !important;\n  text-decoration: underline;\n}.lr-doc \/* Optionnel : hover *\/\n.md-typeset pre code a:hover, .lr-doc .md-typeset .highlight pre a:hover, .lr-doc .md-typeset .highlight code a:hover{\n  opacity: 0.85;\n}.lr-doc \/* Liens dans les blocs custom LightREST *\/\npre.lr-code-dark a, .lr-doc .lr-code-dark a{\n  color: #fff !important;\n  text-decoration: underline;\n}.lr-doc \/* \u2705 Liens visibles UNIQUEMENT dans tes exemples \"code dark\" *\/\n.md-content .md-typeset pre.lr-code-dark a, .lr-doc .md-content .md-typeset pre.lr-code-dark a:visited{\n  color: #ffffff !important;\n  text-decoration: underline !important;\n  text-decoration-style: solid !important;\n}.lr-doc \/* Optionnel : hover\/focus dans code dark *\/\n.md-content .md-typeset pre.lr-code-dark a:hover{\n  color: #ffffff !important;\n  opacity: .85;\n  background: transparent !important;\n}.lr-doc .md-content .md-typeset pre.lr-code-dark a:focus-visible{\n  outline: 2px solid rgba(255,255,255,.65) !important;\n  outline-offset: 2px;\n}.lr-doc \/* \u2705 Liens visibles UNIQUEMENT dans tes exemples \"code dark\" *\/\n.md-content .md-typeset pre.lr-code-dark a, .lr-doc .md-content .md-typeset pre.lr-code-dark a:visited{\n  color: #ffffff !important;\n  text-decoration: underline !important;\n  text-decoration-style: solid !important;\n}.lr-doc \/* Optionnel : hover\/focus dans code dark *\/\n.md-content .md-typeset pre.lr-code-dark a:hover{\n  color: #ffffff !important;\n  opacity: .85;\n  background: transparent !important;\n}.lr-doc .md-content .md-typeset pre.lr-code-dark a:focus-visible{\n  outline: 2px solid rgba(255,255,255,.65) !important;\n  outline-offset: 2px;\n}.lr-doc \/* \u2705 Liens dans lr-code-dark : police monospace + underline pointill\u00e9 *\/\n.md-content .md-typeset pre.lr-code-dark code a, .lr-doc .md-content .md-typeset pre.lr-code-dark code a:visited{\n  font-family: var(--md-code-font-family, \"Lucida Console\",\"Consolas\",\"Courier New\",monospace) !important;\n  font-size: inherit !important;\n  color: inherit !important;\n\n  \/* underline pointill\u00e9 (on override le \"text-decoration: underline\" pr\u00e9c\u00e9dent) *\/\n  text-decoration-line: underline !important;\n  text-decoration-style: dotted !important;\n  text-decoration-thickness: 1px !important;\n  text-underline-offset: .18em !important;\n\n  background: transparent !important;\n}.lr-doc \/* Hover optionnel *\/\n.md-content .md-typeset pre.lr-code-dark code a:hover{\n  opacity: .85;\n  background: transparent !important;\n}.lr-doc \/* =========================================================\n   FAQ : cartes Question\/R\u00e9ponse sans sous-tiroirs\n   ========================================================= *\/\n.lr-doc .lr-faqitem{\n  margin: 1rem 0;\n  border: 1px solid rgba(0,0,0,.10);\n  border-radius: 14px;\n  background: #fff;\n  overflow: hidden;\n}.lr-doc \/* \u00c9vite un double espace entre les deux cartes *\/\n.lr-doc .lr-faqitem .lr-secwrap{\n  margin: 0 !important;\n  border: 0 !important;\n  border-radius: 0 !important;\n}.lr-doc \/* Un petit s\u00e9parateur entre Question et R\u00e9ponse *\/\n.lr-doc .lr-faqitem .lr-secwrap + .lr-secwrap{\n  border-top: 1px solid rgba(0,0,0,.08) !important;\n}.lr-doc \/* Option : resserrer un peu le padding pour lecture rapide *\/\n.lr-doc .lr-faqitem .lr-secbody{\n  padding: .55rem .85rem !important;\n}.lr-doc \/* =========================================================\n   FAQ : 1 carte = Question + R\u00e9ponse\n   ========================================================= *\/\n.lr-doc .lr-faqitem{\n  margin: 1rem 0;\n  border: 1px solid rgba(0,0,0,.12);\n  border-radius: 14px;\n  background: #fff;\n  overflow: hidden;\n}.lr-doc \/* Bandeau question *\/\n.lr-doc .lr-faqhead{\n  background: #004080;\n  color: #fff;\n  font-weight: 700;\n  padding: .65rem 1rem;\n  display: flex;\n  align-items: center;\n  gap: .6rem;\n}.lr-doc \/* R\u00e9ponse *\/\n.lr-doc .lr-faqbody{\n  padding: .75rem 1rem;\n}.lr-doc \/* Resserre les paragraphes (optionnel) *\/\n.lr-doc .lr-faqbody p{\n  margin: .5em 0;\n}.lr-doc .lr-faqbody p:first-child{ margin-top: 0; }.lr-doc .lr-faqbody p:last-child{ margin-bottom: 0; }.lr-doc \/* =========================================================\n   FAQ \u2013 rendu lisible m\u00eame si la r\u00e9ponse contient du texte \"brut\"\n   ========================================================= *\/\n\n\/* Cartes *\/\n.lr-doc .lr-faqitem{\n  margin: 1rem 0 !important;\n  border: 1px solid rgba(0,0,0,.12) !important;\n  border-radius: 14px !important;\n  background: #fff !important;\n  overflow: hidden !important;\n}.lr-doc \/* Bandeau question compact (ic\u00f4ne + texte sur la m\u00eame ligne) *\/\n.lr-doc .lr-faqhead{\n  background: #004080 !important;\n  color: #fff !important;\n  font-weight: 800 !important;\n  padding: .70rem 1rem !important;\n  display: flex !important;\n  align-items: center !important;\n  gap: .55rem !important;\n  line-height: 1.25 !important;\n}.lr-doc \/* Corps r\u00e9ponse : s\u00e9paration nette + lisibilit\u00e9 *\/\n.lr-doc .lr-faqbody{\n  border-top: 1px solid rgba(0,0,0,.08) !important;\n  padding: .80rem 1rem !important;\n  line-height: 1.55 !important;\n}.lr-doc \/* Si ta r\u00e9ponse contient des <p>, .lr-doc on \u00e9vite l'effet \"pav\u00e9\" *\/\n.lr-doc .lr-faqbody p{\n  margin: .55em 0 !important;\n}.lr-doc .lr-faqbody p:first-child{ margin-top: 0 !important; }.lr-doc .lr-faqbody p:last-child{ margin-bottom: 0 !important; }.lr-doc \/* Si ta r\u00e9ponse contient des listes (HTML) *\/\n.lr-doc .lr-faqbody ul, .lr-doc .lr-faqbody ol{\n  margin: .5em 0 .5em 1.25em !important;\n  padding-left: 1.1em !important;\n}.lr-doc .lr-faqbody li{\n  margin: .25em 0 !important;\n}.lr-doc \/* Fallback : si la r\u00e9ponse contient des lignes commen\u00e7ant par \"-\" rendues en texte, .lr-doc on met une petite indentation g\u00e9n\u00e9rale pour a\u00e9rer *\/\n.lr-doc .lr-faqbody{\n  white-space: normal !important;\n}.lr-doc .lr-faqitem{\n  box-shadow: 0 1px 0 rgba(0,0,0,.04) !important;\n}.lr-doc \/* =========================================================\n   FAQ : 1 carte Question + R\u00e9ponse (admonition custom \"faq\")\n   ========================================================= *\/\n\n\/* carte globale *\/\n.md-typeset .admonition.faq{\n  margin: 0.85rem 0 !important;\n  border: 1px solid rgba(0,0,0,.12) !important;\n  border-left: 7px solid #004080 !important;\n  border-radius: 14px !important;\n  overflow: hidden !important;\n  background: #fff !important;\n  box-shadow: 0 1px 0 rgba(0,0,0,.04) !important;\n  padding: 0 !important;\n}.lr-doc \/* bandeau question *\/\n.md-typeset .admonition.faq > .admonition-title{\n  background: rgba(0,64,128,.10) !important;\n  border-bottom: 1px solid rgba(0,0,0,.08) !important;\n  color: #0f172a !important;\n}.lr-doc \/* ic\u00f4ne \u00e0 gauche (question mark Material) *\/\n.md-typeset .admonition.faq > .admonition-title::before{\n  background-color: #004080 !important;\n  -webkit-mask-image: var(--md-admonition-icon--question) !important;\n  mask-image: var(--md-admonition-icon--question) !important;\n}.lr-doc \/* corps r\u00e9ponse *\/\n.md-typeset .admonition.faq > :not(.admonition-title){\n  padding: .75rem 1rem !important;\n}\n\n<\/style>\n\n\n  \n    \n    <input class=\"md-toggle\" data-md-toggle=\"drawer\" type=\"checkbox\" id=\"__drawer\" autocomplete=\"off\">\n    <input class=\"md-toggle\" data-md-toggle=\"search\" type=\"checkbox\" id=\"__search\" autocomplete=\"off\">\n    <label class=\"md-overlay\" for=\"__drawer\"><\/label>\n    <div data-md-component=\"skip\">\n      \n        \n        <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrsession#classe-lrsession\" class=\"md-skip\">\n          Aller au contenu\n        <\/a>\n      \n    <\/div>\n    <div data-md-component=\"announce\">\n      \n    <\/div>\n    \n    \n      \n\n  \n\n<header class=\"md-header md-header--shadow\" data-md-component=\"header\">\n  <nav class=\"md-header__inner md-grid\" aria-label=\"En-t\u00eate\">\n    <a href=\"https:\/\/lightrest.codeline.fr\/docs\" title=\"LightREST V3 documentation\" class=\"md-header__button md-logo\" aria-label=\"LightREST V3 documentation\" data-md-component=\"logo\">\n      \n  \n  <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54\"\/><\/svg>\n\n    <\/a>\n    <label class=\"md-header__button md-icon\" for=\"__drawer\">\n      \n      <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z\"\/><\/svg>\n    <\/label>\n    <div class=\"md-header__title\" data-md-component=\"header-title\">\n      <div class=\"md-header__ellipsis\">\n        <div class=\"md-header__topic\">\n          <span class=\"md-ellipsis\">\n            LightREST V3 documentation\n          <\/span>\n        <\/div>\n        <div class=\"md-header__topic\" data-md-component=\"header-topic\">\n          <span class=\"md-ellipsis\">\n            \n              lrSession\n            \n          <\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n    \n    \n      \n    \n    \n    \n      \n      \n        <label class=\"md-header__button md-icon\" for=\"__search\">\n          \n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5\"\/><\/svg>\n        <\/label>\n        <div class=\"md-search\" data-md-component=\"search\" role=\"dialog\">\n  <label class=\"md-search__overlay\" for=\"__search\"><\/label>\n  <div class=\"md-search__inner\" role=\"search\">\n    <form class=\"md-search__form\" name=\"search\">\n      <input type=\"text\" class=\"md-search__input\" name=\"query\" aria-label=\"Rechercher\" placeholder=\"Rechercher\" autocapitalize=\"off\" autocorrect=\"off\" autocomplete=\"off\" spellcheck=\"false\" data-md-component=\"search-query\" required>\n      <label class=\"md-search__icon md-icon\" for=\"__search\">\n        \n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5\"\/><\/svg>\n        \n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z\"\/><\/svg>\n      <\/label>\n      <nav class=\"md-search__options\" aria-label=\"Recherche\">\n        \n        <button type=\"reset\" class=\"md-search__icon md-icon\" title=\"Effacer\" aria-label=\"Effacer\" tabindex=\"-1\">\n          \n          <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\/><\/svg>\n        <\/button>\n      <\/nav>\n      \n    <\/form>\n    <div class=\"md-search__output\">\n      <div class=\"md-search__scrollwrap\" tabindex=\"0\" data-md-scrollfix>\n        <div class=\"md-search-result\" data-md-component=\"search-result\">\n          <div class=\"md-search-result__meta\">\n            Initialisation de la recherche\n          <\/div>\n          <ol class=\"md-search-result__list\" role=\"presentation\"><\/ol>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n      \n    \n    \n  <\/nav>\n  \n<\/header>\n    \n    <div class=\"md-container\" data-md-component=\"container\">\n      \n      \n        \n          \n        \n      \n      <main class=\"md-main\" data-md-component=\"main\">\n        <div class=\"md-main__inner md-grid\">\n          \n            \n              \n              <div class=\"md-sidebar md-sidebar--primary\" data-md-component=\"sidebar\" data-md-type=\"navigation\" >\n                <div class=\"md-sidebar__scrollwrap\">\n                  <div class=\"md-sidebar__inner\">\n                    \n\n\n\n<nav class=\"md-nav md-nav--primary\" aria-label=\"Navigation\" data-md-level=\"0\">\n  <label class=\"md-nav__title\" for=\"__drawer\">\n    <a href=\"https:\/\/lightrest.codeline.fr\/docs\" title=\"LightREST V3 documentation\" class=\"md-nav__button md-logo\" aria-label=\"LightREST V3 documentation\" data-md-component=\"logo\">\n      \n  \n  <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54\"\/><\/svg>\n\n    <\/a>\n    LightREST V3 documentation\n  <\/label>\n  \n  <ul class=\"md-nav__list\" data-md-scrollfix>\n    \n      \n      \n  \n  \n  \n  \n    <li class=\"md-nav__item\">\n      <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrserver\" class=\"md-nav__link\">\n        \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    lrServer\n  \n\n    \n  <\/span>\n  \n  \n\n      <\/a>\n    <\/li>\n  \n\n    \n      \n      \n  \n  \n  \n  \n    <li class=\"md-nav__item\">\n      <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrrequest\" class=\"md-nav__link\">\n        \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    lrRequest\n  \n\n    \n  <\/span>\n  \n  \n\n      <\/a>\n    <\/li>\n  \n\n    \n      \n      \n  \n  \n  \n  \n    <li class=\"md-nav__item\">\n      <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrresponse\" class=\"md-nav__link\">\n        \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    lrResponse\n  \n\n    \n  <\/span>\n  \n  \n\n      <\/a>\n    <\/li>\n  \n\n    \n      \n      \n  \n  \n  \n  \n    <li class=\"md-nav__item\">\n      <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrroute\" class=\"md-nav__link\">\n        \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    lrRoute\n  \n\n    \n  <\/span>\n  \n  \n\n      <\/a>\n    <\/li>\n  \n\n    \n      \n      \n  \n  \n  \n  \n    <li class=\"md-nav__item\">\n      <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrhook\" class=\"md-nav__link\">\n        \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    lrHook\n  \n\n    \n  <\/span>\n  \n  \n\n      <\/a>\n    <\/li>\n  \n\n    \n      \n      \n  \n  \n    \n  \n  \n  \n    <li class=\"md-nav__item md-nav__item--active\">\n      \n      <input class=\"md-nav__toggle md-toggle\" type=\"checkbox\" id=\"__toc\">\n      \n      \n        \n      \n      \n        <label class=\"md-nav__link md-nav__link--active\" for=\"__toc\">\n          \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    lrSession\n  \n\n    \n  <\/span>\n  \n  \n\n          <span class=\"md-nav__icon md-icon\"><\/span>\n        <\/label>\n      \n      <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrsession\" class=\"md-nav__link md-nav__link--active\">\n        \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    lrSession\n  \n\n    \n  <\/span>\n  \n  \n\n      <\/a>\n      \n        \n\n<nav class=\"md-nav md-nav--secondary\" aria-label=\"Table des mati\u00e8res\">\n  \n  \n  \n    \n  \n  \n    <label class=\"md-nav__title\" for=\"__toc\">\n      <span class=\"md-nav__icon md-icon\"><\/span>\n      Table des mati\u00e8res\n    <\/label>\n    <ul class=\"md-nav__list\" data-md-component=\"toc\" data-md-scrollfix>\n      \n        <li class=\"md-nav__item\">\n  <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrsession#methodes\" class=\"md-nav__link\">\n    <span class=\"md-ellipsis\">\n      \n        M\u00e9thodes\n      \n    <\/span>\n  <\/a>\n  \n<\/li>\n      \n    <\/ul>\n  \n<\/nav>\n      \n    <\/li>\n  \n\n    \n      \n      \n  \n  \n  \n  \n    <li class=\"md-nav__item\">\n      <a href=\"https:\/\/lightrest.codeline.fr\/docs\/faq\" class=\"md-nav__link\">\n        \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    FAQ\n  \n\n    \n  <\/span>\n  \n  \n\n      <\/a>\n    <\/li>\n  \n\n    \n      \n      \n  \n  \n  \n  \n    <li class=\"md-nav__item\">\n      <a href=\"https:\/\/lightrest.codeline.fr\/docs\/bp\/index.md\" class=\"md-nav__link\">\n        \n  \n  \n  <span class=\"md-ellipsis\">\n    \n  \n    BP\n  \n\n    \n  <\/span>\n  \n  \n\n      <\/a>\n    <\/li>\n  \n\n    \n  <\/ul>\n<\/nav>\n                  <\/div>\n                <\/div>\n              <\/div>\n            \n            \n              \n              <div class=\"md-sidebar md-sidebar--secondary\" data-md-component=\"sidebar\" data-md-type=\"toc\" >\n                <div class=\"md-sidebar__scrollwrap\">\n                  <div class=\"md-sidebar__inner\">\n                    \n\n<nav class=\"md-nav md-nav--secondary\" aria-label=\"Table des mati\u00e8res\">\n  \n  \n  \n    \n  \n  \n    <label class=\"md-nav__title\" for=\"__toc\">\n      <span class=\"md-nav__icon md-icon\"><\/span>\n      Table des mati\u00e8res\n    <\/label>\n    <ul class=\"md-nav__list\" data-md-component=\"toc\" data-md-scrollfix>\n      \n        <li class=\"md-nav__item\">\n  <a href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrsession#methodes\" class=\"md-nav__link\">\n    <span class=\"md-ellipsis\">\n      \n        M\u00e9thodes\n      \n    <\/span>\n  <\/a>\n  \n<\/li>\n      \n    <\/ul>\n  \n<\/nav>\n                  <\/div>\n                <\/div>\n              <\/div>\n            \n          \n          \n            <div class=\"md-content\" data-md-component=\"content\">\n              \n              <article class=\"md-content__inner md-typeset\">\n                \n                  \n\n\n\n<h1 id=\"classe-lrsession\">Classe lrSession<a class=\"headerlink\" href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrsession#classe-lrsession\" title=\"Permanent link\">&para;<\/a><\/h1>\n<!-- GENERATED_BY_CODE_LINE_RENDER_API_V3_2026-01-27 -->\n\n<div class=\"admonition abstract\">\n<p class=\"admonition-title\">Role<\/p>\n<p>Gestion de sessions persistantes : cr\u00e9ation, lecture, \u00e9criture, v\u00e9rification, rafra\u00eechissement, nettoyage, et codes d\u2019erreur.<\/p>\n<p>A la cr\u00e9ation de la session, un timeout est d\u00e9fini. Si ce timeout est atteint sans aucun acc\u00e8s en lecture ou \u00e9criture, la session est d\u00e9truite automatiquement.<\/p>\n<p>A chaque lecture, \u00e9criture ou v\u00e9rification de la validit\u00e9 d'une session, le compteur de timeout est r\u00e9initialis\u00e9. Il est possible de forcer la r\u00e9initialisation de la session en utilisant la m\u00e9thode <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=refresh\">lrSession:Refresh<\/a>.<\/p>\n<p>Les donn\u00e9es de session peuvent \u00eatre stock\u00e9es, selon le param\u00e8tre pass\u00e9 \u00e0 la m\u00e9thode <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=create\">lrSession:Create<\/a> :<br>\n   &nbsp;&nbsp;&nbsp;&nbsp;- sous forme de paires Cl\u00e9 \/ Valeur<br>\n   &nbsp;&nbsp;&nbsp;&nbsp;- sous forme d'un variant (plus souple et puissant)<\/p>\n<p><strong>Signature de l'ID de session :<\/strong>\n L'identifiant de session est sign\u00e9 num\u00e9riquement, ce qui permet de d\u00e9tecter la r\u00e9ception d'un ID ill\u00e9gal et de bloquer toute ex\u00e9cution de requ\u00eate. Cette signature est calcul\u00e9e en utilisant un buffer stock\u00e9 dans le membre <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=salt\">:Salt<\/a> (partag\u00e9 entre toutes les instances de la classe <em>lrSession<\/em>).<\/p>\n<p><img decoding=\"async\" alt=\"\u26a0\" class=\"twemoji\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/jdecked\/twemoji@16.0.1\/assets\/svg\/26a0.svg\" title=\":warning:\" \/> Si le membre <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=salt\">:Salt<\/a> est modifi\u00e9 en cours d'ex\u00e9cution (par n'importe quelle instance de <em>lrSession<\/em>), toutes les sessions en cours deviendront ill\u00e9gales. De m\u00eame, si le serveur est red\u00e9marr\u00e9 avec un <em>:Salt<\/em> diff\u00e9rent, les sessions en cours seront inaccessibles.<\/p>\n<p>La valeur par d\u00e9faut du membre :Salt est d\u00e9finie dans la constante <em>::DEFAULT_SALT<\/em>. Il est conseill\u00e9 de la personnaliser (soit lors de l'ex\u00e9cution soit en modifiant sa valeur dans le code du composant).<\/p>\n<p><strong>Chiffrement des donn\u00e9es de session<\/strong>\n Il est possible (et recommand\u00e9), lorsque la s\u00e9curit\u00e9 le n\u00e9cessite, de chiffrer les donn\u00e9es de la session (stock\u00e9es dans le fichier dont le nom = <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=id\">:ID<\/a> de la session).\n Pour activer le chiffrement, il faut que le membre <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=cipheringkey\">:CipheringKey<\/a> soit d\u00e9fini.<\/p>\n<p><img decoding=\"async\" alt=\"\u26a0\" class=\"twemoji\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/jdecked\/twemoji@16.0.1\/assets\/svg\/26a0.svg\" title=\":warning:\" \/> Si le membre <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=cipheringkey\">:CipheringKey<\/a> est modifi\u00e9 en cours d'ex\u00e9cution (par n'importe quelle instance de <em>lrSession<\/em>), toutes les donn\u00e9es des sessions en cours deviendront illisibles. De m\u00eame, si le serveur est red\u00e9marr\u00e9 avec une <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=cipheringkey\">:CipheringKey<\/a> diff\u00e9rent, les donn\u00e9es des sessions en cours seront ind\u00e9chiffrables.<\/p>\n<\/div>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M10.25 2c.19 0 .36.11.44.26l2.22 3.96.09.28-.09.28-2.22 3.96c-.08.15-.25.26-.44.26h-4.5c-.19 0-.36-.11-.44-.26L3.09 6.78 3 6.5l.09-.28 2.22-3.96c.08-.15.25-.26.44-.26zm0 11c.19 0 .36.11.44.26l2.22 3.96.09.28-.09.28-2.22 3.96c-.08.15-.25.26-.44.26h-4.5c-.19 0-.36-.11-.44-.26l-2.22-3.96L3 17.5l.09-.28 2.22-3.96c.08-.15.25-.26.44-.26zm9.25-5.5c.19 0 .36.11.44.26l2.22 3.96.09.28-.09.28-2.22 3.96c-.08.15-.25.26-.44.26H15c-.19 0-.36-.11-.44-.26l-2.22-3.96-.09-.28.09-.28 2.22-3.96c.08-.15.25-.26.44-.26z\"\/><\/svg><\/span> Membres et propri\u00e9t\u00e9s<\/summary>\n<p><table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"member-cipheringkey\"><td><code>CipheringKey<\/code><\/td><td>Buffer<\/td><td>Cl\u00e9 de chiffrement utilis\u00e9e pour prot\u00e9ger les donn\u00e9es de session.<br>\nIntervient lors de la signature et du chiffrement\/d\u00e9chiffrement des informations stock\u00e9es.<br>\n<\/td><\/tr>\n    <tr id=\"member-id\"><td><code>ID<\/code><\/td><td>cha\u00eene<\/td><td>Identifiant de session.<\/td><\/tr>\n    <tr id=\"member-ischecksignature\"><td><code>IsCheckSignature<\/code><\/td><td>bool\u00e9en<\/td><td>Active ou d\u00e9sactive la v\u00e9rification de la signature de session.<br>\nPermet de d\u00e9tecter les sessions falsifi\u00e9es ou alt\u00e9r\u00e9es.<br>\n<\/td><\/tr>\n    <tr id=\"member-lasterrorcode\"><td><code>LastErrorCode<\/code><\/td><td>entier<\/td><td>Dernier code d\u2019erreur rencontr\u00e9 lors d\u2019une op\u00e9ration.<br>\nCorrespond \u00e0 une constante ErrorSession*.<br>\n<\/td><\/tr>\n    <tr id=\"member-salt\"><td><code>Salt<\/code><\/td><td>Buffer<\/td><td>Sel utilis\u00e9 lors des op\u00e9rations de signature et de chiffrement.<br>\nRenforce la s\u00e9curit\u00e9 des donn\u00e9es de session.<br>\n<\/td><\/tr>\n    <tr id=\"member-sessionsdirectory\"><td><code>SessionsDirectory<\/code><\/td><td>cha\u00eene<\/td><td>R\u00e9pertoire contenant les fichiers de session.<br>\nChaque session est g\u00e9n\u00e9ralement persist\u00e9e dans ce dossier.<br>\n<\/td><\/tr>\n  <\/tbody>\n<\/table><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 2a10 10 0 0 1 10 10 10 10 0 0 1-10 10A10 10 0 0 1 2 12 10 10 0 0 1 12 2m-1 5a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2v-1h-2v1h-2V9h2v1h2V9a2 2 0 0 0-2-2z\"\/><\/svg><\/span> Constantes<\/summary>\n<p><table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"const-errorsessionexpired\"><td><code>ErrorSessionExpired<\/code><\/td><td>entier<\/td><td>0x1000 \u2014 Session expir\u00e9e.<\/td><\/tr>\n    <tr id=\"const-errorsessionillegal\"><td><code>ErrorSessionIllegal<\/code><\/td><td>entier<\/td><td>0x1001 \u2014 Session ill\u00e9gale ou identifiant invalide.<\/td><\/tr>\n    <tr id=\"const-errorsessioncannotload\"><td><code>ErrorSessionCannotLoad<\/code><\/td><td>entier<\/td><td>0x1002 \u2014 Impossible de charger la session.<\/td><\/tr>\n    <tr id=\"const-errorsessioncannotsave\"><td><code>ErrorSessionCannotSave<\/code><\/td><td>entier<\/td><td>0x1003 \u2014 Impossible de sauver la session.<\/td><\/tr>\n    <tr id=\"const-errorsessioncannotsetvalue\"><td><code>ErrorSessionCannotSetValue<\/code><\/td><td>entier<\/td><td>0x1004 \u2014 Impossible d\u2019\u00e9crire une valeur dans la session.<\/td><\/tr>\n    <tr id=\"const-errorsessioncannotdestroy\"><td><code>ErrorSessionCannotDestroy<\/code><\/td><td>entier<\/td><td>0x1005 \u2014 Impossible de d\u00e9truire la session.<\/td><\/tr>\n    <tr id=\"const-errorsessioncannotdecipher\"><td><code>ErrorSessionCannotDecipher<\/code><\/td><td>entier<\/td><td>0x1006 \u2014 Impossible de d\u00e9chiffrer les donn\u00e9es de session.<\/td><\/tr>\n    <tr id=\"const-errorsessioncannotgetvalue\"><td><code>ErrorSessionCannotGetValue<\/code><\/td><td>entier<\/td><td>0x1007 \u2014 Impossible de lire une valeur de session.<\/td><\/tr>\n  <\/tbody>\n<\/table><\/p>\n<\/details>\n<h2 id=\"methodes\">M\u00e9thodes<a class=\"headerlink\" href=\"https:\/\/lightrest.codeline.fr\/docs\/classes\/lrsession#methodes\" title=\"Permanent link\">&para;<\/a><\/h2>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2\"\/><\/svg><\/span> Create(Dur\u00e9e)<\/summary>\n<p><div id=\"method-create\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-create-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nCr\u00e9e une session avec un timeout de type Dur\u00e9e.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-create-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">Create(pTimeout Dur\u00e9e = 3600s) : bool\u00e9en<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-create-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"param-ptimeout\"><td><code>pTimeout<\/code><\/td><td>Dur\u00e9e<\/td><td>Dur\u00e9e de vie de session.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-create-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si la session est cr\u00e9\u00e9e.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-create-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Cr\u00e9ation d\u2019une session avec un timeout exprim\u00e9 en Dur\u00e9e.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>FUNCTION GetSession(pRequest objet lrRequest &lt;utile&gt;, poResponse objet lrResponse)\n<span class=\"lr-blank\"><\/span>\noSess        est objet lrSession\nduTimeout    est Dur\u00e9e\n<span class=\"lr-blank\"><\/span>\nduTimeout..EnSecondes = 3600\n<span class=\"lr-blank\"><\/span>\nSI <span class=\"lr-hl\">oSess:Create(duTimeout)<\/span> ALORS\n    poResponse:SetHeaderValue(\"SESSION_ID\", oSess:ID)\n    poResponse:Status        = lrResponse::StatusOK\n    poResponse:Body          = \"Session [%oSess:ID%] created.\"\n    poResponse:ContentType   = lrResponse::ContentTXT\nSINON\n    poResponse:Status        = lrResponse::StatusInternalServerError\n    poResponse:Body          = oSess:GetErrorMessage(oSess:LastErrorCode)\n    poResponse:ContentType   = lrResponse::ContentTXT\nFIN<\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2\"\/><\/svg><\/span> Create(secondes)<\/summary>\n<p><div id=\"method-create\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-create-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nCr\u00e9e une session et initialise ses m\u00e9tadonn\u00e9es (cr\u00e9ation, acc\u00e8s, timeout).<\/p>\n<p><img decoding=\"async\" alt=\"\u2139\" class=\"twemoji\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/jdecked\/twemoji@16.0.1\/assets\/svg\/2139.svg\" title=\":information:\" \/> Fonction d\u00e9pr\u00e9ci\u00e9e, utiliser plut\u00f4t la syntaxe avec un param\u00e8tre de type Dur\u00e9e\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-create-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">Create(pTimeout entier = 3600) : bool\u00e9en<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-create-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"param-ptimeout\"><td><code>pTimeout<\/code><\/td><td>entier<\/td><td>Dur\u00e9e de vie en secondes.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-create-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si la session est cr\u00e9\u00e9e.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-create-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Cr\u00e9ation d\u2019une session avec un timeout exprim\u00e9 en secondes.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>FUNCTION GetSession(pRequest objet lrRequest &lt;utile&gt;, poResponse objet lrResponse)\n<span class=\"lr-blank\"><\/span>\noSess est objet lrSession\n<span class=\"lr-blank\"><\/span>\nSI <span class=\"lr-hl\">oSess:Create(3600)<\/span> ALORS\n    poResponse:SetHeaderValue(\"SESSION_ID\", oSess:ID)\n    poResponse:Status        = lrResponse::StatusOK\n    poResponse:Body          = \"Session [%oSess:ID%] created.\"\n    poResponse:ContentType   = lrResponse::ContentTXT\nSINON\n    poResponse:Status        = lrResponse::StatusInternalServerError\n    poResponse:Body          = oSess:GetErrorMessage(oSess:LastErrorCode)\n    poResponse:ContentType   = lrResponse::ContentTXT\nFIN<\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"m10 17-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9m-6-8L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5z\"\/><\/svg><\/span> Check<\/summary>\n<p><div id=\"method-check\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-check-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nV\u00e9rifie la validit\u00e9 de la session (existence, expiration, signature si activ\u00e9e).\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-check-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">Check() : (bool\u00e9en, entier)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-check-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucun)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-check-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si session valide.<\/td><\/tr>\n    <tr id=\"return-2\"><td>entier<\/td><td>0 si OK, sinon un code ErrorSession*.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-check-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>V\u00e9rification de la validit\u00e9 d\u2019une session avant traitement.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>FUNCTION GetCustomer(poRequest objet lrRequest, poResponse objet lrResponse)\n<span class=\"lr-blank\"><\/span>\noSess est objet lrSession\n<span class=\"lr-blank\"><\/span>\n<span class=\"lr-blank\"><\/span>\noSess:ID = poRequest:GetHeaderValue(\"SESSION_ID\")\n<span class=\"lr-blank\"><\/span>\nSI oSess:ID = \"\" ALORS\n    poResponse:Status        = lrResponse::StatusBadRequest\n    poResponse:Body          = \"Missing SESSION ID\"\n    poResponse:ContentType   = lrResponse::ContentTXT\n    RETOUR\nFIN\n<span class=\"lr-blank\"><\/span>\nSI pas <span class=\"lr-hl\">oSess:Check()<\/span> ALORS\n    poResponse:Status        = lrResponse::StatusUnauthorized\n    poResponse:Body          = oSess:GetErrorMessage(oSess:LastErrorCode)\n    poResponse:ContentType   = lrResponse::ContentTXT\n    RETOUR\nFIN\n<span class=\"lr-blank\"><\/span>\n\/\/On rafra\u00eechit la session pour \u00e9viter un timeout d'inactivit\u00e9\noSess:Refresh()\n<span class=\"lr-blank\"><\/span>\n\/\/\/\/\/\/\/\/\/\/\/\/ Suite du traitement \/\/\/\/\/\/\/\/\/\/\/<\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M17.65 6.35A7.96 7.96 0 0 0 12 4a8 8 0 0 0-8 8 8 8 0 0 0 8 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18a6 6 0 0 1-6-6 6 6 0 0 1 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z\"\/><\/svg><\/span> Refresh<\/summary>\n<p><div id=\"method-refresh\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-refresh-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nRafra\u00eechit la session en mettant \u00e0 jour l'horodateur de dernier acc\u00e8s de session (prolonge l\u2019activit\u00e9 jusqu'\u00e0 atteinte du timeout d'inactivit\u00e9).\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-refresh-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">Refresh() : (bool\u00e9en, entier)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-refresh-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucun)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-refresh-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si succ\u00e8s.<\/td><\/tr>\n    <tr id=\"return-2\"><td>entier<\/td><td>0 si OK, sinon un code ErrorSession*.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-refresh-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Exemple : prolonger l\u2019activit\u00e9 d\u2019une session.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>(bOK, eErr) = <span class=\"lr-hl\">oSess:Refresh()<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M18.68 12.32a4.49 4.49 0 0 0-6.36.01 4.49 4.49 0 0 0 0 6.36 4.51 4.51 0 0 0 5.57.63L21 22.39 22.39 21l-3.09-3.11c1.13-1.77.87-4.09-.62-5.57m-1.41 4.95c-.98.98-2.56.97-3.54 0-.97-.98-.97-2.56.01-3.54.97-.97 2.55-.97 3.53 0 .97.98.97 2.56 0 3.54M10.9 20.1a6.5 6.5 0 0 1-1.48-2.32C6.27 17.25 4 15.76 4 14v3c0 2.21 3.58 4 8 4-.4-.26-.77-.56-1.1-.9M4 9v3c0 1.68 2.07 3.12 5 3.7v-.2c0-.93.2-1.85.58-2.69C6.34 12.3 4 10.79 4 9m8-6C7.58 3 4 4.79 4 7c0 2 3 3.68 6.85 4h.05c1.2-1.26 2.86-2 4.6-2 .91 0 1.81.19 2.64.56A3.22 3.22 0 0 0 20 7c0-2.21-3.58-4-8-4\"\/><\/svg><\/span> GetData(cl\u00e9)<\/summary>\n<p><div id=\"method-getdata-cl\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-getdata-cl-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nR\u00e9cup\u00e8re une valeur de session par sa cl\u00e9 pr\u00e9alablement stock\u00e9e avec la m\u00e9thode <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=setdata1\">SetData(pTag, pValue)<\/a>.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getdata-cl-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">GetData(pTag cha\u00eene) : (bool\u00e9en, Variant)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getdata-cl-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"param-ptag\"><td><code>pTag<\/code><\/td><td>cha\u00eene<\/td><td>Nom du tag (cl\u00e9).<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getdata-cl-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si succ\u00e8s.<\/td><\/tr>\n    <tr id=\"return-2\"><td>Variant<\/td><td>Valeur si succ\u00e8s sinon un code d\u2019erreur.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getdata-cl-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Exemple : lecture d\u2019une valeur stock\u00e9e en session.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>(bOK, vVal) = <span class=\"lr-hl\">oSess:GetData(\"user\")<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M18.68 12.32a4.49 4.49 0 0 0-6.36.01 4.49 4.49 0 0 0 0 6.36 4.51 4.51 0 0 0 5.57.63L21 22.39 22.39 21l-3.09-3.11c1.13-1.77.87-4.09-.62-5.57m-1.41 4.95c-.98.98-2.56.97-3.54 0-.97-.98-.97-2.56.01-3.54.97-.97 2.55-.97 3.53 0 .97.98.97 2.56 0 3.54M10.9 20.1a6.5 6.5 0 0 1-1.48-2.32C6.27 17.25 4 15.76 4 14v3c0 2.21 3.58 4 8 4-.4-.26-.77-.56-1.1-.9M4 9v3c0 1.68 2.07 3.12 5 3.7v-.2c0-.93.2-1.85.58-2.69C6.34 12.3 4 10.79 4 9m8-6C7.58 3 4 4.79 4 7c0 2 3 3.68 6.85 4h.05c1.2-1.26 2.86-2 4.6-2 .91 0 1.81.19 2.64.56A3.22 3.22 0 0 0 20 7c0-2.21-3.58-4-8-4\"\/><\/svg><\/span> GetData()<\/summary>\n<p><div id=\"method-getdata\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-getdata-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nR\u00e9cup\u00e8re le variant des donn\u00e9es de la session, pr\u00e9alablement stock\u00e9 avec la m\u00e9thode <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=setdata2\">:SetData(pVariant)<\/a>.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getdata-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">GetData() : (bool\u00e9en, Variant)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getdata-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucun)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getdata-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si succ\u00e8s.<\/td><\/tr>\n    <tr id=\"return-2\"><td>Variant<\/td><td>Valeur si succ\u00e8s (sinon, selon impl\u00e9mentation, un code d\u2019erreur).<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getdata-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Exemple : lecture du variant contenant les donn\u00e9es de session.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>vSessionData est variant\n<span class=\"lr-blank\"><\/span>\n(bOK, vSessionData) = <span class=\"lr-hl\">oSess:GetData()<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 3C7.58 3 4 4.79 4 7s3.58 4 8 4 8-1.79 8-4-3.58-4-8-4M4 9v3c0 2.21 3.58 4 8 4s8-1.79 8-4V9c0 2.21-3.58 4-8 4s-8-1.79-8-4m0 5v3c0 2.21 3.58 4 8 4s8-1.79 8-4v-3c0 2.21-3.58 4-8 4s-8-1.79-8-4\"\/><\/svg><\/span> GetAllData<\/summary>\n<p><div id=\"method-getalldata\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-getalldata-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nRetourne toutes les donn\u00e9es de session (cl\u00e9\/valeur) dans un tableau associatif, pr\u00e9alablement stock\u00e9es avec la m\u00e9thode <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=setdata1\">SetData(pTag, pValue)<\/a>.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getalldata-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">GetAllData() : (bool\u00e9en, tableau associatif de Variant)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getalldata-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucun)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getalldata-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si succ\u00e8s.<\/td><\/tr>\n    <tr id=\"return-2\"><td>tableau associatif de Variant<\/td><td>Toutes les donn\u00e9es applicatives.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getalldata-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Exemple : r\u00e9cup\u00e9ration de toutes les donn\u00e9es d\u2019une session.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>vSessionData est variant\n<span class=\"lr-blank\"><\/span>\n(bOK, vSessionData) = <span class=\"lr-hl\">oSess:GetAllData()<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M4 14v3c0 2 3.05 3.72 7 4v-2.89l.13-.11C7.12 17.76 4 16.06 4 14m8-1c-4.42 0-8-1.79-8-4v3c0 2.21 3.58 4 8 4h1.16L17 12.12c-1.6.6-3.29.88-5 .88m0-10C7.58 3 4 4.79 4 7s3.58 4 8 4 8-1.79 8-4-3.58-4-8-4m9 8.13c-.15 0-.29.06-.39.17l-1 1 2.05 2 1-1a.54.54 0 0 0 0-.77l-1.24-1.23a.52.52 0 0 0-.38-.17m-2 1.75L13 18.94V21h2.06l6.06-6.07z\"\/><\/svg><\/span> SetData(cl\u00e9, valeur)<\/summary>\n<p><div id=\"method-setdata1\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-setdata1-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nM\u00e9morise une paire cl\u00e9\/valeur dans les donn\u00e9es de session\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setdata1-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">SetData(pTag chaine, pValue variant) : (bool\u00e9en, entier)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setdata1-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"param-ptag\"><td><code>pTag<\/code><\/td><td>Cha\u00eene<\/td><td>Nom de la cl\u00e9<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setdata1-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si succ\u00e8s.<\/td><\/tr>\n    <tr id=\"return-2\"><td>entier<\/td><td>0 si OK, sinon un code ErrorSession*.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setdata1-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Ecriture d'une donn\u00e9e cl\u00e9\/valeur dans le donn\u00e9es de la session<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>(bOK, eErr) = <span class=\"lr-hl\">oSess:SetData(\"nom\", \"toto\")<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M4 14v3c0 2 3.05 3.72 7 4v-2.89l.13-.11C7.12 17.76 4 16.06 4 14m8-1c-4.42 0-8-1.79-8-4v3c0 2.21 3.58 4 8 4h1.16L17 12.12c-1.6.6-3.29.88-5 .88m0-10C7.58 3 4 4.79 4 7s3.58 4 8 4 8-1.79 8-4-3.58-4-8-4m9 8.13c-.15 0-.29.06-.39.17l-1 1 2.05 2 1-1a.54.54 0 0 0 0-.77l-1.24-1.23a.52.52 0 0 0-.38-.17m-2 1.75L13 18.94V21h2.06l6.06-6.07z\"\/><\/svg><\/span> SetData(variant)<\/summary>\n<p><div id=\"method-setdata2\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-setdata2-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nM\u00e9morise des donn\u00e9es de session sous forme de variant.<\/p>\n<p>Permet de r\u00e9cup\u00e9rer l'ensemble des donn\u00e9es de session en une seule lecture, et donc un seul d\u00e9chiffrement (au lieu d'effectuer plusieurs acc\u00e8s avec la syntaxe <a href=\"https:\/\/lightrest.codeline.fr\/index.php\/la-classe-lrsession?h=setdata1\">SetData(pTag, pValue)<\/a>, donc meilleure performance).\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setdata2-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">SetData(pValues Variant) : (bool\u00e9en, entier)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setdata2-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"param-pvalues\"><td><code>pValues<\/code><\/td><td>Variant<\/td><td>Objet Variant dont les propri\u00e9t\u00e9s sont les cl\u00e9s et valeurs \u00e0 enregistrer.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setdata2-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si succ\u00e8s.<\/td><\/tr>\n    <tr id=\"return-2\"><td>entier<\/td><td>0 si OK, sinon un code ErrorSession*.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setdata2-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Ecriture de plusieurs valeurs dans la session.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>v est Variant\nv.user = 123\nv.role = \"admin\"\n(bOK, eErr) = <span class=\"lr-hl\">oSess:SetData(v)<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M19 4h-3.5l-1-1h-5l-1 1H5v2h14M6 19a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V7H6z\"\/><\/svg><\/span> Destroy<\/summary>\n<p><div id=\"method-destroy\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-destroy-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nD\u00e9truit la session et lib\u00e8re les ressources associ\u00e9es, utilis\u00e9 principalement \u00e0 la fermeture de la session client.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-destroy-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">Destroy() : (bool\u00e9en, entier)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-destroy-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucun)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-destroy-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>bool\u00e9en<\/td><td>Vrai si succ\u00e8s.<\/td><\/tr>\n    <tr id=\"return-2\"><td>entier<\/td><td>0 si OK, sinon un code ErrorSession*.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-destroy-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Suppression explicite d\u2019une session.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>(bOK, eErr) = <span class=\"lr-hl\">oSess:Destroy()<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"m19.36 2.72 1.42 1.42-5.72 5.71c1.07 1.54 1.22 3.39.32 4.59L9.06 8.12c1.2-.9 3.05-.75 4.59.32zM5.93 17.57c-2.01-2.01-3.24-4.41-3.58-6.65l4.88-2.09 7.44 7.44-2.09 4.88c-2.24-.34-4.64-1.57-6.65-3.58\"\/><\/svg><\/span> Cleanup<\/summary>\n<p><div id=\"method-cleanup\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-cleanup-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nNettoie les sessions expir\u00e9es (dont le timeout d'inactivit\u00e9 a \u00e9t\u00e9 d\u00e9pass\u00e9).<\/p>\n<p><img decoding=\"async\" alt=\"\u2139\" class=\"twemoji\" src=\"https:\/\/cdn.jsdelivr.net\/gh\/jdecked\/twemoji@16.0.1\/assets\/svg\/2139.svg\" title=\":information:\" \/> Cette m\u00e9thode est appel\u00e9e automatiquement chaque minute par la classe lrSession, il est donc inutile (mais possible) de l'appeler depuis le code du serveur LightREST.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-cleanup-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">Cleanup()<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-cleanup-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucun)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-cleanup-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucune)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-cleanup-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Nettoyage des sessions expir\u00e9es.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code><span class=\"lr-hl\">oSession:Cleanup()<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M20 2H4a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2M6 9h12v2H6m8 3H6v-2h8m4-4H6V6h12\"\/><\/svg><\/span> GetErrorMessage<\/summary>\n<p><div id=\"method-geterrormessage\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-geterrormessage-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nRetourne le message \u00e0 un code :ErrorSession*.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-geterrormessage-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">GetErrorMessage(pErrorMessage entier) : cha\u00eene<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-geterrormessage-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"param-perrormessage\"><td><code>pErrorMessage<\/code><\/td><td>entier<\/td><td>Code d\u2019erreur ErrorSession*.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-geterrormessage-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>cha\u00eene<\/td><td>Message correspondant.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-geterrormessage-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>Conversion d\u2019un code d\u2019erreur en message lisible.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>(bOK, eErr) = oSession:Check()\nSI PAS bOK alors\n    poResponse:Status        = lrResponse::StatusUnauthorized\n    poResponse:Body          = <span class=\"lr-hl\">oSess:GetErrorMessage(eErr)<\/span>\n    poResponse:ContentType   = lrResponse::ContentTXT\n<span class=\"lr-blank\"><\/span>\nFIN<\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 20a8 8 0 0 0 8-8 8 8 0 0 0-8-8 8 8 0 0 0-8 8 8 8 0 0 0 8 8m0-18a10 10 0 0 1 10 10 10 10 0 0 1-10 10C6.47 22 2 17.5 2 12A10 10 0 0 1 12 2m.5 5v5.25l4.5 2.67-.75 1.23L11 13V7z\"\/><\/svg><\/span> GetLastAccess<\/summary>\n<p><div id=\"method-getlastaccess\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-getlastaccess-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nRenvoie la date\/heure du dernier acc\u00e8s \u00e0 la session.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getlastaccess-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">GetLastAccess()<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getlastaccess-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucun)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getlastaccess-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>Cha\u00eene<\/td><td>Horodateur du denier acc\u00e8s au format AAAAMMJJHHMMSSCC<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-getlastaccess-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>R\u00e9cup\u00e9ration de l'horodateur du dernier acc\u00e8s \u00e0 la session.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>sLastAccess = <span class=\"lr-hl\">oSess:GetLastAccess()<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M15 13h1.5v2.82l2.44 1.41-.75 1.3L15 16.69zm4-5H5v11h4.67c-.43-.91-.67-1.93-.67-3a7 7 0 0 1 7-7c1.07 0 2.09.24 3 .67zM5 21a2 2 0 0 1-2-2V5c0-1.11.89-2 2-2h1V1h2v2h8V1h2v2h1a2 2 0 0 1 2 2v6.1c1.24 1.26 2 2.99 2 4.9a7 7 0 0 1-7 7c-1.91 0-3.64-.76-4.9-2zm11-9.85A4.85 4.85 0 0 0 11.15 16c0 2.68 2.17 4.85 4.85 4.85A4.85 4.85 0 0 0 20.85 16c0-2.68-2.17-4.85-4.85-4.85\"\/><\/svg><\/span> GetTimestamp<\/summary>\n<p><div id=\"method-gettimestamp\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-gettimestamp-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nR\u00e9cup\u00e8re la date\/heure de cr\u00e9ation de la session.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-gettimestamp-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">GetTimestamp()<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-gettimestamp-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucun)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-gettimestamp-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:78%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"return-1\"><td>Cha\u00eene<\/td><td>Horodateur dz cr\u00e9atioon de la session au format AAAAMMJJHHMMSSCC<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-gettimestamp-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>R\u00e9cup\u00e9ration de l'horodateur de cr\u00e9ation de la session.<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code>sCreationTS = <span class=\"lr-hl\">oSess:GetTimeStamp()<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n<details class=\"note\">\n<summary><span class=\"twemoji\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path d=\"M7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m5.6-4c-.8-2.3-3-4-5.6-4-3.3 0-6 2.7-6 6s2.7 6 6 6c2.6 0 4.8-1.7 5.6-4H16v4h4v-4h3v-4z\"\/><\/svg><\/span> SetCipheringKey<\/summary>\n<div class=\"admonition info\">\n<p class=\"admonition-title\">Compatibilite v2<\/p>\n<p>Signature conservee pour compatibilite LightREST v2.<\/p>\n<\/div>\n<div class=\"admonition warning\">\n<p class=\"admonition-title\">Deprecie<\/p>\n<p>Conserve pour compatibilite. Preferer l'alternative recommandee.<\/p>\n<\/div>\n<p><div id=\"method-setcipheringkey\" class=\"lr-anchor\"><\/div><\/p>\n<p><div id=\"method-setcipheringkey-intro\" class=\"lr-secwrap lr-secwrap-present\">\n  <div class=\"lr-sec lr-sec-present\">\ud83d\udcd8 Pr\u00e9sentation<\/div>\n  <div class=\"lr-secbody\">\nD\u00e9finit la cl\u00e9 de chiffrement.\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setcipheringkey-proto\" class=\"lr-secwrap lr-secwrap-proto\">\n  <div class=\"lr-sec lr-sec-proto\">\ud83e\udde9 Prototypage<\/div>\n  <div class=\"lr-secbody\">\n<pre class=\"lr-proto\">SetCipheringKey(pKey Buffer)<\/pre>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setcipheringkey-params\" class=\"lr-secwrap lr-secwrap-params\">\n  <div class=\"lr-sec lr-sec-params\">\ud83d\udd27 Param\u00e8tres<\/div>\n  <div class=\"lr-secbody\">\n<table>\n  <colgroup>\n    <col style=\"width:22%;\">\n    <col style=\"width:18%;\">\n    <col style=\"width:60%;\">\n  <\/colgroup>\n  <thead>\n    <tr><th>Nom<\/th><th>Type<\/th><th>Usage<\/th><\/tr>\n  <\/thead>\n  <tbody>\n    <tr id=\"param-pkey\"><td><code>pKey<\/code><\/td><td>Buffer<\/td><td>Cl\u00e9 de chiffrement.<\/td><\/tr>\n  <\/tbody>\n<\/table>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setcipheringkey-returns\" class=\"lr-secwrap lr-secwrap-returns\">\n  <div class=\"lr-sec lr-sec-returns\">\u21a9\ufe0f Valeurs retourn\u00e9es<\/div>\n  <div class=\"lr-secbody\">\n<div class=\"lr-empty\">(aucune)<\/div>\n  <\/div>\n<\/div><\/p>\n<p><div id=\"method-setcipheringkey-example\" class=\"lr-secwrap lr-secwrap-example\">\n  <div class=\"lr-sec lr-sec-example\">\ud83e\uddea Exemple<\/div>\n  <div class=\"lr-secbody\">\n<p>D\u00e9finition de la cl\u00e9 de chiffrement<\/p>\n<div class=\"lr-codebox\"><button class=\"lr-copy\" type=\"button\" data-lr-copy=\"1\">Copier<\/button><pre class=\"lr-code-dark\"><code><span class=\"lr-hl\">oSess:SetCipheringKey(\"ma-cle-de-chiffrement\")<\/span><\/code><\/pre><\/div>\n  <\/div>\n<\/div><\/p>\n<\/details>\n\n\n\n\n\n\n\n\n\n\n\n\n                \n              <\/article>\n            <\/div>\n          \n          \n\n        <\/div>\n        \n      <\/main>\n      \n        <footer class=\"md-footer\">\n  \n  <div class=\"md-footer-meta md-typeset\">\n    <div class=\"md-footer-meta__inner md-grid\">\n       \n      \n    <\/div>\n  <\/div>\n<\/footer>\n      \n    <\/div>\n    <div class=\"md-dialog\" data-md-component=\"dialog\">\n      <div class=\"md-dialog__inner md-typeset\"><\/div>\n    <\/div>\n    \n    \n    \n      \n      \n      \n    \n    \n      \n      \n        \n      \n        \n      \n        \n      \n    \n  \n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2286","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/pages\/2286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/comments?post=2286"}],"version-history":[{"count":6,"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/pages\/2286\/revisions"}],"predecessor-version":[{"id":2490,"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/pages\/2286\/revisions\/2490"}],"wp:attachment":[{"href":"https:\/\/lightrest.codeline.fr\/index.php\/wp-json\/wp\/v2\/media?parent=2286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}