that is identified by id #documenter.
- */
- /*!
+html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .pagination:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-primary-light{color:#f1f5f9 !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#cddbe9 !important}.has-background-primary-light{background-color:#f1f5f9 !important}.has-text-primary-dark{color:#4d7eb2 !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#7198c1 !important}.has-background-primary-dark{background-color:#4d7eb2 !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-link-light{color:#edfdf9 !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c0f6ec !important}.has-background-link-light{background-color:#edfdf9 !important}.has-text-link-dark{color:#15987e !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#1bc5a4 !important}.has-background-link-dark{background-color:#15987e !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-info-light{color:#ebf7ff !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#b9e2fe !important}.has-background-info-light{background-color:#ebf7ff !important}.has-text-info-dark{color:#0e9dfb !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#40b1fc !important}.has-background-info-dark{background-color:#0e9dfb !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-success-light{color:#ebfff3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#b8ffd6 !important}.has-background-success-light{background-color:#ebfff3 !important}.has-text-success-dark{color:#00eb64 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#1fff7e !important}.has-background-success-dark{background-color:#00eb64 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-warning-light{color:#fffaeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#ffedb8 !important}.has-background-warning-light{background-color:#fffaeb !important}.has-text-warning-dark{color:#d19c00 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#ffbf05 !important}.has-background-warning-dark{background-color:#d19c00 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-danger-light{color:#fdeeec !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#fac3bd !important}.has-background-danger-light{background-color:#fdeeec !important}.has-text-danger-dark{color:#ec311d !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#f05c4c !important}.has-background-danger-dark{background-color:#ec311d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.is-underlined{text-decoration:underline !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}html.theme--documenter-dark{/*!
Theme: a11y-dark
Author: @ericwbailey
Maintainer: @ericwbailey
Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css
-*/
- /* Comment */
- /* Red */
- /* Orange */
- /* Yellow */
- /* Green */
- /* Blue */
- /* Purple */ }
- html.theme--documenter-dark html {
- background-color: #1f2424;
- font-size: 16px;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- min-width: 300px;
- overflow-x: auto;
- overflow-y: scroll;
- text-rendering: optimizeLegibility;
- text-size-adjust: 100%; }
- html.theme--documenter-dark article,
- html.theme--documenter-dark aside,
- html.theme--documenter-dark figure,
- html.theme--documenter-dark footer,
- html.theme--documenter-dark header,
- html.theme--documenter-dark hgroup,
- html.theme--documenter-dark section {
- display: block; }
- html.theme--documenter-dark body,
- html.theme--documenter-dark button,
- html.theme--documenter-dark input,
- html.theme--documenter-dark select,
- html.theme--documenter-dark textarea {
- font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
- html.theme--documenter-dark code,
- html.theme--documenter-dark pre {
- -moz-osx-font-smoothing: auto;
- -webkit-font-smoothing: auto;
- font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
- html.theme--documenter-dark body {
- color: #fff;
- font-size: 1em;
- font-weight: 400;
- line-height: 1.5; }
- html.theme--documenter-dark a {
- color: #1abc9c;
- cursor: pointer;
- text-decoration: none; }
- html.theme--documenter-dark a strong {
- color: currentColor; }
- html.theme--documenter-dark a:hover {
- color: #1dd2af; }
- html.theme--documenter-dark code {
- background-color: rgba(255, 255, 255, 0.05);
- color: #ececec;
- font-size: 0.875em;
- font-weight: normal;
- padding: 0.1em; }
- html.theme--documenter-dark hr {
- background-color: #282f2f;
- border: none;
- display: block;
- height: 2px;
- margin: 1.5rem 0; }
- html.theme--documenter-dark img {
- height: auto;
- max-width: 100%; }
- html.theme--documenter-dark input[type="checkbox"],
- html.theme--documenter-dark input[type="radio"] {
- vertical-align: baseline; }
- html.theme--documenter-dark small {
- font-size: 0.875em; }
- html.theme--documenter-dark span {
- font-style: inherit;
- font-weight: inherit; }
- html.theme--documenter-dark strong {
- color: #f2f2f2;
- font-weight: 700; }
- html.theme--documenter-dark fieldset {
- border: none; }
- html.theme--documenter-dark pre {
- -webkit-overflow-scrolling: touch;
- background-color: #282f2f;
- color: #fff;
- font-size: 0.875em;
- overflow-x: auto;
- padding: 1.25rem 1.5rem;
- white-space: pre;
- word-wrap: normal; }
- html.theme--documenter-dark pre code {
- background-color: transparent;
- color: currentColor;
- font-size: 1em;
- padding: 0; }
- html.theme--documenter-dark table td,
- html.theme--documenter-dark table th {
- vertical-align: top; }
- html.theme--documenter-dark table td:not([align]),
- html.theme--documenter-dark table th:not([align]) {
- text-align: left; }
- html.theme--documenter-dark table th {
- color: #f2f2f2; }
- html.theme--documenter-dark .box {
- background-color: #343c3d;
- border-radius: 8px;
- box-shadow: none;
- color: #fff;
- display: block;
- padding: 1.25rem; }
- html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus {
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; }
- html.theme--documenter-dark a.box:active {
- box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; }
- html.theme--documenter-dark .button {
- background-color: #282f2f;
- border-color: #4c5759;
- border-width: 1px;
- color: #375a7f;
- cursor: pointer;
- justify-content: center;
- padding-bottom: calc(0.375em - 1px);
- padding-left: 0.75em;
- padding-right: 0.75em;
- padding-top: calc(0.375em - 1px);
- text-align: center;
- white-space: nowrap; }
- html.theme--documenter-dark .button strong {
- color: inherit; }
- html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large {
- height: 1.5em;
- width: 1.5em; }
- html.theme--documenter-dark .button .icon:first-child:not(:last-child) {
- margin-left: calc(-0.375em - 1px);
- margin-right: 0.1875em; }
- html.theme--documenter-dark .button .icon:last-child:not(:first-child) {
- margin-left: 0.1875em;
- margin-right: calc(-0.375em - 1px); }
- html.theme--documenter-dark .button .icon:first-child:last-child {
- margin-left: calc(-0.375em - 1px);
- margin-right: calc(-0.375em - 1px); }
- html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered {
- border-color: #8c9b9d;
- color: #f2f2f2; }
- html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused {
- border-color: #8c9b9d;
- color: #17a689; }
- html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
- html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active {
- border-color: #343c3d;
- color: #f2f2f2; }
- html.theme--documenter-dark .button.is-text {
- background-color: transparent;
- border-color: transparent;
- color: #fff;
- text-decoration: underline; }
- html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused {
- background-color: #282f2f;
- color: #f2f2f2; }
- html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active {
- background-color: #1d2122;
- color: #f2f2f2; }
- html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text {
- background-color: transparent;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-white {
- background-color: white;
- border-color: transparent;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-white:hover, html.theme--documenter-dark .button.is-white.is-hovered {
- background-color: #f9f9f9;
- border-color: transparent;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-white:focus, html.theme--documenter-dark .button.is-white.is-focused {
- border-color: transparent;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-white:focus:not(:active), html.theme--documenter-dark .button.is-white.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
- html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white.is-active {
- background-color: #f2f2f2;
- border-color: transparent;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-white[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white {
- background-color: white;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-white.is-inverted {
- background-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered {
- background-color: black; }
- html.theme--documenter-dark .button.is-white.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted {
- background-color: #0a0a0a;
- border-color: transparent;
- box-shadow: none;
- color: white; }
- html.theme--documenter-dark .button.is-white.is-loading::after {
- border-color: transparent transparent #0a0a0a #0a0a0a !important; }
- html.theme--documenter-dark .button.is-white.is-outlined {
- background-color: transparent;
- border-color: white;
- color: white; }
- html.theme--documenter-dark .button.is-white.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-outlined.is-focused {
- background-color: white;
- border-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after {
- border-color: transparent transparent white white !important; }
- html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #0a0a0a #0a0a0a !important; }
- html.theme--documenter-dark .button.is-white.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined {
- background-color: transparent;
- border-color: white;
- box-shadow: none;
- color: white; }
- html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #0a0a0a;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused {
- background-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent white white !important; }
- html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #0a0a0a;
- box-shadow: none;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-black {
- background-color: #0a0a0a;
- border-color: transparent;
- color: white; }
- html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered {
- background-color: #040404;
- border-color: transparent;
- color: white; }
- html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused {
- border-color: transparent;
- color: white; }
- html.theme--documenter-dark .button.is-black:focus:not(:active), html.theme--documenter-dark .button.is-black.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
- html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black.is-active {
- background-color: black;
- border-color: transparent;
- color: white; }
- html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black {
- background-color: #0a0a0a;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-black.is-inverted {
- background-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-black.is-inverted:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- html.theme--documenter-dark .button.is-black.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted {
- background-color: white;
- border-color: transparent;
- box-shadow: none;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-black.is-loading::after {
- border-color: transparent transparent white white !important; }
- html.theme--documenter-dark .button.is-black.is-outlined {
- background-color: transparent;
- border-color: #0a0a0a;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-black.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-outlined.is-focused {
- background-color: #0a0a0a;
- border-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after {
- border-color: transparent transparent #0a0a0a #0a0a0a !important; }
- html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent white white !important; }
- html.theme--documenter-dark .button.is-black.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined {
- background-color: transparent;
- border-color: #0a0a0a;
- box-shadow: none;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
- background-color: transparent;
- border-color: white;
- color: white; }
- html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused {
- background-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #0a0a0a #0a0a0a !important; }
- html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined {
- background-color: transparent;
- border-color: white;
- box-shadow: none;
- color: white; }
- html.theme--documenter-dark .button.is-light {
- background-color: #ecf0f1;
- border-color: transparent;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered {
- background-color: #e5eaec;
- border-color: transparent;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused {
- border-color: transparent;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
- html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active {
- background-color: #dde4e6;
- border-color: transparent;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light {
- background-color: #ecf0f1;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-light.is-inverted {
- background-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered {
- background-color: #1d2122; }
- html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted {
- background-color: #282f2f;
- border-color: transparent;
- box-shadow: none;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-light.is-loading::after {
- border-color: transparent transparent #282f2f #282f2f !important; }
- html.theme--documenter-dark .button.is-light.is-outlined {
- background-color: transparent;
- border-color: #ecf0f1;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused {
- background-color: #ecf0f1;
- border-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after {
- border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
- html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #282f2f #282f2f !important; }
- html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined {
- background-color: transparent;
- border-color: #ecf0f1;
- box-shadow: none;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #282f2f;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused {
- background-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
- html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #282f2f;
- box-shadow: none;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button {
- background-color: #282f2f;
- border-color: transparent;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered {
- background-color: #232829;
- border-color: transparent;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused {
- border-color: transparent;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
- html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active {
- background-color: #1d2122;
- border-color: transparent;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button {
- background-color: #282f2f;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted {
- background-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered {
- background-color: #dde4e6; }
- html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted {
- background-color: #ecf0f1;
- border-color: transparent;
- box-shadow: none;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after {
- border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
- html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined {
- background-color: transparent;
- border-color: #282f2f;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused {
- background-color: #282f2f;
- border-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after {
- border-color: transparent transparent #282f2f #282f2f !important; }
- html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #ecf0f1 #ecf0f1 !important; }
- html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined {
- background-color: transparent;
- border-color: #282f2f;
- box-shadow: none;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #ecf0f1;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused {
- background-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #282f2f #282f2f !important; }
- html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #ecf0f1;
- box-shadow: none;
- color: #ecf0f1; }
- html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
- background-color: #375a7f;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink {
- background-color: #335476;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink {
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
- html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink {
- background-color: #2f4d6d;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink {
- background-color: #375a7f;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
- background-color: #fff;
- color: #375a7f; }
- html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
- background-color: #f2f2f2; }
- html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #375a7f; }
- html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
- background-color: transparent;
- border-color: #375a7f;
- color: #375a7f; }
- html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
- background-color: #375a7f;
- border-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
- border-color: transparent transparent #375a7f #375a7f !important; }
- html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink {
- background-color: transparent;
- border-color: #375a7f;
- box-shadow: none;
- color: #375a7f; }
- html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
- background-color: #fff;
- color: #375a7f; }
- html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
- border-color: transparent transparent #375a7f #375a7f !important; }
- html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- html.theme--documenter-dark .button.is-link {
- background-color: #1abc9c;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered {
- background-color: #18b193;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused {
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
- html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active {
- background-color: #17a689;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link {
- background-color: #1abc9c;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-link.is-inverted {
- background-color: #fff;
- color: #1abc9c; }
- html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #1abc9c; }
- html.theme--documenter-dark .button.is-link.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-link.is-outlined {
- background-color: transparent;
- border-color: #1abc9c;
- color: #1abc9c; }
- html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused {
- background-color: #1abc9c;
- border-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after {
- border-color: transparent transparent #1abc9c #1abc9c !important; }
- html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined {
- background-color: transparent;
- border-color: #1abc9c;
- box-shadow: none;
- color: #1abc9c; }
- html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #1abc9c; }
- html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #1abc9c #1abc9c !important; }
- html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- html.theme--documenter-dark .button.is-info {
- background-color: #024c7d;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered {
- background-color: #024470;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused {
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
- html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active {
- background-color: #023d64;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info {
- background-color: #024c7d;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-info.is-inverted {
- background-color: #fff;
- color: #024c7d; }
- html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #024c7d; }
- html.theme--documenter-dark .button.is-info.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-info.is-outlined {
- background-color: transparent;
- border-color: #024c7d;
- color: #024c7d; }
- html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused {
- background-color: #024c7d;
- border-color: #024c7d;
- color: #fff; }
- html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after {
- border-color: transparent transparent #024c7d #024c7d !important; }
- html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined {
- background-color: transparent;
- border-color: #024c7d;
- box-shadow: none;
- color: #024c7d; }
- html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #024c7d; }
- html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #024c7d #024c7d !important; }
- html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- html.theme--documenter-dark .button.is-success {
- background-color: #008438;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered {
- background-color: #007733;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused {
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
- html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active {
- background-color: #006b2d;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success {
- background-color: #008438;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-success.is-inverted {
- background-color: #fff;
- color: #008438; }
- html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #008438; }
- html.theme--documenter-dark .button.is-success.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-success.is-outlined {
- background-color: transparent;
- border-color: #008438;
- color: #008438; }
- html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused {
- background-color: #008438;
- border-color: #008438;
- color: #fff; }
- html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after {
- border-color: transparent transparent #008438 #008438 !important; }
- html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined {
- background-color: transparent;
- border-color: #008438;
- box-shadow: none;
- color: #008438; }
- html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #008438; }
- html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #008438 #008438 !important; }
- html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- html.theme--documenter-dark .button.is-warning {
- background-color: #ad8100;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered {
- background-color: #a07700;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused {
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
- html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active {
- background-color: #946e00;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning {
- background-color: #ad8100;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-warning.is-inverted {
- background-color: #fff;
- color: #ad8100; }
- html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #ad8100; }
- html.theme--documenter-dark .button.is-warning.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-warning.is-outlined {
- background-color: transparent;
- border-color: #ad8100;
- color: #ad8100; }
- html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused {
- background-color: #ad8100;
- border-color: #ad8100;
- color: #fff; }
- html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after {
- border-color: transparent transparent #ad8100 #ad8100 !important; }
- html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined {
- background-color: transparent;
- border-color: #ad8100;
- box-shadow: none;
- color: #ad8100; }
- html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #ad8100; }
- html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #ad8100 #ad8100 !important; }
- html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- html.theme--documenter-dark .button.is-danger {
- background-color: #9e1b0d;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered {
- background-color: #92190c;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused {
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
- html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active {
- background-color: #86170b;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger {
- background-color: #9e1b0d;
- border-color: transparent;
- box-shadow: none; }
- html.theme--documenter-dark .button.is-danger.is-inverted {
- background-color: #fff;
- color: #9e1b0d; }
- html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #9e1b0d; }
- html.theme--documenter-dark .button.is-danger.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-danger.is-outlined {
- background-color: transparent;
- border-color: #9e1b0d;
- color: #9e1b0d; }
- html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused {
- background-color: #9e1b0d;
- border-color: #9e1b0d;
- color: #fff; }
- html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after {
- border-color: transparent transparent #9e1b0d #9e1b0d !important; }
- html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined {
- background-color: transparent;
- border-color: #9e1b0d;
- box-shadow: none;
- color: #9e1b0d; }
- html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #9e1b0d; }
- html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #9e1b0d #9e1b0d !important; }
- html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
- border-radius: 3px;
- font-size: 0.85em; }
- html.theme--documenter-dark .button.is-normal {
- font-size: 15px; }
- html.theme--documenter-dark .button.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .button.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button {
- background-color: #8c9b9d;
- border-color: #dbdee0;
- box-shadow: none;
- opacity: 0.5; }
- html.theme--documenter-dark .button.is-fullwidth {
- display: flex;
- width: 100%; }
- html.theme--documenter-dark .button.is-loading {
- color: transparent !important;
- pointer-events: none; }
- html.theme--documenter-dark .button.is-loading::after {
- position: absolute;
- left: calc(50% - (1em / 2));
- top: calc(50% - (1em / 2));
- position: absolute !important; }
- html.theme--documenter-dark .button.is-static {
- background-color: #282f2f;
- border-color: #5e6d6f;
- color: #dbdee0;
- box-shadow: none;
- pointer-events: none; }
- html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button {
- border-radius: 290486px;
- padding-left: 1em;
- padding-right: 1em; }
- html.theme--documenter-dark .buttons {
- align-items: center;
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-start; }
- html.theme--documenter-dark .buttons .button {
- margin-bottom: 0.5rem; }
- html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) {
- margin-right: 0.5rem; }
- html.theme--documenter-dark .buttons:last-child {
- margin-bottom: -0.5rem; }
- html.theme--documenter-dark .buttons:not(:last-child) {
- margin-bottom: 1rem; }
- html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
- border-radius: 3px;
- font-size: 0.85em; }
- html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
- font-size: 1.25rem; }
- html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
- font-size: 1.5rem; }
- html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0; }
- html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0;
- margin-right: -1px; }
- html.theme--documenter-dark .buttons.has-addons .button:last-child {
- margin-right: 0; }
- html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered {
- z-index: 2; }
- html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected {
- z-index: 3; }
- html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover {
- z-index: 4; }
- html.theme--documenter-dark .buttons.has-addons .button.is-expanded {
- flex-grow: 1;
- flex-shrink: 1; }
- html.theme--documenter-dark .buttons.is-centered {
- justify-content: center; }
- html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
- margin-left: 0.25rem;
- margin-right: 0.25rem; }
- html.theme--documenter-dark .buttons.is-right {
- justify-content: flex-end; }
- html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
- margin-left: 0.25rem;
- margin-right: 0.25rem; }
- html.theme--documenter-dark .container {
- flex-grow: 1;
- margin: 0 auto;
- position: relative;
- width: auto; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .container {
- max-width: 992px; }
- html.theme--documenter-dark .container.is-fluid {
- margin-left: 32px;
- margin-right: 32px;
- max-width: none; } }
- @media screen and (max-width: 1215px) {
- html.theme--documenter-dark .container.is-widescreen {
- max-width: 1152px; } }
- @media screen and (max-width: 1407px) {
- html.theme--documenter-dark .container.is-fullhd {
- max-width: 1344px; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .container {
- max-width: 1152px; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .container {
- max-width: 1344px; } }
- html.theme--documenter-dark .content li + li {
- margin-top: 0.25em; }
- html.theme--documenter-dark .content p:not(:last-child),
- html.theme--documenter-dark .content dl:not(:last-child),
- html.theme--documenter-dark .content ol:not(:last-child),
- html.theme--documenter-dark .content ul:not(:last-child),
- html.theme--documenter-dark .content blockquote:not(:last-child),
- html.theme--documenter-dark .content pre:not(:last-child),
- html.theme--documenter-dark .content table:not(:last-child) {
- margin-bottom: 1em; }
- html.theme--documenter-dark .content h1,
- html.theme--documenter-dark .content h2,
- html.theme--documenter-dark .content h3,
- html.theme--documenter-dark .content h4,
- html.theme--documenter-dark .content h5,
- html.theme--documenter-dark .content h6 {
- color: #f2f2f2;
- font-weight: 600;
- line-height: 1.125; }
- html.theme--documenter-dark .content h1 {
- font-size: 2em;
- margin-bottom: 0.5em; }
- html.theme--documenter-dark .content h1:not(:first-child) {
- margin-top: 1em; }
- html.theme--documenter-dark .content h2 {
- font-size: 1.75em;
- margin-bottom: 0.5714em; }
- html.theme--documenter-dark .content h2:not(:first-child) {
- margin-top: 1.1428em; }
- html.theme--documenter-dark .content h3 {
- font-size: 1.5em;
- margin-bottom: 0.6666em; }
- html.theme--documenter-dark .content h3:not(:first-child) {
- margin-top: 1.3333em; }
- html.theme--documenter-dark .content h4 {
- font-size: 1.25em;
- margin-bottom: 0.8em; }
- html.theme--documenter-dark .content h5 {
- font-size: 1.125em;
- margin-bottom: 0.8888em; }
- html.theme--documenter-dark .content h6 {
- font-size: 1em;
- margin-bottom: 1em; }
- html.theme--documenter-dark .content blockquote {
- background-color: #282f2f;
- border-left: 5px solid #5e6d6f;
- padding: 1.25em 1.5em; }
- html.theme--documenter-dark .content ol {
- list-style-position: outside;
- margin-left: 2em;
- margin-top: 1em; }
- html.theme--documenter-dark .content ol:not([type]) {
- list-style-type: decimal; }
- html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) {
- list-style-type: lower-alpha; }
- html.theme--documenter-dark .content ol.is-lower-roman:not([type]) {
- list-style-type: lower-roman; }
- html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) {
- list-style-type: upper-alpha; }
- html.theme--documenter-dark .content ol.is-upper-roman:not([type]) {
- list-style-type: upper-roman; }
- html.theme--documenter-dark .content ul {
- list-style: disc outside;
- margin-left: 2em;
- margin-top: 1em; }
- html.theme--documenter-dark .content ul ul {
- list-style-type: circle;
- margin-top: 0.5em; }
- html.theme--documenter-dark .content ul ul ul {
- list-style-type: square; }
- html.theme--documenter-dark .content dd {
- margin-left: 2em; }
- html.theme--documenter-dark .content figure {
- margin-left: 2em;
- margin-right: 2em;
- text-align: center; }
- html.theme--documenter-dark .content figure:not(:first-child) {
- margin-top: 2em; }
- html.theme--documenter-dark .content figure:not(:last-child) {
- margin-bottom: 2em; }
- html.theme--documenter-dark .content figure img {
- display: inline-block; }
- html.theme--documenter-dark .content figure figcaption {
- font-style: italic; }
- html.theme--documenter-dark .content pre {
- -webkit-overflow-scrolling: touch;
- overflow-x: auto;
- padding: 0;
- white-space: pre;
- word-wrap: normal; }
- html.theme--documenter-dark .content sup,
- html.theme--documenter-dark .content sub {
- font-size: 75%; }
- html.theme--documenter-dark .content table {
- width: 100%; }
- html.theme--documenter-dark .content table td,
- html.theme--documenter-dark .content table th {
- border: 1px solid #5e6d6f;
- border-width: 0 0 1px;
- padding: 0.5em 0.75em;
- vertical-align: top; }
- html.theme--documenter-dark .content table th {
- color: #f2f2f2; }
- html.theme--documenter-dark .content table th:not([align]) {
- text-align: left; }
- html.theme--documenter-dark .content table thead td,
- html.theme--documenter-dark .content table thead th {
- border-width: 0 0 2px;
- color: #f2f2f2; }
- html.theme--documenter-dark .content table tfoot td,
- html.theme--documenter-dark .content table tfoot th {
- border-width: 2px 0 0;
- color: #f2f2f2; }
- html.theme--documenter-dark .content table tbody tr:last-child td,
- html.theme--documenter-dark .content table tbody tr:last-child th {
- border-bottom-width: 0; }
- html.theme--documenter-dark .content .tabs li + li {
- margin-top: 0; }
- html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content {
- font-size: 0.85em; }
- html.theme--documenter-dark .content.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .content.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .icon {
- align-items: center;
- display: inline-flex;
- justify-content: center;
- height: 1.5rem;
- width: 1.5rem; }
- html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon {
- height: 1rem;
- width: 1rem; }
- html.theme--documenter-dark .icon.is-medium {
- height: 2rem;
- width: 2rem; }
- html.theme--documenter-dark .icon.is-large {
- height: 3rem;
- width: 3rem; }
- html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
- display: block;
- position: relative; }
- html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img {
- display: block;
- height: auto;
- width: 100%; }
- html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded {
- border-radius: 290486px; }
- html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img,
- html.theme--documenter-dark .image.is-square .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
- html.theme--documenter-dark .image.is-1by1 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
- html.theme--documenter-dark .image.is-5by4 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
- html.theme--documenter-dark .image.is-4by3 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
- html.theme--documenter-dark .image.is-3by2 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
- html.theme--documenter-dark .image.is-5by3 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
- html.theme--documenter-dark .image.is-16by9 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
- html.theme--documenter-dark .image.is-2by1 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
- html.theme--documenter-dark .image.is-3by1 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
- html.theme--documenter-dark .image.is-4by5 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
- html.theme--documenter-dark .image.is-3by4 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
- html.theme--documenter-dark .image.is-2by3 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
- html.theme--documenter-dark .image.is-3by5 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
- html.theme--documenter-dark .image.is-9by16 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
- html.theme--documenter-dark .image.is-1by2 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
- html.theme--documenter-dark .image.is-1by3 .has-ratio,
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
- height: 100%;
- width: 100%; }
- html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 {
- padding-top: 100%; }
- html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 {
- padding-top: 80%; }
- html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 {
- padding-top: 75%; }
- html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 {
- padding-top: 66.6666%; }
- html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 {
- padding-top: 60%; }
- html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 {
- padding-top: 56.25%; }
- html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 {
- padding-top: 50%; }
- html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 {
- padding-top: 33.3333%; }
- html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 {
- padding-top: 125%; }
- html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 {
- padding-top: 133.3333%; }
- html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 {
- padding-top: 150%; }
- html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 {
- padding-top: 166.6666%; }
- html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 {
- padding-top: 177.7777%; }
- html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 {
- padding-top: 200%; }
- html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 {
- padding-top: 300%; }
- html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 {
- height: 16px;
- width: 16px; }
- html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 {
- height: 24px;
- width: 24px; }
- html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 {
- height: 32px;
- width: 32px; }
- html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 {
- height: 48px;
- width: 48px; }
- html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 {
- height: 64px;
- width: 64px; }
- html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 {
- height: 96px;
- width: 96px; }
- html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 {
- height: 128px;
- width: 128px; }
- html.theme--documenter-dark .notification {
- background-color: #282f2f;
- border-radius: 0.4em;
- padding: 1.25rem 2.5rem 1.25rem 1.5rem;
- position: relative; }
- html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) {
- color: currentColor;
- text-decoration: underline; }
- html.theme--documenter-dark .notification strong {
- color: currentColor; }
- html.theme--documenter-dark .notification code,
- html.theme--documenter-dark .notification pre {
- background: white; }
- html.theme--documenter-dark .notification pre code {
- background: transparent; }
- html.theme--documenter-dark .notification > .delete {
- position: absolute;
- right: 0.5rem;
- top: 0.5rem; }
- html.theme--documenter-dark .notification .title,
- html.theme--documenter-dark .notification .subtitle,
- html.theme--documenter-dark .notification .content {
- color: currentColor; }
- html.theme--documenter-dark .notification.is-white {
- background-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .notification.is-black {
- background-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .notification.is-light {
- background-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification {
- background-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink {
- background-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .notification.is-link {
- background-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .notification.is-info {
- background-color: #024c7d;
- color: #fff; }
- html.theme--documenter-dark .notification.is-success {
- background-color: #008438;
- color: #fff; }
- html.theme--documenter-dark .notification.is-warning {
- background-color: #ad8100;
- color: #fff; }
- html.theme--documenter-dark .notification.is-danger {
- background-color: #9e1b0d;
- color: #fff; }
- html.theme--documenter-dark .progress {
- -moz-appearance: none;
- -webkit-appearance: none;
- border: none;
- border-radius: 290486px;
- display: block;
- height: 15px;
- overflow: hidden;
- padding: 0;
- width: 100%; }
- html.theme--documenter-dark .progress::-webkit-progress-bar {
- background-color: #5e6d6f; }
- html.theme--documenter-dark .progress::-webkit-progress-value {
- background-color: #dbdee0; }
- html.theme--documenter-dark .progress::-moz-progress-bar {
- background-color: #dbdee0; }
- html.theme--documenter-dark .progress::-ms-fill {
- background-color: #dbdee0;
- border: none; }
- html.theme--documenter-dark .progress.is-white::-webkit-progress-value {
- background-color: white; }
- html.theme--documenter-dark .progress.is-white::-moz-progress-bar {
- background-color: white; }
- html.theme--documenter-dark .progress.is-white::-ms-fill {
- background-color: white; }
- html.theme--documenter-dark .progress.is-white:indeterminate {
- background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-black::-webkit-progress-value {
- background-color: #0a0a0a; }
- html.theme--documenter-dark .progress.is-black::-moz-progress-bar {
- background-color: #0a0a0a; }
- html.theme--documenter-dark .progress.is-black::-ms-fill {
- background-color: #0a0a0a; }
- html.theme--documenter-dark .progress.is-black:indeterminate {
- background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-light::-webkit-progress-value {
- background-color: #ecf0f1; }
- html.theme--documenter-dark .progress.is-light::-moz-progress-bar {
- background-color: #ecf0f1; }
- html.theme--documenter-dark .progress.is-light::-ms-fill {
- background-color: #ecf0f1; }
- html.theme--documenter-dark .progress.is-light:indeterminate {
- background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value {
- background-color: #282f2f; }
- html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar {
- background-color: #282f2f; }
- html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill {
- background-color: #282f2f; }
- html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate {
- background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
- background-color: #375a7f; }
- html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
- background-color: #375a7f; }
- html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill {
- background-color: #375a7f; }
- html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate {
- background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-link::-webkit-progress-value {
- background-color: #1abc9c; }
- html.theme--documenter-dark .progress.is-link::-moz-progress-bar {
- background-color: #1abc9c; }
- html.theme--documenter-dark .progress.is-link::-ms-fill {
- background-color: #1abc9c; }
- html.theme--documenter-dark .progress.is-link:indeterminate {
- background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-info::-webkit-progress-value {
- background-color: #024c7d; }
- html.theme--documenter-dark .progress.is-info::-moz-progress-bar {
- background-color: #024c7d; }
- html.theme--documenter-dark .progress.is-info::-ms-fill {
- background-color: #024c7d; }
- html.theme--documenter-dark .progress.is-info:indeterminate {
- background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-success::-webkit-progress-value {
- background-color: #008438; }
- html.theme--documenter-dark .progress.is-success::-moz-progress-bar {
- background-color: #008438; }
- html.theme--documenter-dark .progress.is-success::-ms-fill {
- background-color: #008438; }
- html.theme--documenter-dark .progress.is-success:indeterminate {
- background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-warning::-webkit-progress-value {
- background-color: #ad8100; }
- html.theme--documenter-dark .progress.is-warning::-moz-progress-bar {
- background-color: #ad8100; }
- html.theme--documenter-dark .progress.is-warning::-ms-fill {
- background-color: #ad8100; }
- html.theme--documenter-dark .progress.is-warning:indeterminate {
- background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress.is-danger::-webkit-progress-value {
- background-color: #9e1b0d; }
- html.theme--documenter-dark .progress.is-danger::-moz-progress-bar {
- background-color: #9e1b0d; }
- html.theme--documenter-dark .progress.is-danger::-ms-fill {
- background-color: #9e1b0d; }
- html.theme--documenter-dark .progress.is-danger:indeterminate {
- background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); }
- html.theme--documenter-dark .progress:indeterminate {
- animation-duration: 1.5s;
- animation-iteration-count: infinite;
- animation-name: moveIndeterminate;
- animation-timing-function: linear;
- background-color: #5e6d6f;
- background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%);
- background-position: top left;
- background-repeat: no-repeat;
- background-size: 150% 150%; }
- html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar {
- background-color: transparent; }
- html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar {
- background-color: transparent; }
- html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress {
- height: 0.85em; }
- html.theme--documenter-dark .progress.is-medium {
- height: 1.25rem; }
- html.theme--documenter-dark .progress.is-large {
- height: 1.5rem; }
-
-@keyframes moveIndeterminate {
- from {
- background-position: 200% 0; }
- to {
- background-position: -200% 0; } }
- html.theme--documenter-dark .table {
- background-color: #343c3d;
- color: #fff; }
- html.theme--documenter-dark .table td,
- html.theme--documenter-dark .table th {
- border: 1px solid #5e6d6f;
- border-width: 0 0 1px;
- padding: 0.5em 0.75em;
- vertical-align: top; }
- html.theme--documenter-dark .table td.is-white,
- html.theme--documenter-dark .table th.is-white {
- background-color: white;
- border-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .table td.is-black,
- html.theme--documenter-dark .table th.is-black {
- background-color: #0a0a0a;
- border-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .table td.is-light,
- html.theme--documenter-dark .table th.is-light {
- background-color: #ecf0f1;
- border-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .table td.is-dark,
- html.theme--documenter-dark .table th.is-dark {
- background-color: #282f2f;
- border-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .table td.is-primary,
- html.theme--documenter-dark .table th.is-primary {
- background-color: #375a7f;
- border-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .table td.is-link,
- html.theme--documenter-dark .table th.is-link {
- background-color: #1abc9c;
- border-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .table td.is-info,
- html.theme--documenter-dark .table th.is-info {
- background-color: #024c7d;
- border-color: #024c7d;
- color: #fff; }
- html.theme--documenter-dark .table td.is-success,
- html.theme--documenter-dark .table th.is-success {
- background-color: #008438;
- border-color: #008438;
- color: #fff; }
- html.theme--documenter-dark .table td.is-warning,
- html.theme--documenter-dark .table th.is-warning {
- background-color: #ad8100;
- border-color: #ad8100;
- color: #fff; }
- html.theme--documenter-dark .table td.is-danger,
- html.theme--documenter-dark .table th.is-danger {
- background-color: #9e1b0d;
- border-color: #9e1b0d;
- color: #fff; }
- html.theme--documenter-dark .table td.is-narrow,
- html.theme--documenter-dark .table th.is-narrow {
- white-space: nowrap;
- width: 1%; }
- html.theme--documenter-dark .table td.is-selected,
- html.theme--documenter-dark .table th.is-selected {
- background-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .table td.is-selected a,
- html.theme--documenter-dark .table td.is-selected strong,
- html.theme--documenter-dark .table th.is-selected a,
- html.theme--documenter-dark .table th.is-selected strong {
- color: currentColor; }
- html.theme--documenter-dark .table th {
- color: #f2f2f2; }
- html.theme--documenter-dark .table th:not([align]) {
- text-align: left; }
- html.theme--documenter-dark .table tr.is-selected {
- background-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .table tr.is-selected a,
- html.theme--documenter-dark .table tr.is-selected strong {
- color: currentColor; }
- html.theme--documenter-dark .table tr.is-selected td,
- html.theme--documenter-dark .table tr.is-selected th {
- border-color: #fff;
- color: currentColor; }
- html.theme--documenter-dark .table thead {
- background-color: transparent; }
- html.theme--documenter-dark .table thead td,
- html.theme--documenter-dark .table thead th {
- border-width: 0 0 2px;
- color: #f2f2f2; }
- html.theme--documenter-dark .table tfoot {
- background-color: transparent; }
- html.theme--documenter-dark .table tfoot td,
- html.theme--documenter-dark .table tfoot th {
- border-width: 2px 0 0;
- color: #f2f2f2; }
- html.theme--documenter-dark .table tbody {
- background-color: transparent; }
- html.theme--documenter-dark .table tbody tr:last-child td,
- html.theme--documenter-dark .table tbody tr:last-child th {
- border-bottom-width: 0; }
- html.theme--documenter-dark .table.is-bordered td,
- html.theme--documenter-dark .table.is-bordered th {
- border-width: 1px; }
- html.theme--documenter-dark .table.is-bordered tr:last-child td,
- html.theme--documenter-dark .table.is-bordered tr:last-child th {
- border-bottom-width: 1px; }
- html.theme--documenter-dark .table.is-fullwidth {
- width: 100%; }
- html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover {
- background-color: #282f2f; }
- html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
- background-color: #282f2f; }
- html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
- background-color: #2d3435; }
- html.theme--documenter-dark .table.is-narrow td,
- html.theme--documenter-dark .table.is-narrow th {
- padding: 0.25em 0.5em; }
- html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
- background-color: #282f2f; }
- html.theme--documenter-dark .table-container {
- -webkit-overflow-scrolling: touch;
- overflow: auto;
- overflow-y: hidden;
- max-width: 100%; }
- html.theme--documenter-dark .tags {
- align-items: center;
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-start; }
- html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink {
- margin-bottom: 0.5rem; }
- html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
- margin-right: 0.5rem; }
- html.theme--documenter-dark .tags:last-child {
- margin-bottom: -0.5rem; }
- html.theme--documenter-dark .tags:not(:last-child) {
- margin-bottom: 1rem; }
- html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
- font-size: 15px; }
- html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
- font-size: 1.25rem; }
- html.theme--documenter-dark .tags.is-centered {
- justify-content: center; }
- html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink {
- margin-right: 0.25rem;
- margin-left: 0.25rem; }
- html.theme--documenter-dark .tags.is-right {
- justify-content: flex-end; }
- html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
- margin-left: 0.5rem; }
- html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
- margin-right: 0; }
- html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink {
- margin-right: 0; }
- html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
- margin-left: 0;
- border-bottom-left-radius: 0;
- border-top-left-radius: 0; }
- html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0; }
- html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
- align-items: center;
- background-color: #282f2f;
- border-radius: 0.4em;
- color: #fff;
- display: inline-flex;
- font-size: 0.85em;
- height: 2em;
- justify-content: center;
- line-height: 1.5;
- padding-left: 0.75em;
- padding-right: 0.75em;
- white-space: nowrap; }
- html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete {
- margin-left: 0.25rem;
- margin-right: -0.375rem; }
- html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) {
- background-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .tag.is-black:not(body), html.theme--documenter-dark .content kbd.is-black:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-black:not(body) {
- background-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) {
- background-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) {
- background-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) {
- background-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) {
- background-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) {
- background-color: #024c7d;
- color: #fff; }
- html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) {
- background-color: #008438;
- color: #fff; }
- html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) {
- background-color: #ad8100;
- color: #fff; }
- html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) {
- background-color: #9e1b0d;
- color: #fff; }
- html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) {
- font-size: 0.85em; }
- html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) {
- font-size: 15px; }
- html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) {
- font-size: 1.25rem; }
- html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
- margin-left: -0.375em;
- margin-right: 0.1875em; }
- html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
- margin-left: 0.1875em;
- margin-right: -0.375em; }
- html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
- margin-left: -0.375em;
- margin-right: -0.375em; }
- html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) {
- margin-left: 1px;
- padding: 0;
- position: relative;
- width: 2em; }
- html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
- background-color: currentColor;
- content: "";
- display: block;
- left: 50%;
- position: absolute;
- top: 50%;
- transform: translateX(-50%) translateY(-50%) rotate(45deg);
- transform-origin: center center; }
- html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
- height: 1px;
- width: 50%; }
- html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
- height: 50%;
- width: 1px; }
- html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
- background-color: #1d2122; }
- html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
- background-color: #111414; }
- html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
- border-radius: 290486px; }
- html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover {
- text-decoration: underline; }
- html.theme--documenter-dark .title,
- html.theme--documenter-dark .subtitle {
- word-break: break-word; }
- html.theme--documenter-dark .title em,
- html.theme--documenter-dark .title span,
- html.theme--documenter-dark .subtitle em,
- html.theme--documenter-dark .subtitle span {
- font-weight: inherit; }
- html.theme--documenter-dark .title sub,
- html.theme--documenter-dark .subtitle sub {
- font-size: 0.75em; }
- html.theme--documenter-dark .title sup,
- html.theme--documenter-dark .subtitle sup {
- font-size: 0.75em; }
- html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink,
- html.theme--documenter-dark .subtitle .tag,
- html.theme--documenter-dark .subtitle .content kbd,
- html.theme--documenter-dark .content .subtitle kbd,
- html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink {
- vertical-align: middle; }
- html.theme--documenter-dark .title {
- color: #fff;
- font-size: 2rem;
- font-weight: 500;
- line-height: 1.125; }
- html.theme--documenter-dark .title strong {
- color: inherit;
- font-weight: inherit; }
- html.theme--documenter-dark .title + .highlight {
- margin-top: -0.75rem; }
- html.theme--documenter-dark .title:not(.is-spaced) + .subtitle {
- margin-top: -1.25rem; }
- html.theme--documenter-dark .title.is-1 {
- font-size: 3rem; }
- html.theme--documenter-dark .title.is-2 {
- font-size: 2.5rem; }
- html.theme--documenter-dark .title.is-3 {
- font-size: 2rem; }
- html.theme--documenter-dark .title.is-4 {
- font-size: 1.5rem; }
- html.theme--documenter-dark .title.is-5 {
- font-size: 1.25rem; }
- html.theme--documenter-dark .title.is-6 {
- font-size: 15px; }
- html.theme--documenter-dark .title.is-7 {
- font-size: 0.85em; }
- html.theme--documenter-dark .subtitle {
- color: #8c9b9d;
- font-size: 1.25rem;
- font-weight: 400;
- line-height: 1.25; }
- html.theme--documenter-dark .subtitle strong {
- color: #8c9b9d;
- font-weight: 600; }
- html.theme--documenter-dark .subtitle:not(.is-spaced) + .title {
- margin-top: -1.25rem; }
- html.theme--documenter-dark .subtitle.is-1 {
- font-size: 3rem; }
- html.theme--documenter-dark .subtitle.is-2 {
- font-size: 2.5rem; }
- html.theme--documenter-dark .subtitle.is-3 {
- font-size: 2rem; }
- html.theme--documenter-dark .subtitle.is-4 {
- font-size: 1.5rem; }
- html.theme--documenter-dark .subtitle.is-5 {
- font-size: 1.25rem; }
- html.theme--documenter-dark .subtitle.is-6 {
- font-size: 15px; }
- html.theme--documenter-dark .subtitle.is-7 {
- font-size: 0.85em; }
- html.theme--documenter-dark .heading {
- display: block;
- font-size: 11px;
- letter-spacing: 1px;
- margin-bottom: 5px;
- text-transform: uppercase; }
- html.theme--documenter-dark .highlight {
- font-weight: 400;
- max-width: 100%;
- overflow: hidden;
- padding: 0; }
- html.theme--documenter-dark .highlight pre {
- overflow: auto;
- max-width: 100%; }
- html.theme--documenter-dark .number {
- align-items: center;
- background-color: #282f2f;
- border-radius: 290486px;
- display: inline-flex;
- font-size: 1.25rem;
- height: 2em;
- justify-content: center;
- margin-right: 1.5rem;
- min-width: 2.5em;
- padding: 0.25rem 0.5rem;
- text-align: center;
- vertical-align: top; }
- html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
- background-color: #1f2424;
- border-color: #5e6d6f;
- border-radius: 0.4em;
- color: #dbdee0; }
- html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
- color: rgba(219, 222, 224, 0.3); }
- html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
- color: rgba(219, 222, 224, 0.3); }
- html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
- color: rgba(219, 222, 224, 0.3); }
- html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
- color: rgba(219, 222, 224, 0.3); }
- html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered {
- border-color: #8c9b9d; }
- html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- border-color: #1abc9c;
- box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
- html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
- background-color: #8c9b9d;
- border-color: #282f2f;
- box-shadow: none;
- color: white; }
- html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
- color: rgba(255, 255, 255, 0.3); }
- html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
- color: rgba(255, 255, 255, 0.3); }
- html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
- color: rgba(255, 255, 255, 0.3); }
- html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
- color: rgba(255, 255, 255, 0.3); }
- html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
- box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
- max-width: 100%;
- width: 100%; }
- html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] {
- box-shadow: none; }
- html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white {
- border-color: white; }
- html.theme--documenter-dark .is-white.textarea:focus, html.theme--documenter-dark .is-white.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:focus, html.theme--documenter-dark .is-white.is-focused.textarea, html.theme--documenter-dark .is-white.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-white.textarea:active, html.theme--documenter-dark .is-white.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white:active, html.theme--documenter-dark .is-white.is-active.textarea, html.theme--documenter-dark .is-white.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
- html.theme--documenter-dark .is-black.textarea, html.theme--documenter-dark .is-black.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black {
- border-color: #0a0a0a; }
- html.theme--documenter-dark .is-black.textarea:focus, html.theme--documenter-dark .is-black.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:focus, html.theme--documenter-dark .is-black.is-focused.textarea, html.theme--documenter-dark .is-black.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-black.textarea:active, html.theme--documenter-dark .is-black.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-black:active, html.theme--documenter-dark .is-black.is-active.textarea, html.theme--documenter-dark .is-black.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
- html.theme--documenter-dark .is-light.textarea, html.theme--documenter-dark .is-light.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light {
- border-color: #ecf0f1; }
- html.theme--documenter-dark .is-light.textarea:focus, html.theme--documenter-dark .is-light.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:focus, html.theme--documenter-dark .is-light.is-focused.textarea, html.theme--documenter-dark .is-light.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-light.textarea:active, html.theme--documenter-dark .is-light.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-light:active, html.theme--documenter-dark .is-light.is-active.textarea, html.theme--documenter-dark .is-light.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
- html.theme--documenter-dark .is-dark.textarea, html.theme--documenter-dark .content kbd.textarea, html.theme--documenter-dark .is-dark.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark, html.theme--documenter-dark .content kbd.input {
- border-color: #282f2f; }
- html.theme--documenter-dark .is-dark.textarea:focus, html.theme--documenter-dark .content kbd.textarea:focus, html.theme--documenter-dark .is-dark.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:focus, html.theme--documenter-dark .content kbd.input:focus, html.theme--documenter-dark .is-dark.is-focused.textarea, html.theme--documenter-dark .content kbd.is-focused.textarea, html.theme--documenter-dark .is-dark.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .content kbd.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-focused, html.theme--documenter-dark .is-dark.textarea:active, html.theme--documenter-dark .content kbd.textarea:active, html.theme--documenter-dark .is-dark.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-dark:active, html.theme--documenter-dark .content kbd.input:active, html.theme--documenter-dark .is-dark.is-active.textarea, html.theme--documenter-dark .content kbd.is-active.textarea, html.theme--documenter-dark .is-dark.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .content kbd.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
- html.theme--documenter-dark .is-primary.textarea, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink {
- border-color: #375a7f; }
- html.theme--documenter-dark .is-primary.textarea:focus, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:focus, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:focus, html.theme--documenter-dark .is-primary.is-focused.textarea, html.theme--documenter-dark .docstring > section > a.is-focused.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .docstring > section > a.is-focused.input.docs-sourcelink, html.theme--documenter-dark .is-primary.textarea:active, html.theme--documenter-dark .docstring > section > a.textarea.docs-sourcelink:active, html.theme--documenter-dark .is-primary.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-primary:active, html.theme--documenter-dark .docstring > section > a.input.docs-sourcelink:active, html.theme--documenter-dark .is-primary.is-active.textarea, html.theme--documenter-dark .docstring > section > a.is-active.textarea.docs-sourcelink, html.theme--documenter-dark .is-primary.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .docstring > section > a.is-active.input.docs-sourcelink {
- box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
- html.theme--documenter-dark .is-link.textarea, html.theme--documenter-dark .is-link.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link {
- border-color: #1abc9c; }
- html.theme--documenter-dark .is-link.textarea:focus, html.theme--documenter-dark .is-link.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:focus, html.theme--documenter-dark .is-link.is-focused.textarea, html.theme--documenter-dark .is-link.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-link.textarea:active, html.theme--documenter-dark .is-link.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-link:active, html.theme--documenter-dark .is-link.is-active.textarea, html.theme--documenter-dark .is-link.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
- html.theme--documenter-dark .is-info.textarea, html.theme--documenter-dark .is-info.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info {
- border-color: #024c7d; }
- html.theme--documenter-dark .is-info.textarea:focus, html.theme--documenter-dark .is-info.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:focus, html.theme--documenter-dark .is-info.is-focused.textarea, html.theme--documenter-dark .is-info.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-info.textarea:active, html.theme--documenter-dark .is-info.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-info:active, html.theme--documenter-dark .is-info.is-active.textarea, html.theme--documenter-dark .is-info.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
- html.theme--documenter-dark .is-success.textarea, html.theme--documenter-dark .is-success.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success {
- border-color: #008438; }
- html.theme--documenter-dark .is-success.textarea:focus, html.theme--documenter-dark .is-success.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:focus, html.theme--documenter-dark .is-success.is-focused.textarea, html.theme--documenter-dark .is-success.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-success.textarea:active, html.theme--documenter-dark .is-success.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-success:active, html.theme--documenter-dark .is-success.is-active.textarea, html.theme--documenter-dark .is-success.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
- html.theme--documenter-dark .is-warning.textarea, html.theme--documenter-dark .is-warning.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning {
- border-color: #ad8100; }
- html.theme--documenter-dark .is-warning.textarea:focus, html.theme--documenter-dark .is-warning.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:focus, html.theme--documenter-dark .is-warning.is-focused.textarea, html.theme--documenter-dark .is-warning.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-warning.textarea:active, html.theme--documenter-dark .is-warning.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-warning:active, html.theme--documenter-dark .is-warning.is-active.textarea, html.theme--documenter-dark .is-warning.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
- html.theme--documenter-dark .is-danger.textarea, html.theme--documenter-dark .is-danger.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger {
- border-color: #9e1b0d; }
- html.theme--documenter-dark .is-danger.textarea:focus, html.theme--documenter-dark .is-danger.input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:focus, html.theme--documenter-dark .is-danger.is-focused.textarea, html.theme--documenter-dark .is-danger.is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-danger.textarea:active, html.theme--documenter-dark .is-danger.input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-danger:active, html.theme--documenter-dark .is-danger.is-active.textarea, html.theme--documenter-dark .is-danger.is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
- html.theme--documenter-dark .is-small.textarea, html.theme--documenter-dark .is-small.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
- border-radius: 3px;
- font-size: 0.85em; }
- html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
- display: block;
- width: 100%; }
- html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline {
- display: inline;
- width: auto; }
- html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
- border-radius: 290486px;
- padding-left: 1em;
- padding-right: 1em; }
- html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static {
- background-color: transparent;
- border-color: transparent;
- box-shadow: none;
- padding-left: 0;
- padding-right: 0; }
- html.theme--documenter-dark .textarea {
- display: block;
- max-width: 100%;
- min-width: 100%;
- padding: 0.625em;
- resize: vertical; }
- html.theme--documenter-dark .textarea:not([rows]) {
- max-height: 600px;
- min-height: 120px; }
- html.theme--documenter-dark .textarea[rows] {
- height: initial; }
- html.theme--documenter-dark .textarea.has-fixed-size {
- resize: none; }
- html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox {
- cursor: pointer;
- display: inline-block;
- line-height: 1.25;
- position: relative; }
- html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input {
- cursor: pointer; }
- html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover {
- color: #8c9b9d; }
- html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox {
- color: white;
- cursor: not-allowed; }
- html.theme--documenter-dark .radio + .radio {
- margin-left: 0.5em; }
- html.theme--documenter-dark .select {
- display: inline-block;
- max-width: 100%;
- position: relative;
- vertical-align: top; }
- html.theme--documenter-dark .select:not(.is-multiple) {
- height: 2.25em; }
- html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after {
- border-color: #1abc9c;
- right: 1.125em;
- z-index: 4; }
- html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select {
- border-radius: 290486px;
- padding-left: 1em; }
- html.theme--documenter-dark .select select {
- cursor: pointer;
- display: block;
- font-size: 1em;
- max-width: 100%;
- outline: none; }
- html.theme--documenter-dark .select select::-ms-expand {
- display: none; }
- html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover {
- border-color: #282f2f; }
- html.theme--documenter-dark .select select:not([multiple]) {
- padding-right: 2.5em; }
- html.theme--documenter-dark .select select[multiple] {
- height: auto;
- padding: 0; }
- html.theme--documenter-dark .select select[multiple] option {
- padding: 0.5em 1em; }
- html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after {
- border-color: #8c9b9d; }
- html.theme--documenter-dark .select.is-white:not(:hover)::after {
- border-color: white; }
- html.theme--documenter-dark .select.is-white select {
- border-color: white; }
- html.theme--documenter-dark .select.is-white select:hover, html.theme--documenter-dark .select.is-white select.is-hovered {
- border-color: #f2f2f2; }
- html.theme--documenter-dark .select.is-white select:focus, html.theme--documenter-dark .select.is-white select.is-focused, html.theme--documenter-dark .select.is-white select:active, html.theme--documenter-dark .select.is-white select.is-active {
- box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
- html.theme--documenter-dark .select.is-black:not(:hover)::after {
- border-color: #0a0a0a; }
- html.theme--documenter-dark .select.is-black select {
- border-color: #0a0a0a; }
- html.theme--documenter-dark .select.is-black select:hover, html.theme--documenter-dark .select.is-black select.is-hovered {
- border-color: black; }
- html.theme--documenter-dark .select.is-black select:focus, html.theme--documenter-dark .select.is-black select.is-focused, html.theme--documenter-dark .select.is-black select:active, html.theme--documenter-dark .select.is-black select.is-active {
- box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
- html.theme--documenter-dark .select.is-light:not(:hover)::after {
- border-color: #ecf0f1; }
- html.theme--documenter-dark .select.is-light select {
- border-color: #ecf0f1; }
- html.theme--documenter-dark .select.is-light select:hover, html.theme--documenter-dark .select.is-light select.is-hovered {
- border-color: #dde4e6; }
- html.theme--documenter-dark .select.is-light select:focus, html.theme--documenter-dark .select.is-light select.is-focused, html.theme--documenter-dark .select.is-light select:active, html.theme--documenter-dark .select.is-light select.is-active {
- box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); }
- html.theme--documenter-dark .select.is-dark:not(:hover)::after, html.theme--documenter-dark .content kbd.select:not(:hover)::after {
- border-color: #282f2f; }
- html.theme--documenter-dark .select.is-dark select, html.theme--documenter-dark .content kbd.select select {
- border-color: #282f2f; }
- html.theme--documenter-dark .select.is-dark select:hover, html.theme--documenter-dark .content kbd.select select:hover, html.theme--documenter-dark .select.is-dark select.is-hovered, html.theme--documenter-dark .content kbd.select select.is-hovered {
- border-color: #1d2122; }
- html.theme--documenter-dark .select.is-dark select:focus, html.theme--documenter-dark .content kbd.select select:focus, html.theme--documenter-dark .select.is-dark select.is-focused, html.theme--documenter-dark .content kbd.select select.is-focused, html.theme--documenter-dark .select.is-dark select:active, html.theme--documenter-dark .content kbd.select select:active, html.theme--documenter-dark .select.is-dark select.is-active, html.theme--documenter-dark .content kbd.select select.is-active {
- box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); }
- html.theme--documenter-dark .select.is-primary:not(:hover)::after, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
- border-color: #375a7f; }
- html.theme--documenter-dark .select.is-primary select, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select {
- border-color: #375a7f; }
- html.theme--documenter-dark .select.is-primary select:hover, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:hover, html.theme--documenter-dark .select.is-primary select.is-hovered, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-hovered {
- border-color: #2f4d6d; }
- html.theme--documenter-dark .select.is-primary select:focus, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:focus, html.theme--documenter-dark .select.is-primary select.is-focused, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-focused, html.theme--documenter-dark .select.is-primary select:active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select:active, html.theme--documenter-dark .select.is-primary select.is-active, html.theme--documenter-dark .docstring > section > a.select.docs-sourcelink select.is-active {
- box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); }
- html.theme--documenter-dark .select.is-link:not(:hover)::after {
- border-color: #1abc9c; }
- html.theme--documenter-dark .select.is-link select {
- border-color: #1abc9c; }
- html.theme--documenter-dark .select.is-link select:hover, html.theme--documenter-dark .select.is-link select.is-hovered {
- border-color: #17a689; }
- html.theme--documenter-dark .select.is-link select:focus, html.theme--documenter-dark .select.is-link select.is-focused, html.theme--documenter-dark .select.is-link select:active, html.theme--documenter-dark .select.is-link select.is-active {
- box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); }
- html.theme--documenter-dark .select.is-info:not(:hover)::after {
- border-color: #024c7d; }
- html.theme--documenter-dark .select.is-info select {
- border-color: #024c7d; }
- html.theme--documenter-dark .select.is-info select:hover, html.theme--documenter-dark .select.is-info select.is-hovered {
- border-color: #023d64; }
- html.theme--documenter-dark .select.is-info select:focus, html.theme--documenter-dark .select.is-info select.is-focused, html.theme--documenter-dark .select.is-info select:active, html.theme--documenter-dark .select.is-info select.is-active {
- box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); }
- html.theme--documenter-dark .select.is-success:not(:hover)::after {
- border-color: #008438; }
- html.theme--documenter-dark .select.is-success select {
- border-color: #008438; }
- html.theme--documenter-dark .select.is-success select:hover, html.theme--documenter-dark .select.is-success select.is-hovered {
- border-color: #006b2d; }
- html.theme--documenter-dark .select.is-success select:focus, html.theme--documenter-dark .select.is-success select.is-focused, html.theme--documenter-dark .select.is-success select:active, html.theme--documenter-dark .select.is-success select.is-active {
- box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); }
- html.theme--documenter-dark .select.is-warning:not(:hover)::after {
- border-color: #ad8100; }
- html.theme--documenter-dark .select.is-warning select {
- border-color: #ad8100; }
- html.theme--documenter-dark .select.is-warning select:hover, html.theme--documenter-dark .select.is-warning select.is-hovered {
- border-color: #946e00; }
- html.theme--documenter-dark .select.is-warning select:focus, html.theme--documenter-dark .select.is-warning select.is-focused, html.theme--documenter-dark .select.is-warning select:active, html.theme--documenter-dark .select.is-warning select.is-active {
- box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); }
- html.theme--documenter-dark .select.is-danger:not(:hover)::after {
- border-color: #9e1b0d; }
- html.theme--documenter-dark .select.is-danger select {
- border-color: #9e1b0d; }
- html.theme--documenter-dark .select.is-danger select:hover, html.theme--documenter-dark .select.is-danger select.is-hovered {
- border-color: #86170b; }
- html.theme--documenter-dark .select.is-danger select:focus, html.theme--documenter-dark .select.is-danger select.is-focused, html.theme--documenter-dark .select.is-danger select:active, html.theme--documenter-dark .select.is-danger select.is-active {
- box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); }
- html.theme--documenter-dark .select.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select {
- border-radius: 3px;
- font-size: 0.85em; }
- html.theme--documenter-dark .select.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .select.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .select.is-disabled::after {
- border-color: white; }
- html.theme--documenter-dark .select.is-fullwidth {
- width: 100%; }
- html.theme--documenter-dark .select.is-fullwidth select {
- width: 100%; }
- html.theme--documenter-dark .select.is-loading::after {
- margin-top: 0;
- position: absolute;
- right: 0.625em;
- top: 0.625em;
- transform: none; }
- html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
- font-size: 0.85em; }
- html.theme--documenter-dark .select.is-loading.is-medium:after {
- font-size: 1.25rem; }
- html.theme--documenter-dark .select.is-loading.is-large:after {
- font-size: 1.5rem; }
- html.theme--documenter-dark .file {
- align-items: stretch;
- display: flex;
- justify-content: flex-start;
- position: relative; }
- html.theme--documenter-dark .file.is-white .file-cta {
- background-color: white;
- border-color: transparent;
- color: #0a0a0a; }
- html.theme--documenter-dark .file.is-white:hover .file-cta, html.theme--documenter-dark .file.is-white.is-hovered .file-cta {
- background-color: #f9f9f9;
- border-color: transparent;
- color: #0a0a0a; }
- html.theme--documenter-dark .file.is-white:focus .file-cta, html.theme--documenter-dark .file.is-white.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
- color: #0a0a0a; }
- html.theme--documenter-dark .file.is-white:active .file-cta, html.theme--documenter-dark .file.is-white.is-active .file-cta {
- background-color: #f2f2f2;
- border-color: transparent;
- color: #0a0a0a; }
- html.theme--documenter-dark .file.is-black .file-cta {
- background-color: #0a0a0a;
- border-color: transparent;
- color: white; }
- html.theme--documenter-dark .file.is-black:hover .file-cta, html.theme--documenter-dark .file.is-black.is-hovered .file-cta {
- background-color: #040404;
- border-color: transparent;
- color: white; }
- html.theme--documenter-dark .file.is-black:focus .file-cta, html.theme--documenter-dark .file.is-black.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
- color: white; }
- html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta {
- background-color: black;
- border-color: transparent;
- color: white; }
- html.theme--documenter-dark .file.is-light .file-cta {
- background-color: #ecf0f1;
- border-color: transparent;
- color: #282f2f; }
- html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta {
- background-color: #e5eaec;
- border-color: transparent;
- color: #282f2f; }
- html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25);
- color: #282f2f; }
- html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta {
- background-color: #dde4e6;
- border-color: transparent;
- color: #282f2f; }
- html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta {
- background-color: #282f2f;
- border-color: transparent;
- color: #ecf0f1; }
- html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta {
- background-color: #232829;
- border-color: transparent;
- color: #ecf0f1; }
- html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25);
- color: #ecf0f1; }
- html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta {
- background-color: #1d2122;
- border-color: transparent;
- color: #ecf0f1; }
- html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta {
- background-color: #375a7f;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
- background-color: #335476;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25);
- color: #fff; }
- html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
- background-color: #2f4d6d;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-link .file-cta {
- background-color: #1abc9c;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta {
- background-color: #18b193;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25);
- color: #fff; }
- html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta {
- background-color: #17a689;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-info .file-cta {
- background-color: #024c7d;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta {
- background-color: #024470;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25);
- color: #fff; }
- html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta {
- background-color: #023d64;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-success .file-cta {
- background-color: #008438;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta {
- background-color: #007733;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-success:focus .file-cta, html.theme--documenter-dark .file.is-success.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(0, 132, 56, 0.25);
- color: #fff; }
- html.theme--documenter-dark .file.is-success:active .file-cta, html.theme--documenter-dark .file.is-success.is-active .file-cta {
- background-color: #006b2d;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-warning .file-cta {
- background-color: #ad8100;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-warning:hover .file-cta, html.theme--documenter-dark .file.is-warning.is-hovered .file-cta {
- background-color: #a07700;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-warning:focus .file-cta, html.theme--documenter-dark .file.is-warning.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(173, 129, 0, 0.25);
- color: #fff; }
- html.theme--documenter-dark .file.is-warning:active .file-cta, html.theme--documenter-dark .file.is-warning.is-active .file-cta {
- background-color: #946e00;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-danger .file-cta {
- background-color: #9e1b0d;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-danger:hover .file-cta, html.theme--documenter-dark .file.is-danger.is-hovered .file-cta {
- background-color: #92190c;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-danger:focus .file-cta, html.theme--documenter-dark .file.is-danger.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(158, 27, 13, 0.25);
- color: #fff; }
- html.theme--documenter-dark .file.is-danger:active .file-cta, html.theme--documenter-dark .file.is-danger.is-active .file-cta {
- background-color: #86170b;
- border-color: transparent;
- color: #fff; }
- html.theme--documenter-dark .file.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.file {
- font-size: 0.85em; }
- html.theme--documenter-dark .file.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .file.is-medium .file-icon .fa {
- font-size: 21px; }
- html.theme--documenter-dark .file.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .file.is-large .file-icon .fa {
- font-size: 28px; }
- html.theme--documenter-dark .file.has-name .file-cta {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0; }
- html.theme--documenter-dark .file.has-name .file-name {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0; }
- html.theme--documenter-dark .file.has-name.is-empty .file-cta {
- border-radius: 0.4em; }
- html.theme--documenter-dark .file.has-name.is-empty .file-name {
- display: none; }
- html.theme--documenter-dark .file.is-boxed .file-label {
- flex-direction: column; }
- html.theme--documenter-dark .file.is-boxed .file-cta {
- flex-direction: column;
- height: auto;
- padding: 1em 3em; }
- html.theme--documenter-dark .file.is-boxed .file-name {
- border-width: 0 1px 1px; }
- html.theme--documenter-dark .file.is-boxed .file-icon {
- height: 1.5em;
- width: 1.5em; }
- html.theme--documenter-dark .file.is-boxed .file-icon .fa {
- font-size: 21px; }
- html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
- font-size: 14px; }
- html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa {
- font-size: 28px; }
- html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa {
- font-size: 35px; }
- html.theme--documenter-dark .file.is-boxed.has-name .file-cta {
- border-radius: 0.4em 0.4em 0 0; }
- html.theme--documenter-dark .file.is-boxed.has-name .file-name {
- border-radius: 0 0 0.4em 0.4em;
- border-width: 0 1px 1px; }
- html.theme--documenter-dark .file.is-centered {
- justify-content: center; }
- html.theme--documenter-dark .file.is-fullwidth .file-label {
- width: 100%; }
- html.theme--documenter-dark .file.is-fullwidth .file-name {
- flex-grow: 1;
- max-width: none; }
- html.theme--documenter-dark .file.is-right {
- justify-content: flex-end; }
- html.theme--documenter-dark .file.is-right .file-cta {
- border-radius: 0 0.4em 0.4em 0; }
- html.theme--documenter-dark .file.is-right .file-name {
- border-radius: 0.4em 0 0 0.4em;
- border-width: 1px 0 1px 1px;
- order: -1; }
- html.theme--documenter-dark .file-label {
- align-items: stretch;
- display: flex;
- cursor: pointer;
- justify-content: flex-start;
- overflow: hidden;
- position: relative; }
- html.theme--documenter-dark .file-label:hover .file-cta {
- background-color: #e5eaec;
- color: #282f2f; }
- html.theme--documenter-dark .file-label:hover .file-name {
- border-color: #596668; }
- html.theme--documenter-dark .file-label:active .file-cta {
- background-color: #dde4e6;
- color: #282f2f; }
- html.theme--documenter-dark .file-label:active .file-name {
- border-color: #535f61; }
- html.theme--documenter-dark .file-input {
- height: 100%;
- left: 0;
- opacity: 0;
- outline: none;
- position: absolute;
- top: 0;
- width: 100%; }
- html.theme--documenter-dark .file-cta,
- html.theme--documenter-dark .file-name {
- border-color: #5e6d6f;
- border-radius: 0.4em;
- font-size: 1em;
- padding-left: 1em;
- padding-right: 1em;
- white-space: nowrap; }
- html.theme--documenter-dark .file-cta {
- background-color: #ecf0f1;
- color: #343c3d; }
- html.theme--documenter-dark .file-name {
- border-color: #5e6d6f;
- border-style: solid;
- border-width: 1px 1px 1px 0;
- display: block;
- max-width: 16em;
- overflow: hidden;
- text-align: left;
- text-overflow: ellipsis; }
- html.theme--documenter-dark .file-icon {
- align-items: center;
- display: flex;
- height: 1em;
- justify-content: center;
- margin-right: 0.5em;
- width: 1em; }
- html.theme--documenter-dark .file-icon .fa {
- font-size: 14px; }
- html.theme--documenter-dark .label {
- color: #282f2f;
- display: block;
- font-size: 15px;
- font-weight: 700; }
- html.theme--documenter-dark .label:not(:last-child) {
- margin-bottom: 0.5em; }
- html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label {
- font-size: 0.85em; }
- html.theme--documenter-dark .label.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .label.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .help {
- display: block;
- font-size: 0.85em;
- margin-top: 0.25rem; }
- html.theme--documenter-dark .help.is-white {
- color: white; }
- html.theme--documenter-dark .help.is-black {
- color: #0a0a0a; }
- html.theme--documenter-dark .help.is-light {
- color: #ecf0f1; }
- html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help {
- color: #282f2f; }
- html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink {
- color: #375a7f; }
- html.theme--documenter-dark .help.is-link {
- color: #1abc9c; }
- html.theme--documenter-dark .help.is-info {
- color: #024c7d; }
- html.theme--documenter-dark .help.is-success {
- color: #008438; }
- html.theme--documenter-dark .help.is-warning {
- color: #ad8100; }
- html.theme--documenter-dark .help.is-danger {
- color: #9e1b0d; }
- html.theme--documenter-dark .field:not(:last-child) {
- margin-bottom: 0.75rem; }
- html.theme--documenter-dark .field.has-addons {
- display: flex;
- justify-content: flex-start; }
- html.theme--documenter-dark .field.has-addons .control:not(:last-child) {
- margin-right: -1px; }
- html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,
- html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,
- html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
- html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select {
- border-radius: 0; }
- html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,
- html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,
- html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
- html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0; }
- html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,
- html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,
- html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
- html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0; }
- html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) {
- z-index: 2; }
- html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
- html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
- html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,
- html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),
- html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,
- html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) {
- z-index: 3; }
- html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
- html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
- html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
- html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,
- html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,
- html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,
- html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover {
- z-index: 4; }
- html.theme--documenter-dark .field.has-addons .control.is-expanded {
- flex-grow: 1;
- flex-shrink: 1; }
- html.theme--documenter-dark .field.has-addons.has-addons-centered {
- justify-content: center; }
- html.theme--documenter-dark .field.has-addons.has-addons-right {
- justify-content: flex-end; }
- html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control {
- flex-grow: 1;
- flex-shrink: 0; }
- html.theme--documenter-dark .field.is-grouped {
- display: flex;
- justify-content: flex-start; }
- html.theme--documenter-dark .field.is-grouped > .control {
- flex-shrink: 0; }
- html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) {
- margin-bottom: 0;
- margin-right: 0.75rem; }
- html.theme--documenter-dark .field.is-grouped > .control.is-expanded {
- flex-grow: 1;
- flex-shrink: 1; }
- html.theme--documenter-dark .field.is-grouped.is-grouped-centered {
- justify-content: center; }
- html.theme--documenter-dark .field.is-grouped.is-grouped-right {
- justify-content: flex-end; }
- html.theme--documenter-dark .field.is-grouped.is-grouped-multiline {
- flex-wrap: wrap; }
- html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
- margin-bottom: 0.75rem; }
- html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child {
- margin-bottom: -0.75rem; }
- html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) {
- margin-bottom: 0; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .field.is-horizontal {
- display: flex; } }
- html.theme--documenter-dark .field-label .label {
- font-size: inherit; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .field-label {
- margin-bottom: 0.5rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .field-label {
- flex-basis: 0;
- flex-grow: 1;
- flex-shrink: 0;
- margin-right: 1.5rem;
- text-align: right; }
- html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label {
- font-size: 0.85em;
- padding-top: 0.375em; }
- html.theme--documenter-dark .field-label.is-normal {
- padding-top: 0.375em; }
- html.theme--documenter-dark .field-label.is-medium {
- font-size: 1.25rem;
- padding-top: 0.375em; }
- html.theme--documenter-dark .field-label.is-large {
- font-size: 1.5rem;
- padding-top: 0.375em; } }
- html.theme--documenter-dark .field-body .field .field {
- margin-bottom: 0; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .field-body {
- display: flex;
- flex-basis: 0;
- flex-grow: 5;
- flex-shrink: 1; }
- html.theme--documenter-dark .field-body .field {
- margin-bottom: 0; }
- html.theme--documenter-dark .field-body > .field {
- flex-shrink: 1; }
- html.theme--documenter-dark .field-body > .field:not(.is-narrow) {
- flex-grow: 1; }
- html.theme--documenter-dark .field-body > .field:not(:last-child) {
- margin-right: 0.75rem; } }
- html.theme--documenter-dark .control {
- box-sizing: border-box;
- clear: both;
- font-size: 15px;
- position: relative;
- text-align: left; }
- html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
- html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
- html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon {
- color: #5e6d6f; }
- html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
- html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
- html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon {
- font-size: 0.85em; }
- html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
- html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
- html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon {
- font-size: 1.25rem; }
- html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
- html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
- html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon {
- font-size: 1.5rem; }
- html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon {
- color: #dbdee0;
- height: 2.25em;
- pointer-events: none;
- position: absolute;
- top: 0;
- width: 2.25em;
- z-index: 4; }
- html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
- html.theme--documenter-dark .control.has-icons-left .select select {
- padding-left: 2.25em; }
- html.theme--documenter-dark .control.has-icons-left .icon.is-left {
- left: 0; }
- html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
- html.theme--documenter-dark .control.has-icons-right .select select {
- padding-right: 2.25em; }
- html.theme--documenter-dark .control.has-icons-right .icon.is-right {
- right: 0; }
- html.theme--documenter-dark .control.is-loading::after {
- position: absolute !important;
- right: 0.625em;
- top: 0.625em;
- z-index: 4; }
- html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after {
- font-size: 0.85em; }
- html.theme--documenter-dark .control.is-loading.is-medium:after {
- font-size: 1.25rem; }
- html.theme--documenter-dark .control.is-loading.is-large:after {
- font-size: 1.5rem; }
- html.theme--documenter-dark .breadcrumb {
- font-size: 15px;
- white-space: nowrap; }
- html.theme--documenter-dark .breadcrumb a {
- align-items: center;
- color: #1abc9c;
- display: flex;
- justify-content: center;
- padding: 0 0.75em; }
- html.theme--documenter-dark .breadcrumb a:hover {
- color: #1dd2af; }
- html.theme--documenter-dark .breadcrumb li {
- align-items: center;
- display: flex; }
- html.theme--documenter-dark .breadcrumb li:first-child a {
- padding-left: 0; }
- html.theme--documenter-dark .breadcrumb li.is-active a {
- color: #f2f2f2;
- cursor: default;
- pointer-events: none; }
- html.theme--documenter-dark .breadcrumb li + li::before {
- color: #8c9b9d;
- content: "\0002f"; }
- html.theme--documenter-dark .breadcrumb ul,
- html.theme--documenter-dark .breadcrumb ol {
- align-items: flex-start;
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-start; }
- html.theme--documenter-dark .breadcrumb .icon:first-child {
- margin-right: 0.5em; }
- html.theme--documenter-dark .breadcrumb .icon:last-child {
- margin-left: 0.5em; }
- html.theme--documenter-dark .breadcrumb.is-centered ol,
- html.theme--documenter-dark .breadcrumb.is-centered ul {
- justify-content: center; }
- html.theme--documenter-dark .breadcrumb.is-right ol,
- html.theme--documenter-dark .breadcrumb.is-right ul {
- justify-content: flex-end; }
- html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb {
- font-size: 0.85em; }
- html.theme--documenter-dark .breadcrumb.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .breadcrumb.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before {
- content: "\02192"; }
- html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before {
- content: "\02022"; }
- html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before {
- content: "\000b7"; }
- html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before {
- content: "\0227B"; }
- html.theme--documenter-dark .card {
- background-color: white;
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
- color: #fff;
- max-width: 100%;
- position: relative; }
- html.theme--documenter-dark .card-header {
- background-color: transparent;
- align-items: stretch;
- box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
- display: flex; }
- html.theme--documenter-dark .card-header-title {
- align-items: center;
- color: #f2f2f2;
- display: flex;
- flex-grow: 1;
- font-weight: 700;
- padding: 0.75rem; }
- html.theme--documenter-dark .card-header-title.is-centered {
- justify-content: center; }
- html.theme--documenter-dark .card-header-icon {
- align-items: center;
- cursor: pointer;
- display: flex;
- justify-content: center;
- padding: 0.75rem; }
- html.theme--documenter-dark .card-image {
- display: block;
- position: relative; }
- html.theme--documenter-dark .card-content {
- background-color: transparent;
- padding: 1.5rem; }
- html.theme--documenter-dark .card-footer {
- background-color: transparent;
- border-top: 1px solid #5e6d6f;
- align-items: stretch;
- display: flex; }
- html.theme--documenter-dark .card-footer-item {
- align-items: center;
- display: flex;
- flex-basis: 0;
- flex-grow: 1;
- flex-shrink: 0;
- justify-content: center;
- padding: 0.75rem; }
- html.theme--documenter-dark .card-footer-item:not(:last-child) {
- border-right: 1px solid #5e6d6f; }
- html.theme--documenter-dark .card .media:not(:last-child) {
- margin-bottom: 1.5rem; }
- html.theme--documenter-dark .dropdown {
- display: inline-flex;
- position: relative;
- vertical-align: top; }
- html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu {
- display: block; }
- html.theme--documenter-dark .dropdown.is-right .dropdown-menu {
- left: auto;
- right: 0; }
- html.theme--documenter-dark .dropdown.is-up .dropdown-menu {
- bottom: 100%;
- padding-bottom: 4px;
- padding-top: initial;
- top: auto; }
- html.theme--documenter-dark .dropdown-menu {
- display: none;
- left: 0;
- min-width: 12rem;
- padding-top: 4px;
- position: absolute;
- top: 100%;
- z-index: 20; }
- html.theme--documenter-dark .dropdown-content {
- background-color: #282f2f;
- border-radius: 0.4em;
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
- padding-bottom: 0.5rem;
- padding-top: 0.5rem; }
- html.theme--documenter-dark .dropdown-item {
- color: #fff;
- display: block;
- font-size: 0.875rem;
- line-height: 1.5;
- padding: 0.375rem 1rem;
- position: relative; }
- html.theme--documenter-dark a.dropdown-item,
- html.theme--documenter-dark button.dropdown-item {
- padding-right: 3rem;
- text-align: left;
- white-space: nowrap;
- width: 100%; }
- html.theme--documenter-dark a.dropdown-item:hover,
- html.theme--documenter-dark button.dropdown-item:hover {
- background-color: #282f2f;
- color: #0a0a0a; }
- html.theme--documenter-dark a.dropdown-item.is-active,
- html.theme--documenter-dark button.dropdown-item.is-active {
- background-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .dropdown-divider {
- background-color: #5e6d6f;
- border: none;
- display: block;
- height: 1px;
- margin: 0.5rem 0; }
- html.theme--documenter-dark .level {
- align-items: center;
- justify-content: space-between; }
- html.theme--documenter-dark .level code {
- border-radius: 0.4em; }
- html.theme--documenter-dark .level img {
- display: inline-block;
- vertical-align: top; }
- html.theme--documenter-dark .level.is-mobile {
- display: flex; }
- html.theme--documenter-dark .level.is-mobile .level-left,
- html.theme--documenter-dark .level.is-mobile .level-right {
- display: flex; }
- html.theme--documenter-dark .level.is-mobile .level-left + .level-right {
- margin-top: 0; }
- html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child) {
- margin-bottom: 0;
- margin-right: 0.75rem; }
- html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow) {
- flex-grow: 1; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .level {
- display: flex; }
- html.theme--documenter-dark .level > .level-item:not(.is-narrow) {
- flex-grow: 1; } }
- html.theme--documenter-dark .level-item {
- align-items: center;
- display: flex;
- flex-basis: auto;
- flex-grow: 0;
- flex-shrink: 0;
- justify-content: center; }
- html.theme--documenter-dark .level-item .title,
- html.theme--documenter-dark .level-item .subtitle {
- margin-bottom: 0; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .level-item:not(:last-child) {
- margin-bottom: 0.75rem; } }
- html.theme--documenter-dark .level-left,
- html.theme--documenter-dark .level-right {
- flex-basis: auto;
- flex-grow: 0;
- flex-shrink: 0; }
- html.theme--documenter-dark .level-left .level-item.is-flexible,
- html.theme--documenter-dark .level-right .level-item.is-flexible {
- flex-grow: 1; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .level-left .level-item:not(:last-child),
- html.theme--documenter-dark .level-right .level-item:not(:last-child) {
- margin-right: 0.75rem; } }
- html.theme--documenter-dark .level-left {
- align-items: center;
- justify-content: flex-start; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .level-left + .level-right {
- margin-top: 1.5rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .level-left {
- display: flex; } }
- html.theme--documenter-dark .level-right {
- align-items: center;
- justify-content: flex-end; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .level-right {
- display: flex; } }
- html.theme--documenter-dark .list {
- background-color: white;
- border-radius: 0.4em;
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .list-item {
- display: block;
- padding: 0.5em 1em; }
- html.theme--documenter-dark .list-item:not(a) {
- color: #fff; }
- html.theme--documenter-dark .list-item:first-child {
- border-top-left-radius: 0.4em;
- border-top-right-radius: 0.4em; }
- html.theme--documenter-dark .list-item:last-child {
- border-bottom-left-radius: 0.4em;
- border-bottom-right-radius: 0.4em; }
- html.theme--documenter-dark .list-item:not(:last-child) {
- border-bottom: 1px solid #5e6d6f; }
- html.theme--documenter-dark .list-item.is-active {
- background-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark a.list-item {
- background-color: #282f2f;
- cursor: pointer; }
- html.theme--documenter-dark .media {
- align-items: flex-start;
- display: flex;
- text-align: left; }
- html.theme--documenter-dark .media .content:not(:last-child) {
- margin-bottom: 0.75rem; }
- html.theme--documenter-dark .media .media {
- border-top: 1px solid rgba(94, 109, 111, 0.5);
- display: flex;
- padding-top: 0.75rem; }
- html.theme--documenter-dark .media .media .content:not(:last-child),
- html.theme--documenter-dark .media .media .control:not(:last-child) {
- margin-bottom: 0.5rem; }
- html.theme--documenter-dark .media .media .media {
- padding-top: 0.5rem; }
- html.theme--documenter-dark .media .media .media + .media {
- margin-top: 0.5rem; }
- html.theme--documenter-dark .media + .media {
- border-top: 1px solid rgba(94, 109, 111, 0.5);
- margin-top: 1rem;
- padding-top: 1rem; }
- html.theme--documenter-dark .media.is-large + .media {
- margin-top: 1.5rem;
- padding-top: 1.5rem; }
- html.theme--documenter-dark .media-left,
- html.theme--documenter-dark .media-right {
- flex-basis: auto;
- flex-grow: 0;
- flex-shrink: 0; }
- html.theme--documenter-dark .media-left {
- margin-right: 1rem; }
- html.theme--documenter-dark .media-right {
- margin-left: 1rem; }
- html.theme--documenter-dark .media-content {
- flex-basis: auto;
- flex-grow: 1;
- flex-shrink: 1;
- text-align: left; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .media-content {
- overflow-x: auto; } }
- html.theme--documenter-dark .menu {
- font-size: 15px; }
- html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu {
- font-size: 0.85em; }
- html.theme--documenter-dark .menu.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .menu.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .menu-list {
- line-height: 1.25; }
- html.theme--documenter-dark .menu-list a {
- border-radius: 3px;
- color: #fff;
- display: block;
- padding: 0.5em 0.75em; }
- html.theme--documenter-dark .menu-list a:hover {
- background-color: #282f2f;
- color: #f2f2f2; }
- html.theme--documenter-dark .menu-list a.is-active {
- background-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .menu-list li ul {
- border-left: 1px solid #5e6d6f;
- margin: 0.75em;
- padding-left: 0.75em; }
- html.theme--documenter-dark .menu-label {
- color: white;
- font-size: 0.75em;
- letter-spacing: 0.1em;
- text-transform: uppercase; }
- html.theme--documenter-dark .menu-label:not(:first-child) {
- margin-top: 1em; }
- html.theme--documenter-dark .menu-label:not(:last-child) {
- margin-bottom: 1em; }
- html.theme--documenter-dark .message {
- background-color: #282f2f;
- border-radius: 0.4em;
- font-size: 15px; }
- html.theme--documenter-dark .message strong {
- color: currentColor; }
- html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) {
- color: currentColor;
- text-decoration: underline; }
- html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message {
- font-size: 0.85em; }
- html.theme--documenter-dark .message.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .message.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .message.is-white {
- background-color: white; }
- html.theme--documenter-dark .message.is-white .message-header {
- background-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .message.is-white .message-body {
- border-color: white;
- color: #4d4d4d; }
- html.theme--documenter-dark .message.is-black {
- background-color: #fafafa; }
- html.theme--documenter-dark .message.is-black .message-header {
- background-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .message.is-black .message-body {
- border-color: #0a0a0a;
- color: #090909; }
- html.theme--documenter-dark .message.is-light {
- background-color: #f9fafb; }
- html.theme--documenter-dark .message.is-light .message-header {
- background-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .message.is-light .message-body {
- border-color: #ecf0f1;
- color: #505050; }
- html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message {
- background-color: #f9fafa; }
- html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header {
- background-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body {
- border-color: #282f2f;
- color: #212526; }
- html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink {
- background-color: #f8fafc; }
- html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header {
- background-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body {
- border-color: #375a7f;
- color: #2b4159; }
- html.theme--documenter-dark .message.is-link {
- background-color: #f6fefc; }
- html.theme--documenter-dark .message.is-link .message-header {
- background-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .message.is-link .message-body {
- border-color: #1abc9c;
- color: #0b2f28; }
- html.theme--documenter-dark .message.is-info {
- background-color: #f5fbff; }
- html.theme--documenter-dark .message.is-info .message-header {
- background-color: #024c7d;
- color: #fff; }
- html.theme--documenter-dark .message.is-info .message-body {
- border-color: #024c7d;
- color: #033659; }
- html.theme--documenter-dark .message.is-success {
- background-color: #f5fff9; }
- html.theme--documenter-dark .message.is-success .message-header {
- background-color: #008438;
- color: #fff; }
- html.theme--documenter-dark .message.is-success .message-body {
- border-color: #008438;
- color: #023518; }
- html.theme--documenter-dark .message.is-warning {
- background-color: #fffcf5; }
- html.theme--documenter-dark .message.is-warning .message-header {
- background-color: #ad8100;
- color: #fff; }
- html.theme--documenter-dark .message.is-warning .message-body {
- border-color: #ad8100;
- color: #3d2e03; }
- html.theme--documenter-dark .message.is-danger {
- background-color: #fef6f6; }
- html.theme--documenter-dark .message.is-danger .message-header {
- background-color: #9e1b0d;
- color: #fff; }
- html.theme--documenter-dark .message.is-danger .message-body {
- border-color: #9e1b0d;
- color: #7a170c; }
- html.theme--documenter-dark .message-header {
- align-items: center;
- background-color: #fff;
- border-radius: 0.4em 0.4em 0 0;
- color: rgba(0, 0, 0, 0.7);
- display: flex;
- font-weight: 700;
- justify-content: space-between;
- line-height: 1.25;
- padding: 0.75em 1em;
- position: relative; }
- html.theme--documenter-dark .message-header .delete {
- flex-grow: 0;
- flex-shrink: 0;
- margin-left: 0.75em; }
- html.theme--documenter-dark .message-header + .message-body {
- border-width: 0;
- border-top-left-radius: 0;
- border-top-right-radius: 0; }
- html.theme--documenter-dark .message-body {
- border-color: #5e6d6f;
- border-radius: 0.4em;
- border-style: solid;
- border-width: 0 0 0 4px;
- color: #fff;
- padding: 1.25em 1.5em; }
- html.theme--documenter-dark .message-body code,
- html.theme--documenter-dark .message-body pre {
- background-color: white; }
- html.theme--documenter-dark .message-body pre code {
- background-color: transparent; }
- html.theme--documenter-dark .modal {
- align-items: center;
- display: none;
- flex-direction: column;
- justify-content: center;
- overflow: hidden;
- position: fixed;
- z-index: 40; }
- html.theme--documenter-dark .modal.is-active {
- display: flex; }
- html.theme--documenter-dark .modal-background {
- background-color: rgba(10, 10, 10, 0.86); }
- html.theme--documenter-dark .modal-content,
- html.theme--documenter-dark .modal-card {
- margin: 0 20px;
- max-height: calc(100vh - 160px);
- overflow: auto;
- position: relative;
- width: 100%; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .modal-content,
- html.theme--documenter-dark .modal-card {
- margin: 0 auto;
- max-height: calc(100vh - 40px);
- width: 640px; } }
- html.theme--documenter-dark .modal-close {
- background: none;
- height: 40px;
- position: fixed;
- right: 20px;
- top: 20px;
- width: 40px; }
- html.theme--documenter-dark .modal-card {
- display: flex;
- flex-direction: column;
- max-height: calc(100vh - 40px);
- overflow: hidden;
- -ms-overflow-y: visible; }
- html.theme--documenter-dark .modal-card-head,
- html.theme--documenter-dark .modal-card-foot {
- align-items: center;
- background-color: #282f2f;
- display: flex;
- flex-shrink: 0;
- justify-content: flex-start;
- padding: 20px;
- position: relative; }
- html.theme--documenter-dark .modal-card-head {
- border-bottom: 1px solid #5e6d6f;
- border-top-left-radius: 8px;
- border-top-right-radius: 8px; }
- html.theme--documenter-dark .modal-card-title {
- color: #f2f2f2;
- flex-grow: 1;
- flex-shrink: 0;
- font-size: 1.5rem;
- line-height: 1; }
- html.theme--documenter-dark .modal-card-foot {
- border-bottom-left-radius: 8px;
- border-bottom-right-radius: 8px;
- border-top: 1px solid #5e6d6f; }
- html.theme--documenter-dark .modal-card-foot .button:not(:last-child) {
- margin-right: 0.5em; }
- html.theme--documenter-dark .modal-card-body {
- -webkit-overflow-scrolling: touch;
- background-color: white;
- flex-grow: 1;
- flex-shrink: 1;
- overflow: auto;
- padding: 20px; }
- html.theme--documenter-dark .navbar {
- background-color: #375a7f;
- min-height: 4rem;
- position: relative;
- z-index: 30; }
- html.theme--documenter-dark .navbar.is-white {
- background-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .navbar.is-white .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link {
- color: #0a0a0a; }
- html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active {
- background-color: #f2f2f2;
- color: #0a0a0a; }
- html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after {
- border-color: #0a0a0a; }
- html.theme--documenter-dark .navbar.is-white .navbar-burger {
- color: #0a0a0a; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-white .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-white .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link {
- color: #0a0a0a; }
- html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-white .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-white .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active {
- background-color: #f2f2f2;
- color: #0a0a0a; }
- html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after {
- border-color: #0a0a0a; }
- html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #f2f2f2;
- color: #0a0a0a; }
- html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
- background-color: white;
- color: #0a0a0a; } }
- html.theme--documenter-dark .navbar.is-black {
- background-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link {
- color: white; }
- html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active {
- background-color: black;
- color: white; }
- html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after {
- border-color: white; }
- html.theme--documenter-dark .navbar.is-black .navbar-burger {
- color: white; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-black .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-black .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link {
- color: white; }
- html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-black .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-black .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active {
- background-color: black;
- color: white; }
- html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after {
- border-color: white; }
- html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: black;
- color: white; }
- html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
- background-color: #0a0a0a;
- color: white; } }
- html.theme--documenter-dark .navbar.is-light {
- background-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link {
- color: #282f2f; }
- html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active {
- background-color: #dde4e6;
- color: #282f2f; }
- html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after {
- border-color: #282f2f; }
- html.theme--documenter-dark .navbar.is-light .navbar-burger {
- color: #282f2f; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link {
- color: #282f2f; }
- html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active {
- background-color: #dde4e6;
- color: #282f2f; }
- html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after {
- border-color: #282f2f; }
- html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #dde4e6;
- color: #282f2f; }
- html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
- background-color: #ecf0f1;
- color: #282f2f; } }
- html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar {
- background-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,
- html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link {
- color: #ecf0f1; }
- html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,
- html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active {
- background-color: #1d2122;
- color: #ecf0f1; }
- html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after {
- border-color: #ecf0f1; }
- html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger {
- color: #ecf0f1; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,
- html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item,
- html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,
- html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link {
- color: #ecf0f1; }
- html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,
- html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active {
- background-color: #1d2122;
- color: #ecf0f1; }
- html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,
- html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after {
- border-color: #ecf0f1; }
- html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
- html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #1d2122;
- color: #ecf0f1; }
- html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
- background-color: #282f2f;
- color: #ecf0f1; } }
- html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink {
- background-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
- background-color: #2f4d6d;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
- background-color: #2f4d6d;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
- html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #2f4d6d;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
- background-color: #375a7f;
- color: #fff; } }
- html.theme--documenter-dark .navbar.is-link {
- background-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active {
- background-color: #17a689;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-link .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active {
- background-color: #17a689;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #17a689;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
- background-color: #1abc9c;
- color: #fff; } }
- html.theme--documenter-dark .navbar.is-info {
- background-color: #024c7d;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active {
- background-color: #023d64;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-info .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active {
- background-color: #023d64;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #023d64;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
- background-color: #024c7d;
- color: #fff; } }
- html.theme--documenter-dark .navbar.is-success {
- background-color: #008438;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active {
- background-color: #006b2d;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-success .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active {
- background-color: #006b2d;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #006b2d;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
- background-color: #008438;
- color: #fff; } }
- html.theme--documenter-dark .navbar.is-warning {
- background-color: #ad8100;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active {
- background-color: #946e00;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-warning .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active {
- background-color: #946e00;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #946e00;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
- background-color: #ad8100;
- color: #fff; } }
- html.theme--documenter-dark .navbar.is-danger {
- background-color: #9e1b0d;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item,
- html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active {
- background-color: #86170b;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-danger .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item,
- html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,
- html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item,
- html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link {
- color: #fff; }
- html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,
- html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus,
- html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover,
- html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active {
- background-color: #86170b;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,
- html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after {
- border-color: #fff; }
- html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
- html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
- html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #86170b;
- color: #fff; }
- html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
- background-color: #9e1b0d;
- color: #fff; } }
- html.theme--documenter-dark .navbar > .container {
- align-items: stretch;
- display: flex;
- min-height: 4rem;
- width: 100%; }
- html.theme--documenter-dark .navbar.has-shadow {
- box-shadow: 0 2px 0 0 #282f2f; }
- html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top {
- left: 0;
- position: fixed;
- right: 0;
- z-index: 30; }
- html.theme--documenter-dark .navbar.is-fixed-bottom {
- bottom: 0; }
- html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow {
- box-shadow: 0 -2px 0 0 #282f2f; }
- html.theme--documenter-dark .navbar.is-fixed-top {
- top: 0; }
- html.theme--documenter-dark html.has-navbar-fixed-top,
- html.theme--documenter-dark body.has-navbar-fixed-top {
- padding-top: 4rem; }
- html.theme--documenter-dark html.has-navbar-fixed-bottom,
- html.theme--documenter-dark body.has-navbar-fixed-bottom {
- padding-bottom: 4rem; }
- html.theme--documenter-dark .navbar-brand,
- html.theme--documenter-dark .navbar-tabs {
- align-items: stretch;
- display: flex;
- flex-shrink: 0;
- min-height: 4rem; }
- html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .navbar-tabs {
- -webkit-overflow-scrolling: touch;
- max-width: 100vw;
- overflow-x: auto;
- overflow-y: hidden; }
- html.theme--documenter-dark .navbar-burger {
- color: #fff;
- cursor: pointer;
- display: block;
- height: 4rem;
- position: relative;
- width: 4rem;
- margin-left: auto; }
- html.theme--documenter-dark .navbar-burger span {
- background-color: currentColor;
- display: block;
- height: 1px;
- left: calc(50% - 8px);
- position: absolute;
- transform-origin: center;
- transition-duration: 86ms;
- transition-property: background-color, opacity, transform;
- transition-timing-function: ease-out;
- width: 16px; }
- html.theme--documenter-dark .navbar-burger span:nth-child(1) {
- top: calc(50% - 6px); }
- html.theme--documenter-dark .navbar-burger span:nth-child(2) {
- top: calc(50% - 1px); }
- html.theme--documenter-dark .navbar-burger span:nth-child(3) {
- top: calc(50% + 4px); }
- html.theme--documenter-dark .navbar-burger:hover {
- background-color: rgba(0, 0, 0, 0.05); }
- html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) {
- transform: translateY(5px) rotate(45deg); }
- html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) {
- opacity: 0; }
- html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) {
- transform: translateY(-5px) rotate(-45deg); }
- html.theme--documenter-dark .navbar-menu {
- display: none; }
- html.theme--documenter-dark .navbar-item,
- html.theme--documenter-dark .navbar-link {
- color: #fff;
- display: block;
- line-height: 1.5;
- padding: 0.5rem 0.75rem;
- position: relative; }
- html.theme--documenter-dark .navbar-item .icon:only-child,
- html.theme--documenter-dark .navbar-link .icon:only-child {
- margin-left: -0.25rem;
- margin-right: -0.25rem; }
- html.theme--documenter-dark a.navbar-item,
- html.theme--documenter-dark .navbar-link {
- cursor: pointer; }
- html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active,
- html.theme--documenter-dark .navbar-link:focus,
- html.theme--documenter-dark .navbar-link:focus-within,
- html.theme--documenter-dark .navbar-link:hover,
- html.theme--documenter-dark .navbar-link.is-active {
- background-color: transparent;
- color: #1abc9c; }
- html.theme--documenter-dark .navbar-item {
- display: block;
- flex-grow: 0;
- flex-shrink: 0; }
- html.theme--documenter-dark .navbar-item img {
- max-height: 1.75rem; }
- html.theme--documenter-dark .navbar-item.has-dropdown {
- padding: 0; }
- html.theme--documenter-dark .navbar-item.is-expanded {
- flex-grow: 1;
- flex-shrink: 1; }
- html.theme--documenter-dark .navbar-item.is-tab {
- border-bottom: 1px solid transparent;
- min-height: 4rem;
- padding-bottom: calc(0.5rem - 1px); }
- html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover {
- background-color: transparent;
- border-bottom-color: #1abc9c; }
- html.theme--documenter-dark .navbar-item.is-tab.is-active {
- background-color: transparent;
- border-bottom-color: #1abc9c;
- border-bottom-style: solid;
- border-bottom-width: 3px;
- color: #1abc9c;
- padding-bottom: calc(0.5rem - 3px); }
- html.theme--documenter-dark .navbar-content {
- flex-grow: 1;
- flex-shrink: 1; }
- html.theme--documenter-dark .navbar-link:not(.is-arrowless) {
- padding-right: 2.5em; }
- html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after {
- border-color: #fff;
- margin-top: -0.375em;
- right: 1.125em; }
- html.theme--documenter-dark .navbar-dropdown {
- font-size: 0.875rem;
- padding-bottom: 0.5rem;
- padding-top: 0.5rem; }
- html.theme--documenter-dark .navbar-dropdown .navbar-item {
- padding-left: 1.5rem;
- padding-right: 1.5rem; }
- html.theme--documenter-dark .navbar-divider {
- background-color: rgba(0, 0, 0, 0.2);
- border: none;
- display: none;
- height: 2px;
- margin: 0.5rem 0; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .navbar > .container {
- display: block; }
- html.theme--documenter-dark .navbar-brand .navbar-item,
- html.theme--documenter-dark .navbar-tabs .navbar-item {
- align-items: center;
- display: flex; }
- html.theme--documenter-dark .navbar-link::after {
- display: none; }
- html.theme--documenter-dark .navbar-menu {
- background-color: #375a7f;
- box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
- padding: 0.5rem 0; }
- html.theme--documenter-dark .navbar-menu.is-active {
- display: block; }
- html.theme--documenter-dark .navbar.is-fixed-bottom-touch, html.theme--documenter-dark .navbar.is-fixed-top-touch {
- left: 0;
- position: fixed;
- right: 0;
- z-index: 30; }
- html.theme--documenter-dark .navbar.is-fixed-bottom-touch {
- bottom: 0; }
- html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow {
- box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .navbar.is-fixed-top-touch {
- top: 0; }
- html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu, html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu {
- -webkit-overflow-scrolling: touch;
- max-height: calc(100vh - 4rem);
- overflow: auto; }
- html.theme--documenter-dark html.has-navbar-fixed-top-touch,
- html.theme--documenter-dark body.has-navbar-fixed-top-touch {
- padding-top: 4rem; }
- html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,
- html.theme--documenter-dark body.has-navbar-fixed-bottom-touch {
- padding-bottom: 4rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .navbar,
- html.theme--documenter-dark .navbar-menu,
- html.theme--documenter-dark .navbar-start,
- html.theme--documenter-dark .navbar-end {
- align-items: stretch;
- display: flex; }
- html.theme--documenter-dark .navbar {
- min-height: 4rem; }
- html.theme--documenter-dark .navbar.is-spaced {
- padding: 1rem 2rem; }
- html.theme--documenter-dark .navbar.is-spaced .navbar-start,
- html.theme--documenter-dark .navbar.is-spaced .navbar-end {
- align-items: center; }
- html.theme--documenter-dark .navbar.is-spaced a.navbar-item,
- html.theme--documenter-dark .navbar.is-spaced .navbar-link {
- border-radius: 0.4em; }
- html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover, html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,
- html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,
- html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,
- html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active {
- background-color: transparent !important; }
- html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
- background-color: transparent !important; }
- html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
- background-color: transparent;
- color: #dbdee0; }
- html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
- background-color: transparent;
- color: #1abc9c; }
- html.theme--documenter-dark .navbar-burger {
- display: none; }
- html.theme--documenter-dark .navbar-item,
- html.theme--documenter-dark .navbar-link {
- align-items: center;
- display: flex; }
- html.theme--documenter-dark .navbar-item {
- display: flex; }
- html.theme--documenter-dark .navbar-item.has-dropdown {
- align-items: stretch; }
- html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after {
- transform: rotate(135deg) translate(0.25em, -0.25em); }
- html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown {
- border-bottom: 1px solid rgba(0, 0, 0, 0.2);
- border-radius: 8px 8px 0 0;
- border-top: none;
- bottom: 100%;
- box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
- top: auto; }
- html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown {
- display: block; }
- .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
- opacity: 1;
- pointer-events: auto;
- transform: translateY(0); }
- html.theme--documenter-dark .navbar-menu {
- flex-grow: 1;
- flex-shrink: 0; }
- html.theme--documenter-dark .navbar-start {
- justify-content: flex-start;
- margin-right: auto; }
- html.theme--documenter-dark .navbar-end {
- justify-content: flex-end;
- margin-left: auto; }
- html.theme--documenter-dark .navbar-dropdown {
- background-color: #375a7f;
- border-bottom-left-radius: 8px;
- border-bottom-right-radius: 8px;
- border-top: 1px solid rgba(0, 0, 0, 0.2);
- box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
- display: none;
- font-size: 0.875rem;
- left: 0;
- min-width: 100%;
- position: absolute;
- top: 100%;
- z-index: 20; }
- html.theme--documenter-dark .navbar-dropdown .navbar-item {
- padding: 0.375rem 1rem;
- white-space: nowrap; }
- html.theme--documenter-dark .navbar-dropdown a.navbar-item {
- padding-right: 3rem; }
- html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover {
- background-color: transparent;
- color: #dbdee0; }
- html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active {
- background-color: transparent;
- color: #1abc9c; }
- .navbar.is-spaced html.theme--documenter-dark .navbar-dropdown, html.theme--documenter-dark .navbar-dropdown.is-boxed {
- border-radius: 8px;
- border-top: none;
- box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
- display: block;
- opacity: 0;
- pointer-events: none;
- top: calc(100% + (-4px));
- transform: translateY(-5px);
- transition-duration: 86ms;
- transition-property: opacity, transform; }
- html.theme--documenter-dark .navbar-dropdown.is-right {
- left: auto;
- right: 0; }
- html.theme--documenter-dark .navbar-divider {
- display: block; }
- html.theme--documenter-dark .navbar > .container .navbar-brand,
- html.theme--documenter-dark .container > .navbar .navbar-brand {
- margin-left: -.75rem; }
- html.theme--documenter-dark .navbar > .container .navbar-menu,
- html.theme--documenter-dark .container > .navbar .navbar-menu {
- margin-right: -.75rem; }
- html.theme--documenter-dark .navbar.is-fixed-bottom-desktop, html.theme--documenter-dark .navbar.is-fixed-top-desktop {
- left: 0;
- position: fixed;
- right: 0;
- z-index: 30; }
- html.theme--documenter-dark .navbar.is-fixed-bottom-desktop {
- bottom: 0; }
- html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow {
- box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .navbar.is-fixed-top-desktop {
- top: 0; }
- html.theme--documenter-dark html.has-navbar-fixed-top-desktop,
- html.theme--documenter-dark body.has-navbar-fixed-top-desktop {
- padding-top: 4rem; }
- html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,
- html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop {
- padding-bottom: 4rem; }
- html.theme--documenter-dark html.has-spaced-navbar-fixed-top,
- html.theme--documenter-dark body.has-spaced-navbar-fixed-top {
- padding-top: 6rem; }
- html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,
- html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom {
- padding-bottom: 6rem; }
- html.theme--documenter-dark a.navbar-item.is-active,
- html.theme--documenter-dark .navbar-link.is-active {
- color: #1abc9c; }
- html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),
- html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover) {
- background-color: transparent; }
- html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link, html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: transparent; } }
- html.theme--documenter-dark .hero.is-fullheight-with-navbar {
- min-height: calc(100vh - 4rem); }
- html.theme--documenter-dark .pagination {
- font-size: 15px;
- margin: -0.25rem; }
- html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination {
- font-size: 0.85em; }
- html.theme--documenter-dark .pagination.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .pagination.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
- html.theme--documenter-dark .pagination.is-rounded .pagination-next,
- html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
- padding-left: 1em;
- padding-right: 1em;
- border-radius: 290486px; }
- html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
- border-radius: 290486px; }
- html.theme--documenter-dark .pagination,
- html.theme--documenter-dark .pagination-list {
- align-items: center;
- display: flex;
- justify-content: center;
- text-align: center; }
- html.theme--documenter-dark .pagination-previous,
- html.theme--documenter-dark .pagination-next,
- html.theme--documenter-dark .pagination-link,
- html.theme--documenter-dark .pagination-ellipsis {
- font-size: 1em;
- justify-content: center;
- margin: 0.25rem;
- padding-left: 0.5em;
- padding-right: 0.5em;
- text-align: center; }
- html.theme--documenter-dark .pagination-previous,
- html.theme--documenter-dark .pagination-next,
- html.theme--documenter-dark .pagination-link {
- border-color: #5e6d6f;
- color: #1abc9c;
- min-width: 2.25em; }
- html.theme--documenter-dark .pagination-previous:hover,
- html.theme--documenter-dark .pagination-next:hover,
- html.theme--documenter-dark .pagination-link:hover {
- border-color: #8c9b9d;
- color: #1dd2af; }
- html.theme--documenter-dark .pagination-previous:focus,
- html.theme--documenter-dark .pagination-next:focus,
- html.theme--documenter-dark .pagination-link:focus {
- border-color: #8c9b9d; }
- html.theme--documenter-dark .pagination-previous:active,
- html.theme--documenter-dark .pagination-next:active,
- html.theme--documenter-dark .pagination-link:active {
- box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
- html.theme--documenter-dark .pagination-previous[disabled],
- html.theme--documenter-dark .pagination-next[disabled],
- html.theme--documenter-dark .pagination-link[disabled] {
- background-color: #dbdee0;
- border-color: #dbdee0;
- box-shadow: none;
- color: #5e6d6f;
- opacity: 0.5; }
- html.theme--documenter-dark .pagination-previous,
- html.theme--documenter-dark .pagination-next {
- padding-left: 0.75em;
- padding-right: 0.75em;
- white-space: nowrap; }
- html.theme--documenter-dark .pagination-link.is-current {
- background-color: #1abc9c;
- border-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .pagination-ellipsis {
- color: #8c9b9d;
- pointer-events: none; }
- html.theme--documenter-dark .pagination-list {
- flex-wrap: wrap; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .pagination {
- flex-wrap: wrap; }
- html.theme--documenter-dark .pagination-previous,
- html.theme--documenter-dark .pagination-next {
- flex-grow: 1;
- flex-shrink: 1; }
- html.theme--documenter-dark .pagination-list li {
- flex-grow: 1;
- flex-shrink: 1; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .pagination-list {
- flex-grow: 1;
- flex-shrink: 1;
- justify-content: flex-start;
- order: 1; }
- html.theme--documenter-dark .pagination-previous {
- order: 2; }
- html.theme--documenter-dark .pagination-next {
- order: 3; }
- html.theme--documenter-dark .pagination {
- justify-content: space-between; }
- html.theme--documenter-dark .pagination.is-centered .pagination-previous {
- order: 1; }
- html.theme--documenter-dark .pagination.is-centered .pagination-list {
- justify-content: center;
- order: 2; }
- html.theme--documenter-dark .pagination.is-centered .pagination-next {
- order: 3; }
- html.theme--documenter-dark .pagination.is-right .pagination-previous {
- order: 1; }
- html.theme--documenter-dark .pagination.is-right .pagination-next {
- order: 2; }
- html.theme--documenter-dark .pagination.is-right .pagination-list {
- justify-content: flex-end;
- order: 3; } }
- html.theme--documenter-dark .panel {
- font-size: 15px; }
- html.theme--documenter-dark .panel:not(:last-child) {
- margin-bottom: 1.5rem; }
- html.theme--documenter-dark .panel-heading,
- html.theme--documenter-dark .panel-tabs,
- html.theme--documenter-dark .panel-block {
- border-bottom: 1px solid #5e6d6f;
- border-left: 1px solid #5e6d6f;
- border-right: 1px solid #5e6d6f; }
- html.theme--documenter-dark .panel-heading:first-child,
- html.theme--documenter-dark .panel-tabs:first-child,
- html.theme--documenter-dark .panel-block:first-child {
- border-top: 1px solid #5e6d6f; }
- html.theme--documenter-dark .panel-heading {
- background-color: #282f2f;
- border-radius: 0.4em 0.4em 0 0;
- color: #f2f2f2;
- font-size: 1.25em;
- font-weight: 300;
- line-height: 1.25;
- padding: 0.5em 0.75em; }
- html.theme--documenter-dark .panel-tabs {
- align-items: flex-end;
- display: flex;
- font-size: 0.875em;
- justify-content: center; }
- html.theme--documenter-dark .panel-tabs a {
- border-bottom: 1px solid #5e6d6f;
- margin-bottom: -1px;
- padding: 0.5em; }
- html.theme--documenter-dark .panel-tabs a.is-active {
- border-bottom-color: #343c3d;
- color: #17a689; }
- html.theme--documenter-dark .panel-list a {
- color: #fff; }
- html.theme--documenter-dark .panel-list a:hover {
- color: #1abc9c; }
- html.theme--documenter-dark .panel-block {
- align-items: center;
- color: #f2f2f2;
- display: flex;
- justify-content: flex-start;
- padding: 0.5em 0.75em; }
- html.theme--documenter-dark .panel-block input[type="checkbox"] {
- margin-right: 0.75em; }
- html.theme--documenter-dark .panel-block > .control {
- flex-grow: 1;
- flex-shrink: 1;
- width: 100%; }
- html.theme--documenter-dark .panel-block.is-wrapped {
- flex-wrap: wrap; }
- html.theme--documenter-dark .panel-block.is-active {
- border-left-color: #1abc9c;
- color: #17a689; }
- html.theme--documenter-dark .panel-block.is-active .panel-icon {
- color: #1abc9c; }
- html.theme--documenter-dark a.panel-block,
- html.theme--documenter-dark label.panel-block {
- cursor: pointer; }
- html.theme--documenter-dark a.panel-block:hover,
- html.theme--documenter-dark label.panel-block:hover {
- background-color: #282f2f; }
- html.theme--documenter-dark .panel-icon {
- display: inline-block;
- font-size: 14px;
- height: 1em;
- line-height: 1em;
- text-align: center;
- vertical-align: top;
- width: 1em;
- color: white;
- margin-right: 0.75em; }
- html.theme--documenter-dark .panel-icon .fa {
- font-size: inherit;
- line-height: inherit; }
- html.theme--documenter-dark .tabs {
- -webkit-overflow-scrolling: touch;
- align-items: stretch;
- display: flex;
- font-size: 15px;
- justify-content: space-between;
- overflow: hidden;
- overflow-x: auto;
- white-space: nowrap; }
- html.theme--documenter-dark .tabs a {
- align-items: center;
- border-bottom-color: #5e6d6f;
- border-bottom-style: solid;
- border-bottom-width: 1px;
- color: #fff;
- display: flex;
- justify-content: center;
- margin-bottom: -1px;
- padding: 0.5em 1em;
- vertical-align: top; }
- html.theme--documenter-dark .tabs a:hover {
- border-bottom-color: #f2f2f2;
- color: #f2f2f2; }
- html.theme--documenter-dark .tabs li {
- display: block; }
- html.theme--documenter-dark .tabs li.is-active a {
- border-bottom-color: #1abc9c;
- color: #1abc9c; }
- html.theme--documenter-dark .tabs ul {
- align-items: center;
- border-bottom-color: #5e6d6f;
- border-bottom-style: solid;
- border-bottom-width: 1px;
- display: flex;
- flex-grow: 1;
- flex-shrink: 0;
- justify-content: flex-start; }
- html.theme--documenter-dark .tabs ul.is-left {
- padding-right: 0.75em; }
- html.theme--documenter-dark .tabs ul.is-center {
- flex: none;
- justify-content: center;
- padding-left: 0.75em;
- padding-right: 0.75em; }
- html.theme--documenter-dark .tabs ul.is-right {
- justify-content: flex-end;
- padding-left: 0.75em; }
- html.theme--documenter-dark .tabs .icon:first-child {
- margin-right: 0.5em; }
- html.theme--documenter-dark .tabs .icon:last-child {
- margin-left: 0.5em; }
- html.theme--documenter-dark .tabs.is-centered ul {
- justify-content: center; }
- html.theme--documenter-dark .tabs.is-right ul {
- justify-content: flex-end; }
- html.theme--documenter-dark .tabs.is-boxed a {
- border: 1px solid transparent;
- border-radius: 0.4em 0.4em 0 0; }
- html.theme--documenter-dark .tabs.is-boxed a:hover {
- background-color: #282f2f;
- border-bottom-color: #5e6d6f; }
- html.theme--documenter-dark .tabs.is-boxed li.is-active a {
- background-color: white;
- border-color: #5e6d6f;
- border-bottom-color: transparent !important; }
- html.theme--documenter-dark .tabs.is-fullwidth li {
- flex-grow: 1;
- flex-shrink: 0; }
- html.theme--documenter-dark .tabs.is-toggle a {
- border-color: #5e6d6f;
- border-style: solid;
- border-width: 1px;
- margin-bottom: 0;
- position: relative; }
- html.theme--documenter-dark .tabs.is-toggle a:hover {
- background-color: #282f2f;
- border-color: #8c9b9d;
- z-index: 2; }
- html.theme--documenter-dark .tabs.is-toggle li + li {
- margin-left: -1px; }
- html.theme--documenter-dark .tabs.is-toggle li:first-child a {
- border-radius: 0.4em 0 0 0.4em; }
- html.theme--documenter-dark .tabs.is-toggle li:last-child a {
- border-radius: 0 0.4em 0.4em 0; }
- html.theme--documenter-dark .tabs.is-toggle li.is-active a {
- background-color: #1abc9c;
- border-color: #1abc9c;
- color: #fff;
- z-index: 1; }
- html.theme--documenter-dark .tabs.is-toggle ul {
- border-bottom: none; }
- html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a {
- border-bottom-left-radius: 290486px;
- border-top-left-radius: 290486px;
- padding-left: 1.25em; }
- html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a {
- border-bottom-right-radius: 290486px;
- border-top-right-radius: 290486px;
- padding-right: 1.25em; }
- html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs {
- font-size: 0.85em; }
- html.theme--documenter-dark .tabs.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .tabs.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .column {
- display: block;
- flex-basis: 0;
- flex-grow: 1;
- flex-shrink: 1;
- padding: 0.75rem; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-narrow {
- flex: none; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-full {
- flex: none;
- width: 100%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters {
- flex: none;
- width: 75%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds {
- flex: none;
- width: 66.6666%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-half {
- flex: none;
- width: 50%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-one-third {
- flex: none;
- width: 33.3333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter {
- flex: none;
- width: 25%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth {
- flex: none;
- width: 20%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths {
- flex: none;
- width: 40%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths {
- flex: none;
- width: 60%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths {
- flex: none;
- width: 80%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters {
- margin-left: 75%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds {
- margin-left: 66.6666%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half {
- margin-left: 50%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third {
- margin-left: 33.3333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter {
- margin-left: 25%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth {
- margin-left: 20%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths {
- margin-left: 40%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths {
- margin-left: 60%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths {
- margin-left: 80%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-0 {
- flex: none;
- width: 0%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 {
- margin-left: 0%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-1 {
- flex: none;
- width: 8.3333333333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 {
- margin-left: 8.3333333333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-2 {
- flex: none;
- width: 16.6666666667%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 {
- margin-left: 16.6666666667%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-3 {
- flex: none;
- width: 25%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 {
- margin-left: 25%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-4 {
- flex: none;
- width: 33.3333333333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 {
- margin-left: 33.3333333333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-5 {
- flex: none;
- width: 41.6666666667%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 {
- margin-left: 41.6666666667%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-6 {
- flex: none;
- width: 50%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 {
- margin-left: 50%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-7 {
- flex: none;
- width: 58.3333333333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 {
- margin-left: 58.3333333333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-8 {
- flex: none;
- width: 66.6666666667%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 {
- margin-left: 66.6666666667%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-9 {
- flex: none;
- width: 75%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 {
- margin-left: 75%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-10 {
- flex: none;
- width: 83.3333333333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 {
- margin-left: 83.3333333333%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-11 {
- flex: none;
- width: 91.6666666667%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 {
- margin-left: 91.6666666667%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-12 {
- flex: none;
- width: 100%; }
- .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 {
- margin-left: 100%; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .column.is-narrow-mobile {
- flex: none; }
- html.theme--documenter-dark .column.is-full-mobile {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-three-quarters-mobile {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-two-thirds-mobile {
- flex: none;
- width: 66.6666%; }
- html.theme--documenter-dark .column.is-half-mobile {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-one-third-mobile {
- flex: none;
- width: 33.3333%; }
- html.theme--documenter-dark .column.is-one-quarter-mobile {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-one-fifth-mobile {
- flex: none;
- width: 20%; }
- html.theme--documenter-dark .column.is-two-fifths-mobile {
- flex: none;
- width: 40%; }
- html.theme--documenter-dark .column.is-three-fifths-mobile {
- flex: none;
- width: 60%; }
- html.theme--documenter-dark .column.is-four-fifths-mobile {
- flex: none;
- width: 80%; }
- html.theme--documenter-dark .column.is-offset-three-quarters-mobile {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-offset-two-thirds-mobile {
- margin-left: 66.6666%; }
- html.theme--documenter-dark .column.is-offset-half-mobile {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-offset-one-third-mobile {
- margin-left: 33.3333%; }
- html.theme--documenter-dark .column.is-offset-one-quarter-mobile {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-offset-one-fifth-mobile {
- margin-left: 20%; }
- html.theme--documenter-dark .column.is-offset-two-fifths-mobile {
- margin-left: 40%; }
- html.theme--documenter-dark .column.is-offset-three-fifths-mobile {
- margin-left: 60%; }
- html.theme--documenter-dark .column.is-offset-four-fifths-mobile {
- margin-left: 80%; }
- html.theme--documenter-dark .column.is-0-mobile {
- flex: none;
- width: 0%; }
- html.theme--documenter-dark .column.is-offset-0-mobile {
- margin-left: 0%; }
- html.theme--documenter-dark .column.is-1-mobile {
- flex: none;
- width: 8.3333333333%; }
- html.theme--documenter-dark .column.is-offset-1-mobile {
- margin-left: 8.3333333333%; }
- html.theme--documenter-dark .column.is-2-mobile {
- flex: none;
- width: 16.6666666667%; }
- html.theme--documenter-dark .column.is-offset-2-mobile {
- margin-left: 16.6666666667%; }
- html.theme--documenter-dark .column.is-3-mobile {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-offset-3-mobile {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-4-mobile {
- flex: none;
- width: 33.3333333333%; }
- html.theme--documenter-dark .column.is-offset-4-mobile {
- margin-left: 33.3333333333%; }
- html.theme--documenter-dark .column.is-5-mobile {
- flex: none;
- width: 41.6666666667%; }
- html.theme--documenter-dark .column.is-offset-5-mobile {
- margin-left: 41.6666666667%; }
- html.theme--documenter-dark .column.is-6-mobile {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-offset-6-mobile {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-7-mobile {
- flex: none;
- width: 58.3333333333%; }
- html.theme--documenter-dark .column.is-offset-7-mobile {
- margin-left: 58.3333333333%; }
- html.theme--documenter-dark .column.is-8-mobile {
- flex: none;
- width: 66.6666666667%; }
- html.theme--documenter-dark .column.is-offset-8-mobile {
- margin-left: 66.6666666667%; }
- html.theme--documenter-dark .column.is-9-mobile {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-offset-9-mobile {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-10-mobile {
- flex: none;
- width: 83.3333333333%; }
- html.theme--documenter-dark .column.is-offset-10-mobile {
- margin-left: 83.3333333333%; }
- html.theme--documenter-dark .column.is-11-mobile {
- flex: none;
- width: 91.6666666667%; }
- html.theme--documenter-dark .column.is-offset-11-mobile {
- margin-left: 91.6666666667%; }
- html.theme--documenter-dark .column.is-12-mobile {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-offset-12-mobile {
- margin-left: 100%; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet {
- flex: none; }
- html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet {
- flex: none;
- width: 66.6666%; }
- html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet {
- flex: none;
- width: 33.3333%; }
- html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet {
- flex: none;
- width: 20%; }
- html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet {
- flex: none;
- width: 40%; }
- html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet {
- flex: none;
- width: 60%; }
- html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet {
- flex: none;
- width: 80%; }
- html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet {
- margin-left: 66.6666%; }
- html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet {
- margin-left: 33.3333%; }
- html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet {
- margin-left: 20%; }
- html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet {
- margin-left: 40%; }
- html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet {
- margin-left: 60%; }
- html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet {
- margin-left: 80%; }
- html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet {
- flex: none;
- width: 0%; }
- html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet {
- margin-left: 0%; }
- html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet {
- flex: none;
- width: 8.3333333333%; }
- html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet {
- margin-left: 8.3333333333%; }
- html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet {
- flex: none;
- width: 16.6666666667%; }
- html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet {
- margin-left: 16.6666666667%; }
- html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet {
- flex: none;
- width: 33.3333333333%; }
- html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet {
- margin-left: 33.3333333333%; }
- html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet {
- flex: none;
- width: 41.6666666667%; }
- html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet {
- margin-left: 41.6666666667%; }
- html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet {
- flex: none;
- width: 58.3333333333%; }
- html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet {
- margin-left: 58.3333333333%; }
- html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet {
- flex: none;
- width: 66.6666666667%; }
- html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet {
- margin-left: 66.6666666667%; }
- html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet {
- flex: none;
- width: 83.3333333333%; }
- html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet {
- margin-left: 83.3333333333%; }
- html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet {
- flex: none;
- width: 91.6666666667%; }
- html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet {
- margin-left: 91.6666666667%; }
- html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet {
- margin-left: 100%; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .column.is-narrow-touch {
- flex: none; }
- html.theme--documenter-dark .column.is-full-touch {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-three-quarters-touch {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-two-thirds-touch {
- flex: none;
- width: 66.6666%; }
- html.theme--documenter-dark .column.is-half-touch {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-one-third-touch {
- flex: none;
- width: 33.3333%; }
- html.theme--documenter-dark .column.is-one-quarter-touch {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-one-fifth-touch {
- flex: none;
- width: 20%; }
- html.theme--documenter-dark .column.is-two-fifths-touch {
- flex: none;
- width: 40%; }
- html.theme--documenter-dark .column.is-three-fifths-touch {
- flex: none;
- width: 60%; }
- html.theme--documenter-dark .column.is-four-fifths-touch {
- flex: none;
- width: 80%; }
- html.theme--documenter-dark .column.is-offset-three-quarters-touch {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-offset-two-thirds-touch {
- margin-left: 66.6666%; }
- html.theme--documenter-dark .column.is-offset-half-touch {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-offset-one-third-touch {
- margin-left: 33.3333%; }
- html.theme--documenter-dark .column.is-offset-one-quarter-touch {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-offset-one-fifth-touch {
- margin-left: 20%; }
- html.theme--documenter-dark .column.is-offset-two-fifths-touch {
- margin-left: 40%; }
- html.theme--documenter-dark .column.is-offset-three-fifths-touch {
- margin-left: 60%; }
- html.theme--documenter-dark .column.is-offset-four-fifths-touch {
- margin-left: 80%; }
- html.theme--documenter-dark .column.is-0-touch {
- flex: none;
- width: 0%; }
- html.theme--documenter-dark .column.is-offset-0-touch {
- margin-left: 0%; }
- html.theme--documenter-dark .column.is-1-touch {
- flex: none;
- width: 8.3333333333%; }
- html.theme--documenter-dark .column.is-offset-1-touch {
- margin-left: 8.3333333333%; }
- html.theme--documenter-dark .column.is-2-touch {
- flex: none;
- width: 16.6666666667%; }
- html.theme--documenter-dark .column.is-offset-2-touch {
- margin-left: 16.6666666667%; }
- html.theme--documenter-dark .column.is-3-touch {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-offset-3-touch {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-4-touch {
- flex: none;
- width: 33.3333333333%; }
- html.theme--documenter-dark .column.is-offset-4-touch {
- margin-left: 33.3333333333%; }
- html.theme--documenter-dark .column.is-5-touch {
- flex: none;
- width: 41.6666666667%; }
- html.theme--documenter-dark .column.is-offset-5-touch {
- margin-left: 41.6666666667%; }
- html.theme--documenter-dark .column.is-6-touch {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-offset-6-touch {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-7-touch {
- flex: none;
- width: 58.3333333333%; }
- html.theme--documenter-dark .column.is-offset-7-touch {
- margin-left: 58.3333333333%; }
- html.theme--documenter-dark .column.is-8-touch {
- flex: none;
- width: 66.6666666667%; }
- html.theme--documenter-dark .column.is-offset-8-touch {
- margin-left: 66.6666666667%; }
- html.theme--documenter-dark .column.is-9-touch {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-offset-9-touch {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-10-touch {
- flex: none;
- width: 83.3333333333%; }
- html.theme--documenter-dark .column.is-offset-10-touch {
- margin-left: 83.3333333333%; }
- html.theme--documenter-dark .column.is-11-touch {
- flex: none;
- width: 91.6666666667%; }
- html.theme--documenter-dark .column.is-offset-11-touch {
- margin-left: 91.6666666667%; }
- html.theme--documenter-dark .column.is-12-touch {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-offset-12-touch {
- margin-left: 100%; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .column.is-narrow-desktop {
- flex: none; }
- html.theme--documenter-dark .column.is-full-desktop {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-three-quarters-desktop {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-two-thirds-desktop {
- flex: none;
- width: 66.6666%; }
- html.theme--documenter-dark .column.is-half-desktop {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-one-third-desktop {
- flex: none;
- width: 33.3333%; }
- html.theme--documenter-dark .column.is-one-quarter-desktop {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-one-fifth-desktop {
- flex: none;
- width: 20%; }
- html.theme--documenter-dark .column.is-two-fifths-desktop {
- flex: none;
- width: 40%; }
- html.theme--documenter-dark .column.is-three-fifths-desktop {
- flex: none;
- width: 60%; }
- html.theme--documenter-dark .column.is-four-fifths-desktop {
- flex: none;
- width: 80%; }
- html.theme--documenter-dark .column.is-offset-three-quarters-desktop {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-offset-two-thirds-desktop {
- margin-left: 66.6666%; }
- html.theme--documenter-dark .column.is-offset-half-desktop {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-offset-one-third-desktop {
- margin-left: 33.3333%; }
- html.theme--documenter-dark .column.is-offset-one-quarter-desktop {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-offset-one-fifth-desktop {
- margin-left: 20%; }
- html.theme--documenter-dark .column.is-offset-two-fifths-desktop {
- margin-left: 40%; }
- html.theme--documenter-dark .column.is-offset-three-fifths-desktop {
- margin-left: 60%; }
- html.theme--documenter-dark .column.is-offset-four-fifths-desktop {
- margin-left: 80%; }
- html.theme--documenter-dark .column.is-0-desktop {
- flex: none;
- width: 0%; }
- html.theme--documenter-dark .column.is-offset-0-desktop {
- margin-left: 0%; }
- html.theme--documenter-dark .column.is-1-desktop {
- flex: none;
- width: 8.3333333333%; }
- html.theme--documenter-dark .column.is-offset-1-desktop {
- margin-left: 8.3333333333%; }
- html.theme--documenter-dark .column.is-2-desktop {
- flex: none;
- width: 16.6666666667%; }
- html.theme--documenter-dark .column.is-offset-2-desktop {
- margin-left: 16.6666666667%; }
- html.theme--documenter-dark .column.is-3-desktop {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-offset-3-desktop {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-4-desktop {
- flex: none;
- width: 33.3333333333%; }
- html.theme--documenter-dark .column.is-offset-4-desktop {
- margin-left: 33.3333333333%; }
- html.theme--documenter-dark .column.is-5-desktop {
- flex: none;
- width: 41.6666666667%; }
- html.theme--documenter-dark .column.is-offset-5-desktop {
- margin-left: 41.6666666667%; }
- html.theme--documenter-dark .column.is-6-desktop {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-offset-6-desktop {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-7-desktop {
- flex: none;
- width: 58.3333333333%; }
- html.theme--documenter-dark .column.is-offset-7-desktop {
- margin-left: 58.3333333333%; }
- html.theme--documenter-dark .column.is-8-desktop {
- flex: none;
- width: 66.6666666667%; }
- html.theme--documenter-dark .column.is-offset-8-desktop {
- margin-left: 66.6666666667%; }
- html.theme--documenter-dark .column.is-9-desktop {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-offset-9-desktop {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-10-desktop {
- flex: none;
- width: 83.3333333333%; }
- html.theme--documenter-dark .column.is-offset-10-desktop {
- margin-left: 83.3333333333%; }
- html.theme--documenter-dark .column.is-11-desktop {
- flex: none;
- width: 91.6666666667%; }
- html.theme--documenter-dark .column.is-offset-11-desktop {
- margin-left: 91.6666666667%; }
- html.theme--documenter-dark .column.is-12-desktop {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-offset-12-desktop {
- margin-left: 100%; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .column.is-narrow-widescreen {
- flex: none; }
- html.theme--documenter-dark .column.is-full-widescreen {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-three-quarters-widescreen {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-two-thirds-widescreen {
- flex: none;
- width: 66.6666%; }
- html.theme--documenter-dark .column.is-half-widescreen {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-one-third-widescreen {
- flex: none;
- width: 33.3333%; }
- html.theme--documenter-dark .column.is-one-quarter-widescreen {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-one-fifth-widescreen {
- flex: none;
- width: 20%; }
- html.theme--documenter-dark .column.is-two-fifths-widescreen {
- flex: none;
- width: 40%; }
- html.theme--documenter-dark .column.is-three-fifths-widescreen {
- flex: none;
- width: 60%; }
- html.theme--documenter-dark .column.is-four-fifths-widescreen {
- flex: none;
- width: 80%; }
- html.theme--documenter-dark .column.is-offset-three-quarters-widescreen {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-offset-two-thirds-widescreen {
- margin-left: 66.6666%; }
- html.theme--documenter-dark .column.is-offset-half-widescreen {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-offset-one-third-widescreen {
- margin-left: 33.3333%; }
- html.theme--documenter-dark .column.is-offset-one-quarter-widescreen {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-offset-one-fifth-widescreen {
- margin-left: 20%; }
- html.theme--documenter-dark .column.is-offset-two-fifths-widescreen {
- margin-left: 40%; }
- html.theme--documenter-dark .column.is-offset-three-fifths-widescreen {
- margin-left: 60%; }
- html.theme--documenter-dark .column.is-offset-four-fifths-widescreen {
- margin-left: 80%; }
- html.theme--documenter-dark .column.is-0-widescreen {
- flex: none;
- width: 0%; }
- html.theme--documenter-dark .column.is-offset-0-widescreen {
- margin-left: 0%; }
- html.theme--documenter-dark .column.is-1-widescreen {
- flex: none;
- width: 8.3333333333%; }
- html.theme--documenter-dark .column.is-offset-1-widescreen {
- margin-left: 8.3333333333%; }
- html.theme--documenter-dark .column.is-2-widescreen {
- flex: none;
- width: 16.6666666667%; }
- html.theme--documenter-dark .column.is-offset-2-widescreen {
- margin-left: 16.6666666667%; }
- html.theme--documenter-dark .column.is-3-widescreen {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-offset-3-widescreen {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-4-widescreen {
- flex: none;
- width: 33.3333333333%; }
- html.theme--documenter-dark .column.is-offset-4-widescreen {
- margin-left: 33.3333333333%; }
- html.theme--documenter-dark .column.is-5-widescreen {
- flex: none;
- width: 41.6666666667%; }
- html.theme--documenter-dark .column.is-offset-5-widescreen {
- margin-left: 41.6666666667%; }
- html.theme--documenter-dark .column.is-6-widescreen {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-offset-6-widescreen {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-7-widescreen {
- flex: none;
- width: 58.3333333333%; }
- html.theme--documenter-dark .column.is-offset-7-widescreen {
- margin-left: 58.3333333333%; }
- html.theme--documenter-dark .column.is-8-widescreen {
- flex: none;
- width: 66.6666666667%; }
- html.theme--documenter-dark .column.is-offset-8-widescreen {
- margin-left: 66.6666666667%; }
- html.theme--documenter-dark .column.is-9-widescreen {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-offset-9-widescreen {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-10-widescreen {
- flex: none;
- width: 83.3333333333%; }
- html.theme--documenter-dark .column.is-offset-10-widescreen {
- margin-left: 83.3333333333%; }
- html.theme--documenter-dark .column.is-11-widescreen {
- flex: none;
- width: 91.6666666667%; }
- html.theme--documenter-dark .column.is-offset-11-widescreen {
- margin-left: 91.6666666667%; }
- html.theme--documenter-dark .column.is-12-widescreen {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-offset-12-widescreen {
- margin-left: 100%; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .column.is-narrow-fullhd {
- flex: none; }
- html.theme--documenter-dark .column.is-full-fullhd {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-three-quarters-fullhd {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-two-thirds-fullhd {
- flex: none;
- width: 66.6666%; }
- html.theme--documenter-dark .column.is-half-fullhd {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-one-third-fullhd {
- flex: none;
- width: 33.3333%; }
- html.theme--documenter-dark .column.is-one-quarter-fullhd {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-one-fifth-fullhd {
- flex: none;
- width: 20%; }
- html.theme--documenter-dark .column.is-two-fifths-fullhd {
- flex: none;
- width: 40%; }
- html.theme--documenter-dark .column.is-three-fifths-fullhd {
- flex: none;
- width: 60%; }
- html.theme--documenter-dark .column.is-four-fifths-fullhd {
- flex: none;
- width: 80%; }
- html.theme--documenter-dark .column.is-offset-three-quarters-fullhd {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-offset-two-thirds-fullhd {
- margin-left: 66.6666%; }
- html.theme--documenter-dark .column.is-offset-half-fullhd {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-offset-one-third-fullhd {
- margin-left: 33.3333%; }
- html.theme--documenter-dark .column.is-offset-one-quarter-fullhd {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-offset-one-fifth-fullhd {
- margin-left: 20%; }
- html.theme--documenter-dark .column.is-offset-two-fifths-fullhd {
- margin-left: 40%; }
- html.theme--documenter-dark .column.is-offset-three-fifths-fullhd {
- margin-left: 60%; }
- html.theme--documenter-dark .column.is-offset-four-fifths-fullhd {
- margin-left: 80%; }
- html.theme--documenter-dark .column.is-0-fullhd {
- flex: none;
- width: 0%; }
- html.theme--documenter-dark .column.is-offset-0-fullhd {
- margin-left: 0%; }
- html.theme--documenter-dark .column.is-1-fullhd {
- flex: none;
- width: 8.3333333333%; }
- html.theme--documenter-dark .column.is-offset-1-fullhd {
- margin-left: 8.3333333333%; }
- html.theme--documenter-dark .column.is-2-fullhd {
- flex: none;
- width: 16.6666666667%; }
- html.theme--documenter-dark .column.is-offset-2-fullhd {
- margin-left: 16.6666666667%; }
- html.theme--documenter-dark .column.is-3-fullhd {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .column.is-offset-3-fullhd {
- margin-left: 25%; }
- html.theme--documenter-dark .column.is-4-fullhd {
- flex: none;
- width: 33.3333333333%; }
- html.theme--documenter-dark .column.is-offset-4-fullhd {
- margin-left: 33.3333333333%; }
- html.theme--documenter-dark .column.is-5-fullhd {
- flex: none;
- width: 41.6666666667%; }
- html.theme--documenter-dark .column.is-offset-5-fullhd {
- margin-left: 41.6666666667%; }
- html.theme--documenter-dark .column.is-6-fullhd {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .column.is-offset-6-fullhd {
- margin-left: 50%; }
- html.theme--documenter-dark .column.is-7-fullhd {
- flex: none;
- width: 58.3333333333%; }
- html.theme--documenter-dark .column.is-offset-7-fullhd {
- margin-left: 58.3333333333%; }
- html.theme--documenter-dark .column.is-8-fullhd {
- flex: none;
- width: 66.6666666667%; }
- html.theme--documenter-dark .column.is-offset-8-fullhd {
- margin-left: 66.6666666667%; }
- html.theme--documenter-dark .column.is-9-fullhd {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .column.is-offset-9-fullhd {
- margin-left: 75%; }
- html.theme--documenter-dark .column.is-10-fullhd {
- flex: none;
- width: 83.3333333333%; }
- html.theme--documenter-dark .column.is-offset-10-fullhd {
- margin-left: 83.3333333333%; }
- html.theme--documenter-dark .column.is-11-fullhd {
- flex: none;
- width: 91.6666666667%; }
- html.theme--documenter-dark .column.is-offset-11-fullhd {
- margin-left: 91.6666666667%; }
- html.theme--documenter-dark .column.is-12-fullhd {
- flex: none;
- width: 100%; }
- html.theme--documenter-dark .column.is-offset-12-fullhd {
- margin-left: 100%; } }
- html.theme--documenter-dark .columns {
- margin-left: -0.75rem;
- margin-right: -0.75rem;
- margin-top: -0.75rem; }
- html.theme--documenter-dark .columns:last-child {
- margin-bottom: -0.75rem; }
- html.theme--documenter-dark .columns:not(:last-child) {
- margin-bottom: calc(1.5rem - 0.75rem); }
- html.theme--documenter-dark .columns.is-centered {
- justify-content: center; }
- html.theme--documenter-dark .columns.is-gapless {
- margin-left: 0;
- margin-right: 0;
- margin-top: 0; }
- html.theme--documenter-dark .columns.is-gapless > .column {
- margin: 0;
- padding: 0 !important; }
- html.theme--documenter-dark .columns.is-gapless:not(:last-child) {
- margin-bottom: 1.5rem; }
- html.theme--documenter-dark .columns.is-gapless:last-child {
- margin-bottom: 0; }
- html.theme--documenter-dark .columns.is-mobile {
- display: flex; }
- html.theme--documenter-dark .columns.is-multiline {
- flex-wrap: wrap; }
- html.theme--documenter-dark .columns.is-vcentered {
- align-items: center; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns:not(.is-desktop) {
- display: flex; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-desktop {
- display: flex; } }
- html.theme--documenter-dark .columns.is-variable {
- --columnGap: 0.75rem;
- margin-left: calc(-1 * var(--columnGap));
- margin-right: calc(-1 * var(--columnGap)); }
- html.theme--documenter-dark .columns.is-variable .column {
- padding-left: var(--columnGap);
- padding-right: var(--columnGap); }
- html.theme--documenter-dark .columns.is-variable.is-0 {
- --columnGap: 0rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-0-mobile {
- --columnGap: 0rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-0-tablet {
- --columnGap: 0rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-0-tablet-only {
- --columnGap: 0rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-0-touch {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-0-desktop {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-0-desktop-only {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-0-widescreen {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-0-fullhd {
- --columnGap: 0rem; } }
- html.theme--documenter-dark .columns.is-variable.is-1 {
- --columnGap: 0.25rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-1-mobile {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-1-tablet {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-1-tablet-only {
- --columnGap: 0.25rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-1-touch {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-1-desktop {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-1-desktop-only {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-1-widescreen {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-1-fullhd {
- --columnGap: 0.25rem; } }
- html.theme--documenter-dark .columns.is-variable.is-2 {
- --columnGap: 0.5rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-2-mobile {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-2-tablet {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-2-tablet-only {
- --columnGap: 0.5rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-2-touch {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-2-desktop {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-2-desktop-only {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-2-widescreen {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-2-fullhd {
- --columnGap: 0.5rem; } }
- html.theme--documenter-dark .columns.is-variable.is-3 {
- --columnGap: 0.75rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-3-mobile {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-3-tablet {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-3-tablet-only {
- --columnGap: 0.75rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-3-touch {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-3-desktop {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-3-desktop-only {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-3-widescreen {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-3-fullhd {
- --columnGap: 0.75rem; } }
- html.theme--documenter-dark .columns.is-variable.is-4 {
- --columnGap: 1rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-4-mobile {
- --columnGap: 1rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-4-tablet {
- --columnGap: 1rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-4-tablet-only {
- --columnGap: 1rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-4-touch {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-4-desktop {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-4-desktop-only {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-4-widescreen {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-4-fullhd {
- --columnGap: 1rem; } }
- html.theme--documenter-dark .columns.is-variable.is-5 {
- --columnGap: 1.25rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-5-mobile {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-5-tablet {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-5-tablet-only {
- --columnGap: 1.25rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-5-touch {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-5-desktop {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-5-desktop-only {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-5-widescreen {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-5-fullhd {
- --columnGap: 1.25rem; } }
- html.theme--documenter-dark .columns.is-variable.is-6 {
- --columnGap: 1.5rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-6-mobile {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-6-tablet {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-6-tablet-only {
- --columnGap: 1.5rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-6-touch {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-6-desktop {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-6-desktop-only {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-6-widescreen {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-6-fullhd {
- --columnGap: 1.5rem; } }
- html.theme--documenter-dark .columns.is-variable.is-7 {
- --columnGap: 1.75rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-7-mobile {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-7-tablet {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-7-tablet-only {
- --columnGap: 1.75rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-7-touch {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-7-desktop {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-7-desktop-only {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-7-widescreen {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-7-fullhd {
- --columnGap: 1.75rem; } }
- html.theme--documenter-dark .columns.is-variable.is-8 {
- --columnGap: 2rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .columns.is-variable.is-8-mobile {
- --columnGap: 2rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .columns.is-variable.is-8-tablet {
- --columnGap: 2rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-8-tablet-only {
- --columnGap: 2rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .columns.is-variable.is-8-touch {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .columns.is-variable.is-8-desktop {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- html.theme--documenter-dark .columns.is-variable.is-8-desktop-only {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1216px) {
- html.theme--documenter-dark .columns.is-variable.is-8-widescreen {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1408px) {
- html.theme--documenter-dark .columns.is-variable.is-8-fullhd {
- --columnGap: 2rem; } }
- html.theme--documenter-dark .tile {
- align-items: stretch;
- display: block;
- flex-basis: 0;
- flex-grow: 1;
- flex-shrink: 1;
- min-height: min-content; }
- html.theme--documenter-dark .tile.is-ancestor {
- margin-left: -0.75rem;
- margin-right: -0.75rem;
- margin-top: -0.75rem; }
- html.theme--documenter-dark .tile.is-ancestor:last-child {
- margin-bottom: -0.75rem; }
- html.theme--documenter-dark .tile.is-ancestor:not(:last-child) {
- margin-bottom: 0.75rem; }
- html.theme--documenter-dark .tile.is-child {
- margin: 0 !important; }
- html.theme--documenter-dark .tile.is-parent {
- padding: 0.75rem; }
- html.theme--documenter-dark .tile.is-vertical {
- flex-direction: column; }
- html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) {
- margin-bottom: 1.5rem !important; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .tile:not(.is-child) {
- display: flex; }
- html.theme--documenter-dark .tile.is-1 {
- flex: none;
- width: 8.3333333333%; }
- html.theme--documenter-dark .tile.is-2 {
- flex: none;
- width: 16.6666666667%; }
- html.theme--documenter-dark .tile.is-3 {
- flex: none;
- width: 25%; }
- html.theme--documenter-dark .tile.is-4 {
- flex: none;
- width: 33.3333333333%; }
- html.theme--documenter-dark .tile.is-5 {
- flex: none;
- width: 41.6666666667%; }
- html.theme--documenter-dark .tile.is-6 {
- flex: none;
- width: 50%; }
- html.theme--documenter-dark .tile.is-7 {
- flex: none;
- width: 58.3333333333%; }
- html.theme--documenter-dark .tile.is-8 {
- flex: none;
- width: 66.6666666667%; }
- html.theme--documenter-dark .tile.is-9 {
- flex: none;
- width: 75%; }
- html.theme--documenter-dark .tile.is-10 {
- flex: none;
- width: 83.3333333333%; }
- html.theme--documenter-dark .tile.is-11 {
- flex: none;
- width: 91.6666666667%; }
- html.theme--documenter-dark .tile.is-12 {
- flex: none;
- width: 100%; } }
- html.theme--documenter-dark .hero {
- align-items: stretch;
- display: flex;
- flex-direction: column;
- justify-content: space-between; }
- html.theme--documenter-dark .hero .navbar {
- background: none; }
- html.theme--documenter-dark .hero .tabs ul {
- border-bottom: none; }
- html.theme--documenter-dark .hero.is-white {
- background-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-white strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-white .title {
- color: #0a0a0a; }
- html.theme--documenter-dark .hero.is-white .subtitle {
- color: rgba(10, 10, 10, 0.9); }
- html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-white .subtitle strong {
- color: #0a0a0a; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-white .navbar-menu {
- background-color: white; } }
- html.theme--documenter-dark .hero.is-white .navbar-item,
- html.theme--documenter-dark .hero.is-white .navbar-link {
- color: rgba(10, 10, 10, 0.7); }
- html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-white .navbar-link:hover,
- html.theme--documenter-dark .hero.is-white .navbar-link.is-active {
- background-color: #f2f2f2;
- color: #0a0a0a; }
- html.theme--documenter-dark .hero.is-white .tabs a {
- color: #0a0a0a;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-white .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-white .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a {
- color: #0a0a0a; }
- html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover {
- background-color: #0a0a0a;
- border-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .hero.is-white.is-bold {
- background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
- html.theme--documenter-dark .hero.is-black {
- background-color: #0a0a0a;
- color: white; }
- html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-black strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-black .title {
- color: white; }
- html.theme--documenter-dark .hero.is-black .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-black .subtitle strong {
- color: white; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-black .navbar-menu {
- background-color: #0a0a0a; } }
- html.theme--documenter-dark .hero.is-black .navbar-item,
- html.theme--documenter-dark .hero.is-black .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- html.theme--documenter-dark .hero.is-black a.navbar-item:hover, html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-black .navbar-link:hover,
- html.theme--documenter-dark .hero.is-black .navbar-link.is-active {
- background-color: black;
- color: white; }
- html.theme--documenter-dark .hero.is-black .tabs a {
- color: white;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-black .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-black .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a {
- color: white; }
- html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover {
- background-color: white;
- border-color: white;
- color: #0a0a0a; }
- html.theme--documenter-dark .hero.is-black.is-bold {
- background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
- html.theme--documenter-dark .hero.is-light {
- background-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-light strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-light .title {
- color: #282f2f; }
- html.theme--documenter-dark .hero.is-light .subtitle {
- color: rgba(40, 47, 47, 0.9); }
- html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-light .subtitle strong {
- color: #282f2f; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-light .navbar-menu {
- background-color: #ecf0f1; } }
- html.theme--documenter-dark .hero.is-light .navbar-item,
- html.theme--documenter-dark .hero.is-light .navbar-link {
- color: rgba(40, 47, 47, 0.7); }
- html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-light .navbar-link:hover,
- html.theme--documenter-dark .hero.is-light .navbar-link.is-active {
- background-color: #dde4e6;
- color: #282f2f; }
- html.theme--documenter-dark .hero.is-light .tabs a {
- color: #282f2f;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-light .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-light .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a {
- color: #282f2f; }
- html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover {
- background-color: #282f2f;
- border-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .hero.is-light.is-bold {
- background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } }
- html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero {
- background-color: #282f2f;
- color: #ecf0f1; }
- html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-dark strong,
- html.theme--documenter-dark .content kbd.hero strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title {
- color: #ecf0f1; }
- html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle {
- color: rgba(236, 240, 241, 0.9); }
- html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-dark .subtitle strong,
- html.theme--documenter-dark .content kbd.hero .subtitle strong {
- color: #ecf0f1; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu {
- background-color: #282f2f; } }
- html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item,
- html.theme--documenter-dark .hero.is-dark .navbar-link,
- html.theme--documenter-dark .content kbd.hero .navbar-link {
- color: rgba(236, 240, 241, 0.7); }
- html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-dark .navbar-link:hover,
- html.theme--documenter-dark .content kbd.hero .navbar-link:hover,
- html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,
- html.theme--documenter-dark .content kbd.hero .navbar-link.is-active {
- background-color: #1d2122;
- color: #ecf0f1; }
- html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a {
- color: #ecf0f1;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a {
- color: #ecf0f1; }
- html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover {
- background-color: #ecf0f1;
- border-color: #ecf0f1;
- color: #282f2f; }
- html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold {
- background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } }
- html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink {
- background-color: #375a7f;
- color: #fff; }
- html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-primary strong,
- html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title {
- color: #fff; }
- html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-primary .subtitle strong,
- html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu {
- background-color: #375a7f; } }
- html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item,
- html.theme--documenter-dark .hero.is-primary .navbar-link,
- html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-primary .navbar-link:hover,
- html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
- html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,
- html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
- background-color: #2f4d6d;
- color: #fff; }
- html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a {
- color: #fff;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
- color: #fff; }
- html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #375a7f; }
- html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink {
- background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
- background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } }
- html.theme--documenter-dark .hero.is-link {
- background-color: #1abc9c;
- color: #fff; }
- html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-link strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-link .title {
- color: #fff; }
- html.theme--documenter-dark .hero.is-link .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-link .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-link .navbar-menu {
- background-color: #1abc9c; } }
- html.theme--documenter-dark .hero.is-link .navbar-item,
- html.theme--documenter-dark .hero.is-link .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-link .navbar-link:hover,
- html.theme--documenter-dark .hero.is-link .navbar-link.is-active {
- background-color: #17a689;
- color: #fff; }
- html.theme--documenter-dark .hero.is-link .tabs a {
- color: #fff;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-link .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-link .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a {
- color: #fff; }
- html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #1abc9c; }
- html.theme--documenter-dark .hero.is-link.is-bold {
- background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } }
- html.theme--documenter-dark .hero.is-info {
- background-color: #024c7d;
- color: #fff; }
- html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-info strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-info .title {
- color: #fff; }
- html.theme--documenter-dark .hero.is-info .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-info .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-info .navbar-menu {
- background-color: #024c7d; } }
- html.theme--documenter-dark .hero.is-info .navbar-item,
- html.theme--documenter-dark .hero.is-info .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-info .navbar-link:hover,
- html.theme--documenter-dark .hero.is-info .navbar-link.is-active {
- background-color: #023d64;
- color: #fff; }
- html.theme--documenter-dark .hero.is-info .tabs a {
- color: #fff;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-info .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-info .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a {
- color: #fff; }
- html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #024c7d; }
- html.theme--documenter-dark .hero.is-info.is-bold {
- background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } }
- html.theme--documenter-dark .hero.is-success {
- background-color: #008438;
- color: #fff; }
- html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-success strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-success .title {
- color: #fff; }
- html.theme--documenter-dark .hero.is-success .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-success .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-success .navbar-menu {
- background-color: #008438; } }
- html.theme--documenter-dark .hero.is-success .navbar-item,
- html.theme--documenter-dark .hero.is-success .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-success .navbar-link:hover,
- html.theme--documenter-dark .hero.is-success .navbar-link.is-active {
- background-color: #006b2d;
- color: #fff; }
- html.theme--documenter-dark .hero.is-success .tabs a {
- color: #fff;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-success .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-success .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a {
- color: #fff; }
- html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #008438; }
- html.theme--documenter-dark .hero.is-success.is-bold {
- background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } }
- html.theme--documenter-dark .hero.is-warning {
- background-color: #ad8100;
- color: #fff; }
- html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-warning strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-warning .title {
- color: #fff; }
- html.theme--documenter-dark .hero.is-warning .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-warning .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-warning .navbar-menu {
- background-color: #ad8100; } }
- html.theme--documenter-dark .hero.is-warning .navbar-item,
- html.theme--documenter-dark .hero.is-warning .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-warning .navbar-link:hover,
- html.theme--documenter-dark .hero.is-warning .navbar-link.is-active {
- background-color: #946e00;
- color: #fff; }
- html.theme--documenter-dark .hero.is-warning .tabs a {
- color: #fff;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-warning .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-warning .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a {
- color: #fff; }
- html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #ad8100; }
- html.theme--documenter-dark .hero.is-warning.is-bold {
- background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } }
- html.theme--documenter-dark .hero.is-danger {
- background-color: #9e1b0d;
- color: #fff; }
- html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- html.theme--documenter-dark .hero.is-danger strong {
- color: inherit; }
- html.theme--documenter-dark .hero.is-danger .title {
- color: #fff; }
- html.theme--documenter-dark .hero.is-danger .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),
- html.theme--documenter-dark .hero.is-danger .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .hero.is-danger .navbar-menu {
- background-color: #9e1b0d; } }
- html.theme--documenter-dark .hero.is-danger .navbar-item,
- html.theme--documenter-dark .hero.is-danger .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,
- html.theme--documenter-dark .hero.is-danger .navbar-link:hover,
- html.theme--documenter-dark .hero.is-danger .navbar-link.is-active {
- background-color: #86170b;
- color: #fff; }
- html.theme--documenter-dark .hero.is-danger .tabs a {
- color: #fff;
- opacity: 0.9; }
- html.theme--documenter-dark .hero.is-danger .tabs a:hover {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-danger .tabs li.is-active a {
- opacity: 1; }
- html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a {
- color: #fff; }
- html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #9e1b0d; }
- html.theme--documenter-dark .hero.is-danger.is-bold {
- background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } }
- html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
- padding-bottom: 1.5rem;
- padding-top: 1.5rem; }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .hero.is-medium .hero-body {
- padding-bottom: 9rem;
- padding-top: 9rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .hero.is-large .hero-body {
- padding-bottom: 18rem;
- padding-top: 18rem; } }
- html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body {
- align-items: center;
- display: flex; }
- html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container {
- flex-grow: 1;
- flex-shrink: 1; }
- html.theme--documenter-dark .hero.is-halfheight {
- min-height: 50vh; }
- html.theme--documenter-dark .hero.is-fullheight {
- min-height: 100vh; }
- html.theme--documenter-dark .hero-video {
- overflow: hidden; }
- html.theme--documenter-dark .hero-video video {
- left: 50%;
- min-height: 100%;
- min-width: 100%;
- position: absolute;
- top: 50%;
- transform: translate3d(-50%, -50%, 0); }
- html.theme--documenter-dark .hero-video.is-transparent {
- opacity: 0.3; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero-video {
- display: none; } }
- html.theme--documenter-dark .hero-buttons {
- margin-top: 1.5rem; }
- @media screen and (max-width: 768px) {
- html.theme--documenter-dark .hero-buttons .button {
- display: flex; }
- html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
- margin-bottom: 0.75rem; } }
- @media screen and (min-width: 769px), print {
- html.theme--documenter-dark .hero-buttons {
- display: flex;
- justify-content: center; }
- html.theme--documenter-dark .hero-buttons .button:not(:last-child) {
- margin-right: 1.5rem; } }
- html.theme--documenter-dark .hero-head,
- html.theme--documenter-dark .hero-foot {
- flex-grow: 0;
- flex-shrink: 0; }
- html.theme--documenter-dark .hero-body {
- flex-grow: 1;
- flex-shrink: 0;
- padding: 3rem 1.5rem; }
- html.theme--documenter-dark .section {
- padding: 3rem 1.5rem; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark .section.is-medium {
- padding: 9rem 1.5rem; }
- html.theme--documenter-dark .section.is-large {
- padding: 18rem 1.5rem; } }
- html.theme--documenter-dark .footer {
- background-color: #282f2f;
- padding: 3rem 1.5rem 6rem; }
- html.theme--documenter-dark hr {
- height: 1px; }
- html.theme--documenter-dark h6 {
- text-transform: uppercase;
- letter-spacing: 0.5px; }
- html.theme--documenter-dark .hero {
- background-color: #343c3d; }
- html.theme--documenter-dark a {
- transition: all 200ms ease; }
- html.theme--documenter-dark .button {
- transition: all 200ms ease;
- border-width: 1px;
- color: white; }
- html.theme--documenter-dark .button.is-active, html.theme--documenter-dark .button.is-focused, html.theme--documenter-dark .button:active, html.theme--documenter-dark .button:focus {
- box-shadow: 0 0 0 2px rgba(140, 155, 157, 0.5); }
- html.theme--documenter-dark .button.is-white.is-hovered, html.theme--documenter-dark .button.is-white:hover {
- background-color: white; }
- html.theme--documenter-dark .button.is-white.is-active, html.theme--documenter-dark .button.is-white.is-focused, html.theme--documenter-dark .button.is-white:active, html.theme--documenter-dark .button.is-white:focus {
- border-color: white;
- box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5); }
- html.theme--documenter-dark .button.is-black.is-hovered, html.theme--documenter-dark .button.is-black:hover {
- background-color: #1d1d1d; }
- html.theme--documenter-dark .button.is-black.is-active, html.theme--documenter-dark .button.is-black.is-focused, html.theme--documenter-dark .button.is-black:active, html.theme--documenter-dark .button.is-black:focus {
- border-color: #0a0a0a;
- box-shadow: 0 0 0 2px rgba(10, 10, 10, 0.5); }
- html.theme--documenter-dark .button.is-light.is-hovered, html.theme--documenter-dark .button.is-light:hover {
- background-color: white; }
- html.theme--documenter-dark .button.is-light.is-active, html.theme--documenter-dark .button.is-light.is-focused, html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light:focus {
- border-color: #ecf0f1;
- box-shadow: 0 0 0 2px rgba(236, 240, 241, 0.5); }
- html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered, html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover {
- background-color: #3a4344; }
- html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused, html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus {
- border-color: #282f2f;
- box-shadow: 0 0 0 2px rgba(40, 47, 47, 0.5); }
- html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover {
- background-color: #436d9a; }
- html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink, html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus {
- border-color: #375a7f;
- box-shadow: 0 0 0 2px rgba(55, 90, 127, 0.5); }
- html.theme--documenter-dark .button.is-link.is-hovered, html.theme--documenter-dark .button.is-link:hover {
- background-color: #1fdeb8; }
- html.theme--documenter-dark .button.is-link.is-active, html.theme--documenter-dark .button.is-link.is-focused, html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link:focus {
- border-color: #1abc9c;
- box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.5); }
- html.theme--documenter-dark .button.is-info.is-hovered, html.theme--documenter-dark .button.is-info:hover {
- background-color: #0363a3; }
- html.theme--documenter-dark .button.is-info.is-active, html.theme--documenter-dark .button.is-info.is-focused, html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info:focus {
- border-color: #024c7d;
- box-shadow: 0 0 0 2px rgba(2, 76, 125, 0.5); }
- html.theme--documenter-dark .button.is-success.is-hovered, html.theme--documenter-dark .button.is-success:hover {
- background-color: #00aa48; }
- html.theme--documenter-dark .button.is-success.is-active, html.theme--documenter-dark .button.is-success.is-focused, html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success:focus {
- border-color: #008438;
- box-shadow: 0 0 0 2px rgba(0, 132, 56, 0.5); }
- html.theme--documenter-dark .button.is-warning.is-hovered, html.theme--documenter-dark .button.is-warning:hover {
- background-color: #d39e00; }
- html.theme--documenter-dark .button.is-warning.is-active, html.theme--documenter-dark .button.is-warning.is-focused, html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning:focus {
- border-color: #ad8100;
- box-shadow: 0 0 0 2px rgba(173, 129, 0, 0.5); }
- html.theme--documenter-dark .button.is-danger.is-hovered, html.theme--documenter-dark .button.is-danger:hover {
- background-color: #c12110; }
- html.theme--documenter-dark .button.is-danger.is-active, html.theme--documenter-dark .button.is-danger.is-focused, html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger:focus {
- border-color: #9e1b0d;
- box-shadow: 0 0 0 2px rgba(158, 27, 13, 0.5); }
- html.theme--documenter-dark .label {
- color: #dbdee0; }
- html.theme--documenter-dark .button,
- html.theme--documenter-dark .control.has-icons-left .icon,
- html.theme--documenter-dark .control.has-icons-right .icon,
- html.theme--documenter-dark .input,
- html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
- html.theme--documenter-dark .pagination-ellipsis,
- html.theme--documenter-dark .pagination-link,
- html.theme--documenter-dark .pagination-next,
- html.theme--documenter-dark .pagination-previous,
- html.theme--documenter-dark .select,
- html.theme--documenter-dark .select select,
- html.theme--documenter-dark .textarea {
- height: 2.5em; }
- html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input,
- html.theme--documenter-dark .textarea {
- transition: all 200ms ease;
- box-shadow: none;
- border-width: 1px;
- padding-left: 1em;
- padding-right: 1em; }
- html.theme--documenter-dark .select:after,
- html.theme--documenter-dark .select select {
- border-width: 1px; }
- html.theme--documenter-dark .control.has-addons .button,
- html.theme--documenter-dark .control.has-addons .input,
- html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search > input,
- html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search > input,
- html.theme--documenter-dark .control.has-addons .select {
- margin-right: -1px; }
- html.theme--documenter-dark .notification {
- background-color: #343c3d; }
- html.theme--documenter-dark .card {
- box-shadow: none;
- border: 1px solid #343c3d;
- background-color: #282f2f;
- border-radius: 0.4em; }
- html.theme--documenter-dark .card .card-image img {
- border-radius: 0.4em 0.4em 0 0; }
- html.theme--documenter-dark .card .card-header {
- box-shadow: none;
- background-color: rgba(18, 18, 18, 0.2);
- border-radius: 0.4em 0.4em 0 0; }
- html.theme--documenter-dark .card .card-footer {
- background-color: rgba(18, 18, 18, 0.2); }
- html.theme--documenter-dark .card .card-footer,
- html.theme--documenter-dark .card .card-footer-item {
- border-width: 1px;
- border-color: #343c3d; }
- html.theme--documenter-dark .notification.is-white a:not(.button) {
- color: #0a0a0a;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-black a:not(.button) {
- color: white;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-light a:not(.button) {
- color: #282f2f;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) {
- color: #ecf0f1;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) {
- color: #fff;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-link a:not(.button) {
- color: #fff;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-info a:not(.button) {
- color: #fff;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-success a:not(.button) {
- color: #fff;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-warning a:not(.button) {
- color: #fff;
- text-decoration: underline; }
- html.theme--documenter-dark .notification.is-danger a:not(.button) {
- color: #fff;
- text-decoration: underline; }
- html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
- border-radius: 0.4em; }
- html.theme--documenter-dark .menu-list a {
- transition: all 300ms ease; }
- html.theme--documenter-dark .modal-card-body {
- background-color: #282f2f; }
- html.theme--documenter-dark .modal-card-foot,
- html.theme--documenter-dark .modal-card-head {
- border-color: #343c3d; }
- html.theme--documenter-dark .message-header {
- font-weight: 700;
- background-color: #343c3d;
- color: white; }
- html.theme--documenter-dark .message-body {
- border-width: 1px;
- border-color: #343c3d; }
- html.theme--documenter-dark .navbar {
- border-radius: 0.4em; }
- html.theme--documenter-dark .navbar.is-transparent {
- background: none; }
- html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
- background-color: #1abc9c; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark .navbar .navbar-menu {
- background-color: #375a7f;
- border-radius: 0 0 0.4em 0.4em; } }
- html.theme--documenter-dark .hero .navbar,
- html.theme--documenter-dark body > .navbar {
- border-radius: 0; }
- html.theme--documenter-dark .pagination-link,
- html.theme--documenter-dark .pagination-next,
- html.theme--documenter-dark .pagination-previous {
- border-width: 1px; }
- html.theme--documenter-dark .panel-block,
- html.theme--documenter-dark .panel-heading,
- html.theme--documenter-dark .panel-tabs {
- border-width: 1px; }
- html.theme--documenter-dark .panel-block:first-child,
- html.theme--documenter-dark .panel-heading:first-child,
- html.theme--documenter-dark .panel-tabs:first-child {
- border-top-width: 1px; }
- html.theme--documenter-dark .panel-heading {
- font-weight: 700; }
- html.theme--documenter-dark .panel-tabs a {
- border-width: 1px;
- margin-bottom: -1px; }
- html.theme--documenter-dark .panel-tabs a.is-active {
- border-bottom-color: #17a689; }
- html.theme--documenter-dark .panel-block:hover {
- color: #1dd2af; }
- html.theme--documenter-dark .panel-block:hover .panel-icon {
- color: #1dd2af; }
- html.theme--documenter-dark .panel-block.is-active .panel-icon {
- color: #17a689; }
- html.theme--documenter-dark .tabs a {
- border-bottom-width: 1px;
- margin-bottom: -1px; }
- html.theme--documenter-dark .tabs ul {
- border-bottom-width: 1px; }
- html.theme--documenter-dark .tabs.is-boxed a {
- border-width: 1px; }
- html.theme--documenter-dark .tabs.is-boxed li.is-active a {
- background-color: #1f2424; }
- html.theme--documenter-dark .tabs.is-toggle li a {
- border-width: 1px;
- margin-bottom: 0; }
- html.theme--documenter-dark .tabs.is-toggle li + li {
- margin-left: -1px; }
- html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover {
- background-color: transparent; }
- html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited {
- color: #f2f2f2; }
- html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink {
- visibility: hidden;
- vertical-align: middle;
- margin-left: 0.5em;
- font-size: 0.7rem; }
- html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before {
- font-family: "Font Awesome 5 Free";
- font-weight: 900;
- content: "\f0c1"; }
- html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink {
- visibility: visible; }
- html.theme--documenter-dark .docs-light-only {
- display: none !important; }
- html.theme--documenter-dark pre {
- position: relative;
- overflow: hidden; }
- html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs {
- padding: 0 0.75rem !important;
- overflow: auto;
- display: block; }
- html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type {
- padding-top: 0.5rem !important; }
- html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type {
- padding-bottom: 0.5rem !important; }
- html.theme--documenter-dark pre .copy-button {
- opacity: 0.2;
- transition: opacity 0.2s;
- position: absolute;
- right: 0em;
- top: 0em;
- padding: 0.5em;
- width: 2.5em;
- height: 2.5em;
- background: transparent;
- border: none;
- font-family: "Font Awesome 5 Free";
- color: #fff;
- cursor: pointer;
- text-align: center; }
- html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover {
- opacity: 1;
- background: rgba(255, 255, 255, 0.1);
- color: #1abc9c; }
- html.theme--documenter-dark pre .copy-button.success {
- color: #259a12;
- opacity: 1; }
- html.theme--documenter-dark pre .copy-button.error {
- color: #cb3c33;
- opacity: 1; }
- html.theme--documenter-dark pre:hover .copy-button {
- opacity: 1; }
- html.theme--documenter-dark .admonition {
- background-color: #282f2f;
- border-style: solid;
- border-width: 1px;
- border-color: #5e6d6f;
- border-radius: 0.4em;
- font-size: 15px; }
- html.theme--documenter-dark .admonition strong {
- color: currentColor; }
- html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition {
- font-size: 0.85em; }
- html.theme--documenter-dark .admonition.is-medium {
- font-size: 1.25rem; }
- html.theme--documenter-dark .admonition.is-large {
- font-size: 1.5rem; }
- html.theme--documenter-dark .admonition.is-default {
- background-color: #282f2f;
- border-color: #5e6d6f; }
- html.theme--documenter-dark .admonition.is-default > .admonition-header {
- background-color: #5e6d6f; }
- html.theme--documenter-dark .admonition.is-info {
- background-color: #282f2f;
- border-color: #024c7d; }
- html.theme--documenter-dark .admonition.is-info > .admonition-header {
- background-color: #024c7d; }
- html.theme--documenter-dark .admonition.is-success {
- background-color: #282f2f;
- border-color: #008438; }
- html.theme--documenter-dark .admonition.is-success > .admonition-header {
- background-color: #008438; }
- html.theme--documenter-dark .admonition.is-warning {
- background-color: #282f2f;
- border-color: #ad8100; }
- html.theme--documenter-dark .admonition.is-warning > .admonition-header {
- background-color: #ad8100; }
- html.theme--documenter-dark .admonition.is-danger {
- background-color: #282f2f;
- border-color: #9e1b0d; }
- html.theme--documenter-dark .admonition.is-danger > .admonition-header {
- background-color: #9e1b0d; }
- html.theme--documenter-dark .admonition.is-compat {
- background-color: #282f2f;
- border-color: #137886; }
- html.theme--documenter-dark .admonition.is-compat > .admonition-header {
- background-color: #137886; }
- html.theme--documenter-dark .admonition-header {
- background-color: #5e6d6f;
- align-items: center;
- font-weight: 700;
- justify-content: space-between;
- line-height: 1.25;
- padding: 0.5rem 0.75rem;
- position: relative; }
- html.theme--documenter-dark .admonition-header:before {
- font-family: "Font Awesome 5 Free";
- font-weight: 900;
- margin-right: 0.75rem;
- content: "\f06a"; }
- html.theme--documenter-dark .admonition-body {
- color: #fff;
- padding: 0.5rem 0.75rem; }
- html.theme--documenter-dark .admonition-body pre {
- background-color: #282f2f; }
- html.theme--documenter-dark .admonition-body code {
- background-color: rgba(255, 255, 255, 0.05); }
- html.theme--documenter-dark .docstring {
- margin-bottom: 1em;
- background-color: transparent;
- border: 1px solid #5e6d6f;
- box-shadow: none;
- max-width: 100%; }
- html.theme--documenter-dark .docstring > header {
- display: flex;
- flex-grow: 1;
- align-items: stretch;
- padding: 0.5rem 0.75rem;
- background-color: #282f2f;
- box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
- box-shadow: none;
- border-bottom: 1px solid #5e6d6f; }
- html.theme--documenter-dark .docstring > header code {
- background-color: transparent; }
- html.theme--documenter-dark .docstring > header .docstring-binding {
- margin-right: 0.3em; }
- html.theme--documenter-dark .docstring > header .docstring-category {
- margin-left: 0.3em; }
- html.theme--documenter-dark .docstring > section {
- position: relative;
- padding: 0.75rem 0.75rem;
- border-bottom: 1px solid #5e6d6f; }
- html.theme--documenter-dark .docstring > section:last-child {
- border-bottom: none; }
- html.theme--documenter-dark .docstring > section > a.docs-sourcelink {
- transition: opacity 0.3s;
- opacity: 0;
- position: absolute;
- right: 0.375rem;
- bottom: 0.375rem; }
- html.theme--documenter-dark .docstring > section > a.docs-sourcelink:focus {
- opacity: 1 !important; }
- html.theme--documenter-dark .docstring:hover > section > a.docs-sourcelink {
- opacity: 0.2; }
- html.theme--documenter-dark .docstring:focus-within > section > a.docs-sourcelink {
- opacity: 0.2; }
- html.theme--documenter-dark .docstring > section:hover a.docs-sourcelink {
- opacity: 1; }
- html.theme--documenter-dark .documenter-example-output {
- background-color: #1f2424; }
- html.theme--documenter-dark .outdated-warning-overlay {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
- z-index: 999;
- background-color: #282f2f;
- border-bottom: 3px solid #9e1b0d;
- padding: 10px 35px;
- text-align: center;
- font-size: 15px; }
- html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer {
- position: absolute;
- top: calc(50% - 10px);
- right: 18px;
- cursor: pointer;
- width: 12px; }
- html.theme--documenter-dark .outdated-warning-overlay a {
- color: #1abc9c; }
- html.theme--documenter-dark .outdated-warning-overlay a:hover {
- color: #1dd2af; }
- html.theme--documenter-dark .content pre {
- border: 1px solid #5e6d6f; }
- html.theme--documenter-dark .content code {
- font-weight: inherit; }
- html.theme--documenter-dark .content a code {
- color: #1abc9c; }
- html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code {
- color: #f2f2f2; }
- html.theme--documenter-dark .content table {
- display: block;
- width: initial;
- max-width: 100%;
- overflow-x: auto; }
- html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child {
- margin-top: 0; }
- html.theme--documenter-dark pre, html.theme--documenter-dark code {
- font-variant-ligatures: no-contextual; }
- html.theme--documenter-dark .breadcrumb a.is-disabled {
- cursor: default;
- pointer-events: none; }
- html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover {
- color: #f2f2f2; }
- html.theme--documenter-dark .hljs {
- background: initial !important; }
- html.theme--documenter-dark .katex .katex-mathml {
- top: 0;
- right: 0; }
- html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display {
- margin: 0.5em 0 !important; }
- html.theme--documenter-dark html {
- -moz-osx-font-smoothing: auto;
- -webkit-font-smoothing: auto; }
- html.theme--documenter-dark li.no-marker {
- list-style: none; }
- html.theme--documenter-dark #documenter .docs-main > article {
- overflow-wrap: break-word; }
- html.theme--documenter-dark #documenter .docs-main > article .math-container {
- overflow-x: auto;
- overflow-y: hidden; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark #documenter .docs-main {
- max-width: 52rem;
- margin-left: 20rem;
- padding-right: 1rem; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark #documenter .docs-main {
- width: 100%; }
- html.theme--documenter-dark #documenter .docs-main > article {
- max-width: 52rem;
- margin-left: auto;
- margin-right: auto;
- margin-bottom: 1rem;
- padding: 0 1rem; }
- html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav {
- max-width: 100%;
- width: 100%;
- margin: 0; } }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
- background-color: #1f2424;
- border-bottom: 1px solid #5e6d6f;
- z-index: 2;
- min-height: 4rem;
- margin-bottom: 1rem;
- display: flex; }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb {
- flex-grow: 1; }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right {
- display: flex;
- white-space: nowrap; }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
- display: inline-block; }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label {
- padding: 0;
- margin-left: 0.3em; }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
- margin: auto 0 auto 1rem; }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
- font-size: 1.5rem;
- margin: auto 0 auto 1rem; }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * {
- margin: auto 0; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar {
- position: sticky;
- top: 0;
- padding: 0 1rem;
- /* For Headroom.js */
- transition-property: top, box-shadow;
- -webkit-transition-property: top, box-shadow;
- /* Safari */
- transition-duration: 0.3s;
- -webkit-transition-duration: 0.3s;
- /* Safari */ }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top {
- box-shadow: 0.2rem 0rem 0.4rem #171717;
- transition-duration: 0.7s;
- -webkit-transition-duration: 0.7s;
- /* Safari */ }
- html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
- top: -4.5rem;
- transition-duration: 0.7s;
- -webkit-transition-duration: 0.7s;
- /* Safari */ } }
- html.theme--documenter-dark #documenter .docs-main section.footnotes {
- border-top: 1px solid #5e6d6f; }
- html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child {
- margin-right: 1em;
- margin-bottom: 0.4em; }
- html.theme--documenter-dark #documenter .docs-main .docs-footer {
- display: flex;
- flex-wrap: wrap;
- margin-left: 0;
- margin-right: 0;
- border-top: 1px solid #5e6d6f;
- padding-top: 1rem;
- padding-bottom: 1rem; }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark #documenter .docs-main .docs-footer {
- padding-left: 1rem;
- padding-right: 1rem; } }
- html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage {
- flex-grow: 1; }
- html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage {
- text-align: right; }
- html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break {
- flex-basis: 100%;
- height: 0; }
- html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message {
- font-size: 0.8em;
- margin: 0.5em auto 0 auto;
- text-align: center; }
- html.theme--documenter-dark #documenter .docs-sidebar {
- display: flex;
- flex-direction: column;
- color: #fff;
- background-color: #282f2f;
- border-right: 1px solid #5e6d6f;
- padding: 0;
- flex: 0 0 18rem;
- z-index: 5;
- font-size: 15px;
- position: fixed;
- left: -18rem;
- width: 18rem;
- height: 100%;
- transition: left 0.3s;
- /* Setting up a nicer theme style for the scrollbar */ }
- html.theme--documenter-dark #documenter .docs-sidebar.visible {
- left: 0;
- box-shadow: 0.4rem 0rem 0.8rem #171717; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark #documenter .docs-sidebar.visible {
- box-shadow: none; } }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark #documenter .docs-sidebar {
- left: 0;
- top: 0; } }
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo {
- margin-top: 1rem;
- padding: 0 1rem; }
- html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img {
- max-height: 6rem;
- margin: auto; }
- html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name {
- flex-shrink: 0;
- font-size: 1.5rem;
- font-weight: 700;
- text-align: center;
- white-space: nowrap;
- overflow: hidden;
- padding: 0.5rem 0; }
- html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit {
- max-width: 16.2rem; }
- html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a, html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover {
- color: #fff; }
- html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector {
- border-top: 1px solid #5e6d6f;
- display: none;
- padding: 0.5rem; }
- html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible {
- display: flex; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
- flex-grow: 1;
- user-select: none;
- border-top: 1px solid #5e6d6f;
- padding-bottom: 1.5rem;
- /* Managing collapsible submenus */ }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
- font-weight: bold; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li {
- font-size: 14.25px;
- margin-left: 1em;
- border-left: 1px solid #5e6d6f; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
- display: none; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed {
- display: none; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
- display: block; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem {
- display: flex; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
- flex-grow: 2; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
- display: inline-block;
- font-style: normal;
- font-variant: normal;
- text-rendering: auto;
- line-height: 1;
- font-size: 11.25px;
- margin-left: 1rem;
- margin-top: auto;
- margin-bottom: auto; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
- font-family: "Font Awesome 5 Free";
- font-weight: 900;
- content: "\f054"; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
- content: "\f078"; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem {
- display: block;
- padding: 0.5rem 0.5rem; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
- color: #fff;
- background: #282f2f; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
- color: #fff;
- background-color: #32393a; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active {
- border-top: 1px solid #5e6d6f;
- border-bottom: 1px solid #5e6d6f;
- background-color: #1f2424; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
- background-color: #1f2424;
- color: #fff; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
- background-color: #32393a;
- color: #fff; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
- border-top: none; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal {
- margin: 0 0.5rem 0.5rem;
- border-top: 1px solid #5e6d6f; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li {
- font-size: 12.75px;
- border-left: none;
- margin-left: 0;
- margin-top: 0.5rem; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
- width: 100%;
- padding: 0; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
- content: "⚬";
- margin-right: 0.4em; }
- html.theme--documenter-dark #documenter .docs-sidebar form.docs-search {
- margin: auto;
- margin-top: 0.5rem;
- margin-bottom: 0.5rem; }
- html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input {
- width: 14.4rem; }
- @media screen and (min-width: 1056px) {
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu {
- overflow-y: auto;
- -webkit-overflow-scroll: touch; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
- width: .3rem;
- background: none; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
- border-radius: 5px 0px 0px 5px;
- background: #3b4445; }
- html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
- background: #4e5a5c; } }
- @media screen and (max-width: 1055px) {
- html.theme--documenter-dark #documenter .docs-sidebar {
- overflow-y: auto;
- -webkit-overflow-scroll: touch; }
- html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar {
- width: .3rem;
- background: none; }
- html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb {
- border-radius: 5px 0px 0px 5px;
- background: #3b4445; }
- html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
- background: #4e5a5c; } }
- html.theme--documenter-dark #documenter .docs-main #documenter-search-info {
- margin-bottom: 1rem; }
- html.theme--documenter-dark #documenter .docs-main #documenter-search-results {
- list-style-type: circle;
- list-style-position: outside; }
- html.theme--documenter-dark #documenter .docs-main #documenter-search-results li {
- margin-left: 2rem; }
- html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight {
- background-color: yellow; }
- html.theme--documenter-dark {
- background-color: #1f2424;
- font-size: 16px;
- min-width: 300px;
- overflow-x: auto;
- overflow-y: scroll;
- text-rendering: optimizeLegibility;
- text-size-adjust: 100%; }
- html.theme--documenter-dark .ansi span.sgr1 {
- font-weight: bolder; }
- html.theme--documenter-dark .ansi span.sgr2 {
- font-weight: lighter; }
- html.theme--documenter-dark .ansi span.sgr3 {
- font-style: italic; }
- html.theme--documenter-dark .ansi span.sgr4 {
- text-decoration: underline; }
- html.theme--documenter-dark .ansi span.sgr7 {
- color: #1f2424;
- background-color: #fff; }
- html.theme--documenter-dark .ansi span.sgr8 {
- color: transparent; }
- html.theme--documenter-dark .ansi span.sgr8 span {
- color: transparent; }
- html.theme--documenter-dark .ansi span.sgr9 {
- text-decoration: line-through; }
- html.theme--documenter-dark .ansi span.sgr30 {
- color: #242424; }
- html.theme--documenter-dark .ansi span.sgr31 {
- color: #f6705f; }
- html.theme--documenter-dark .ansi span.sgr32 {
- color: #4fb43a; }
- html.theme--documenter-dark .ansi span.sgr33 {
- color: #f4c72f; }
- html.theme--documenter-dark .ansi span.sgr34 {
- color: #7587f0; }
- html.theme--documenter-dark .ansi span.sgr35 {
- color: #bc89d3; }
- html.theme--documenter-dark .ansi span.sgr36 {
- color: #49b6ca; }
- html.theme--documenter-dark .ansi span.sgr37 {
- color: #b3bdbe; }
- html.theme--documenter-dark .ansi span.sgr40 {
- background-color: #242424; }
- html.theme--documenter-dark .ansi span.sgr41 {
- background-color: #f6705f; }
- html.theme--documenter-dark .ansi span.sgr42 {
- background-color: #4fb43a; }
- html.theme--documenter-dark .ansi span.sgr43 {
- background-color: #f4c72f; }
- html.theme--documenter-dark .ansi span.sgr44 {
- background-color: #7587f0; }
- html.theme--documenter-dark .ansi span.sgr45 {
- background-color: #bc89d3; }
- html.theme--documenter-dark .ansi span.sgr46 {
- background-color: #49b6ca; }
- html.theme--documenter-dark .ansi span.sgr47 {
- background-color: #b3bdbe; }
- html.theme--documenter-dark .ansi span.sgr90 {
- color: #92a0a2; }
- html.theme--documenter-dark .ansi span.sgr91 {
- color: #ff8674; }
- html.theme--documenter-dark .ansi span.sgr92 {
- color: #79d462; }
- html.theme--documenter-dark .ansi span.sgr93 {
- color: #ffe76b; }
- html.theme--documenter-dark .ansi span.sgr94 {
- color: #8a98ff; }
- html.theme--documenter-dark .ansi span.sgr95 {
- color: #d2a4e6; }
- html.theme--documenter-dark .ansi span.sgr96 {
- color: #6bc8db; }
- html.theme--documenter-dark .ansi span.sgr97 {
- color: #ecf0f1; }
- html.theme--documenter-dark .ansi span.sgr100 {
- background-color: #92a0a2; }
- html.theme--documenter-dark .ansi span.sgr101 {
- background-color: #ff8674; }
- html.theme--documenter-dark .ansi span.sgr102 {
- background-color: #79d462; }
- html.theme--documenter-dark .ansi span.sgr103 {
- background-color: #ffe76b; }
- html.theme--documenter-dark .ansi span.sgr104 {
- background-color: #8a98ff; }
- html.theme--documenter-dark .ansi span.sgr105 {
- background-color: #d2a4e6; }
- html.theme--documenter-dark .ansi span.sgr106 {
- background-color: #6bc8db; }
- html.theme--documenter-dark .ansi span.sgr107 {
- background-color: #ecf0f1; }
- html.theme--documenter-dark code.language-julia-repl > span.hljs-meta {
- color: #4fb43a;
- font-weight: bolder; }
- html.theme--documenter-dark .hljs {
- background: #2b2b2b;
- color: #f8f8f2; }
- html.theme--documenter-dark .hljs-comment,
- html.theme--documenter-dark .hljs-quote {
- color: #d4d0ab; }
- html.theme--documenter-dark .hljs-variable,
- html.theme--documenter-dark .hljs-template-variable,
- html.theme--documenter-dark .hljs-tag,
- html.theme--documenter-dark .hljs-name,
- html.theme--documenter-dark .hljs-selector-id,
- html.theme--documenter-dark .hljs-selector-class,
- html.theme--documenter-dark .hljs-regexp,
- html.theme--documenter-dark .hljs-deletion {
- color: #ffa07a; }
- html.theme--documenter-dark .hljs-number,
- html.theme--documenter-dark .hljs-built_in,
- html.theme--documenter-dark .hljs-literal,
- html.theme--documenter-dark .hljs-type,
- html.theme--documenter-dark .hljs-params,
- html.theme--documenter-dark .hljs-meta,
- html.theme--documenter-dark .hljs-link {
- color: #f5ab35; }
- html.theme--documenter-dark .hljs-attribute {
- color: #ffd700; }
- html.theme--documenter-dark .hljs-string,
- html.theme--documenter-dark .hljs-symbol,
- html.theme--documenter-dark .hljs-bullet,
- html.theme--documenter-dark .hljs-addition {
- color: #abe338; }
- html.theme--documenter-dark .hljs-title,
- html.theme--documenter-dark .hljs-section {
- color: #00e0e0; }
- html.theme--documenter-dark .hljs-keyword,
- html.theme--documenter-dark .hljs-selector-tag {
- color: #dcc6e0; }
- html.theme--documenter-dark .hljs-emphasis {
- font-style: italic; }
- html.theme--documenter-dark .hljs-strong {
- font-weight: bold; }
- @media screen and (-ms-high-contrast: active) {
- html.theme--documenter-dark .hljs-addition,
- html.theme--documenter-dark .hljs-attribute,
- html.theme--documenter-dark .hljs-built_in,
- html.theme--documenter-dark .hljs-bullet,
- html.theme--documenter-dark .hljs-comment,
- html.theme--documenter-dark .hljs-link,
- html.theme--documenter-dark .hljs-literal,
- html.theme--documenter-dark .hljs-meta,
- html.theme--documenter-dark .hljs-number,
- html.theme--documenter-dark .hljs-params,
- html.theme--documenter-dark .hljs-string,
- html.theme--documenter-dark .hljs-symbol,
- html.theme--documenter-dark .hljs-type,
- html.theme--documenter-dark .hljs-quote {
- color: highlight; }
- html.theme--documenter-dark .hljs-keyword,
- html.theme--documenter-dark .hljs-selector-tag {
- font-weight: bold; } }
- html.theme--documenter-dark .hljs-subst {
- color: #f8f8f2; }
+*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark optgroup,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:inherit}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#1abc9c;text-decoration:none}html.theme--documenter-dark .button.is-ghost:hover,html.theme--documenter-dark .button.is-ghost.is-hovered{color:#1abc9c;text-decoration:underline}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:#ecf0f1;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:#282f2f;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#fff;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#fff}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-primary.is-light,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:hover,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-light.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e8eef5;border-color:transparent;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:active,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-light.is-active,html.theme--documenter-dark .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#dfe8f1;border-color:transparent;color:#4d7eb2}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:#1abc9c;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:hover,html.theme--documenter-dark .button.is-link.is-light.is-hovered{background-color:#e2fbf6;border-color:transparent;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:active,html.theme--documenter-dark .button.is-link.is-light.is-active{background-color:#d7f9f3;border-color:transparent;color:#15987e}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:#024c7d;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:hover,html.theme--documenter-dark .button.is-info.is-light.is-hovered{background-color:#def2fe;border-color:transparent;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:active,html.theme--documenter-dark .button.is-info.is-light.is-active{background-color:#d2edfe;border-color:transparent;color:#0e9dfb}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:#008438;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:hover,html.theme--documenter-dark .button.is-success.is-light.is-hovered{background-color:#deffec;border-color:transparent;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:active,html.theme--documenter-dark .button.is-success.is-light.is-active{background-color:#d1ffe5;border-color:transparent;color:#00eb64}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:#ad8100;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:hover,html.theme--documenter-dark .button.is-warning.is-light.is-hovered{background-color:#fff7de;border-color:transparent;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:active,html.theme--documenter-dark .button.is-warning.is-light.is-active{background-color:#fff3d1;border-color:transparent;color:#d19c00}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:hover,html.theme--documenter-dark .button.is-danger.is-light.is-hovered{background-color:#fce3e0;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:active,html.theme--documenter-dark .button.is-danger.is-light.is-active{background-color:#fcd8d5;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--documenter-dark .button.is-small:not(.is-rounded),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--documenter-dark .button.is-normal{font-size:1rem}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#5e6d6f;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:1rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1.25rem}}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--documenter-dark .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:inherit}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}html.theme--documenter-dark .content.is-normal{font-size:1rem}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--documenter-dark .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--documenter-dark .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--documenter-dark div.icon-text{display:flex}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}html.theme--documenter-dark .image.is-fullwidth,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{right:.5rem;position:absolute;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#fff}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-primary.is-light,html.theme--documenter-dark .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .notification.is-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#343c3d}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #343c3d 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#343c3d;background-image:linear-gradient(to right, #fff 30%, #343c3d 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-ms-fill{animation-name:none}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#fff}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table td.is-vcentered,html.theme--documenter-dark .table th.is-vcentered{vertical-align:middle}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#fff}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-primary.is-light:not(body),html.theme--documenter-dark .content kbd.is-primary.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-link.is-light:not(body),html.theme--documenter-dark .content kbd.is-link.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-info.is-light:not(body),html.theme--documenter-dark .content kbd.is-info.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-success.is-light:not(body),html.theme--documenter-dark .content kbd.is-success.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-warning.is-light:not(body),html.theme--documenter-dark .content kbd.is-warning.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-danger.is-light:not(body),html.theme--documenter-dark .content kbd.is-danger.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:1rem}html.theme--documenter-dark .title.is-7{font-size:.75rem}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:1rem}html.theme--documenter-dark .subtitle.is-7{font-size:.75rem}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#868c98}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#868c98}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#868c98}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#868c98}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 0.0625em 0.125em rgba(10,10,10,0.05);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.75rem}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:40em;min-height:8em}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox,html.theme--documenter-dark .radio input[disabled],html.theme--documenter-dark .checkbox input[disabled]{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.5em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.75rem}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff !important;opacity:0.5}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#fff}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}html.theme--documenter-dark .file.is-normal{font-size:1rem}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#232829;color:#f2f2f2}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#282f2f;color:#fff}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#f2f2f2;display:block;font-size:1rem;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.75rem;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#282f2f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.75rem}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#5e6d6f;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.5em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.5em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:1rem;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;border-radius:.25rem;box-shadow:#171717;color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-footer:first-child,html.theme--documenter-dark .card-content:first-child,html.theme--documenter-dark .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-footer:last-child,html.theme--documenter-dark .card-content:last-child,html.theme--documenter-dark .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #ededed}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:#171717;padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--documenter-dark .media .media .media{padding-top:.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:1rem}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:1rem}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#fff}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f1f5f9}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#4d7eb2}html.theme--documenter-dark .message.is-link{background-color:#edfdf9}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#15987e}html.theme--documenter-dark .message.is-info{background-color:#ebf7ff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#0e9dfb}html.theme--documenter-dark .message.is-success{background-color:#ebfff3}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#00eb64}html.theme--documenter-dark .message.is-warning{background-color:#fffaeb}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#d19c00}html.theme--documenter-dark .message.is-danger{background-color:#fdeeec}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#ec311d}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#fff}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:1rem;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.5em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-previous.is-disabled,html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-next.is-disabled,html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-link.is-disabled{background-color:#5e6d6f;border-color:#5e6d6f;box-shadow:none;color:#fff;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}html.theme--documenter-dark .pagination-list li{list-style:none}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{margin-bottom:0;margin-top:0}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between;margin-bottom:0;margin-top:0}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--documenter-dark .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--documenter-dark .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--documenter-dark .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--documenter-dark .panel.is-light .panel-heading{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .panel.is-light .panel-tabs a.is-active{border-bottom-color:#ecf0f1}html.theme--documenter-dark .panel.is-light .panel-block.is-active .panel-icon{color:#ecf0f1}html.theme--documenter-dark .panel.is-dark .panel-heading,html.theme--documenter-dark .content kbd.panel .panel-heading{background-color:#282f2f;color:#fff}html.theme--documenter-dark .panel.is-dark .panel-tabs a.is-active,html.theme--documenter-dark .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#282f2f}html.theme--documenter-dark .panel.is-dark .panel-block.is-active .panel-icon,html.theme--documenter-dark .content kbd.panel .panel-block.is-active .panel-icon{color:#282f2f}html.theme--documenter-dark .panel.is-primary .panel-heading,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#375a7f;color:#fff}html.theme--documenter-dark .panel.is-primary .panel-tabs a.is-active,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#375a7f}html.theme--documenter-dark .panel.is-primary .panel-block.is-active .panel-icon,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#375a7f}html.theme--documenter-dark .panel.is-link .panel-heading{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .panel.is-link .panel-tabs a.is-active{border-bottom-color:#1abc9c}html.theme--documenter-dark .panel.is-link .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark .panel.is-info .panel-heading{background-color:#024c7d;color:#fff}html.theme--documenter-dark .panel.is-info .panel-tabs a.is-active{border-bottom-color:#024c7d}html.theme--documenter-dark .panel.is-info .panel-block.is-active .panel-icon{color:#024c7d}html.theme--documenter-dark .panel.is-success .panel-heading{background-color:#008438;color:#fff}html.theme--documenter-dark .panel.is-success .panel-tabs a.is-active{border-bottom-color:#008438}html.theme--documenter-dark .panel.is-success .panel-block.is-active .panel-icon{color:#008438}html.theme--documenter-dark .panel.is-warning .panel-heading{background-color:#ad8100;color:#fff}html.theme--documenter-dark .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ad8100}html.theme--documenter-dark .panel.is-warning .panel-block.is-active .panel-icon{color:#ad8100}html.theme--documenter-dark .panel.is-danger .panel-heading{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#9e1b0d}html.theme--documenter-dark .panel.is-danger .panel-block.is-active .panel-icon{color:#9e1b0d}html.theme--documenter-dark .panel-tabs:not(:last-child),html.theme--documenter-dark .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--documenter-dark .panel-heading{background-color:#343c3d;border-radius:8px 8px 0 0;color:#f2f2f2;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none;width:unset}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none;width:unset}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none;width:unset}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none;width:unset}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none;width:unset}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none;width:unset}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none;width:unset}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.33333337%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.66666674%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.33333337%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.66666674%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.33333337%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.66666674%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.33333337%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.66666674%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{color:#ecf0f1 !important;opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#fff}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#fff}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{color:#282f2f !important;opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#375a7f !important;opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{color:#1abc9c !important;opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{color:#024c7d !important;opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{color:#008438 !important;opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{color:#ad8100 !important;opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{color:#9e1b0d !important;opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding:18rem 6rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-body{padding:3rem 3rem}}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section{padding:3rem 3rem}html.theme--documenter-dark .section.is-medium{padding:9rem 4.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 6rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:rgba(0,0,0,0.7);text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 6 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:1rem}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark details.admonition.is-details>.admonition-header{list-style:none}html.theme--documenter-dark details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--documenter-dark details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}html.theme--documenter-dark #documenter .docs-sidebar #documenter-search-query{color:#868c98;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(245,245,245,0.6);box-shadow:0 2px 0 1px rgba(245,245,245,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}html.theme--documenter-dark .search-min-width-50{min-width:50%}html.theme--documenter-dark .search-min-height-100{min-height:100%}html.theme--documenter-dark .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--documenter-dark .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--documenter-dark .search-result-link:hover,html.theme--documenter-dark .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--documenter-dark .search-result-link .property-search-result-badge,html.theme--documenter-dark .search-result-link .search-filter{transition:all 300ms}html.theme--documenter-dark .property-search-result-badge,html.theme--documenter-dark .search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}html.theme--documenter-dark .search-result-link:hover .property-search-result-badge,html.theme--documenter-dark .search-result-link:hover .search-filter,html.theme--documenter-dark .search-result-link:focus .property-search-result-badge,html.theme--documenter-dark .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--documenter-dark .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--documenter-dark .search-filter:hover,html.theme--documenter-dark .search-filter:focus{color:#333}html.theme--documenter-dark .search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}html.theme--documenter-dark .search-filter-selected:hover,html.theme--documenter-dark .search-filter-selected:focus{color:#f5f5f5}html.theme--documenter-dark .search-result-highlight{background-color:#ffdd57;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .search-result-title{width:85%;color:#f5f5f5}html.theme--documenter-dark .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}html.theme--documenter-dark .w-100{width:100%}html.theme--documenter-dark .gap-2{gap:0.5rem}html.theme--documenter-dark .gap-4{gap:1rem}html.theme--documenter-dark .gap-8{gap:2rem}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2}
diff --git a/previews/PR237/assets/themes/documenter-light.css b/previews/PR237/assets/themes/documenter-light.css
index 9595d5b8e..60a317a4c 100644
--- a/previews/PR237/assets/themes/documenter-light.css
+++ b/previews/PR237/assets/themes/documenter-light.css
@@ -1,7642 +1,4 @@
-@charset "UTF-8";
-/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */
-@keyframes spinAround {
- from {
- transform: rotate(0deg); }
- to {
- transform: rotate(359deg); } }
-
-.tabs, .pagination-previous,
-.pagination-next,
-.pagination-link,
-.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete {
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none; }
-
-.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after {
- border: 3px solid transparent;
- border-radius: 2px;
- border-right: 0;
- border-top: 0;
- content: " ";
- display: block;
- height: 0.625em;
- margin-top: -0.4375em;
- pointer-events: none;
- position: absolute;
- top: 50%;
- transform: rotate(-45deg);
- transform-origin: center;
- width: 0.625em; }
-
-.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child),
-.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) {
- margin-bottom: 1.5rem; }
-
-.modal-close, .delete {
- -moz-appearance: none;
- -webkit-appearance: none;
- background-color: rgba(10, 10, 10, 0.2);
- border: none;
- border-radius: 290486px;
- cursor: pointer;
- pointer-events: auto;
- display: inline-block;
- flex-grow: 0;
- flex-shrink: 0;
- font-size: 0;
- height: 20px;
- max-height: 20px;
- max-width: 20px;
- min-height: 20px;
- min-width: 20px;
- outline: none;
- position: relative;
- vertical-align: top;
- width: 20px; }
- .modal-close::before, .delete::before, .modal-close::after, .delete::after {
- background-color: white;
- content: "";
- display: block;
- left: 50%;
- position: absolute;
- top: 50%;
- transform: translateX(-50%) translateY(-50%) rotate(45deg);
- transform-origin: center center; }
- .modal-close::before, .delete::before {
- height: 2px;
- width: 50%; }
- .modal-close::after, .delete::after {
- height: 50%;
- width: 2px; }
- .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus {
- background-color: rgba(10, 10, 10, 0.3); }
- .modal-close:active, .delete:active {
- background-color: rgba(10, 10, 10, 0.4); }
- .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete {
- height: 16px;
- max-height: 16px;
- max-width: 16px;
- min-height: 16px;
- min-width: 16px;
- width: 16px; }
- .is-medium.modal-close, .is-medium.delete {
- height: 24px;
- max-height: 24px;
- max-width: 24px;
- min-height: 24px;
- min-width: 24px;
- width: 24px; }
- .is-large.modal-close, .is-large.delete {
- height: 32px;
- max-height: 32px;
- max-width: 32px;
- min-height: 32px;
- min-width: 32px;
- width: 32px; }
-
-.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after {
- animation: spinAround 500ms infinite linear;
- border: 2px solid #dbdbdb;
- border-radius: 290486px;
- border-right-color: transparent;
- border-top-color: transparent;
- content: "";
- display: block;
- height: 1em;
- position: relative;
- width: 1em; }
-
-.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
-.image.is-square .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
-.image.is-1by1 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
-.image.is-5by4 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
-.image.is-4by3 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
-.image.is-3by2 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
-.image.is-5by3 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
-.image.is-16by9 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
-.image.is-2by1 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
-.image.is-3by1 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
-.image.is-4by5 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
-.image.is-3by4 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
-.image.is-2by3 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
-.image.is-3by5 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
-.image.is-9by16 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
-.image.is-1by2 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
-.image.is-1by3 .has-ratio,
-#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay {
- bottom: 0;
- left: 0;
- position: absolute;
- right: 0;
- top: 0; }
-
-.pagination-previous,
-.pagination-next,
-.pagination-link,
-.pagination-ellipsis, .file-cta,
-.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button {
- -moz-appearance: none;
- -webkit-appearance: none;
- align-items: center;
- border: 1px solid transparent;
- border-radius: 4px;
- box-shadow: none;
- display: inline-flex;
- font-size: 1rem;
- height: 2.25em;
- justify-content: flex-start;
- line-height: 1.5;
- padding-bottom: calc(0.375em - 1px);
- padding-left: calc(0.625em - 1px);
- padding-right: calc(0.625em - 1px);
- padding-top: calc(0.375em - 1px);
- position: relative;
- vertical-align: top; }
- .pagination-previous:focus,
- .pagination-next:focus,
- .pagination-link:focus,
- .pagination-ellipsis:focus, .file-cta:focus,
- .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous,
- .is-focused.pagination-next,
- .is-focused.pagination-link,
- .is-focused.pagination-ellipsis, .is-focused.file-cta,
- .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active,
- .pagination-next:active,
- .pagination-link:active,
- .pagination-ellipsis:active, .file-cta:active,
- .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous,
- .is-active.pagination-next,
- .is-active.pagination-link,
- .is-active.pagination-ellipsis, .is-active.file-cta,
- .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button {
- outline: none; }
- .pagination-previous[disabled],
- .pagination-next[disabled],
- .pagination-link[disabled],
- .pagination-ellipsis[disabled], .file-cta[disabled],
- .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous,
- fieldset[disabled] .pagination-next,
- fieldset[disabled] .pagination-link,
- fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta,
- fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button {
- cursor: not-allowed; }
-
-/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */
-html,
-body,
-p,
-ol,
-ul,
-li,
-dl,
-dt,
-dd,
-blockquote,
-figure,
-fieldset,
-legend,
-textarea,
-pre,
-iframe,
-hr,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- margin: 0;
- padding: 0; }
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- font-size: 100%;
- font-weight: normal; }
-
-ul {
- list-style: none; }
-
-button,
-input,
-select,
-textarea {
- margin: 0; }
-
-html {
- box-sizing: border-box; }
-
-*, *::before, *::after {
- box-sizing: inherit; }
-
-img,
-embed,
-iframe,
-object,
-video {
- height: auto;
- max-width: 100%; }
-
-audio {
- max-width: 100%; }
-
-iframe {
- border: 0; }
-
-table {
- border-collapse: collapse;
- border-spacing: 0; }
-
-td,
-th {
- padding: 0; }
- td:not([align]),
- th:not([align]) {
- text-align: left; }
-
-html {
- background-color: white;
- font-size: 16px;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
- min-width: 300px;
- overflow-x: auto;
- overflow-y: scroll;
- text-rendering: optimizeLegibility;
- text-size-adjust: 100%; }
-
-article,
-aside,
-figure,
-footer,
-header,
-hgroup,
-section {
- display: block; }
-
-body,
-button,
-input,
-select,
-textarea {
- font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; }
-
-code,
-pre {
- -moz-osx-font-smoothing: auto;
- -webkit-font-smoothing: auto;
- font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; }
-
-body {
- color: #222222;
- font-size: 1em;
- font-weight: 400;
- line-height: 1.5; }
-
-a {
- color: #2e63b8;
- cursor: pointer;
- text-decoration: none; }
- a strong {
- color: currentColor; }
- a:hover {
- color: #363636; }
-
-code {
- background-color: rgba(0, 0, 0, 0.05);
- color: #000000;
- font-size: 0.875em;
- font-weight: normal;
- padding: 0.1em; }
-
-hr {
- background-color: whitesmoke;
- border: none;
- display: block;
- height: 2px;
- margin: 1.5rem 0; }
-
-img {
- height: auto;
- max-width: 100%; }
-
-input[type="checkbox"],
-input[type="radio"] {
- vertical-align: baseline; }
-
-small {
- font-size: 0.875em; }
-
-span {
- font-style: inherit;
- font-weight: inherit; }
-
-strong {
- color: #222222;
- font-weight: 700; }
-
-fieldset {
- border: none; }
-
-pre {
- -webkit-overflow-scrolling: touch;
- background-color: whitesmoke;
- color: #222222;
- font-size: 0.875em;
- overflow-x: auto;
- padding: 1.25rem 1.5rem;
- white-space: pre;
- word-wrap: normal; }
- pre code {
- background-color: transparent;
- color: currentColor;
- font-size: 1em;
- padding: 0; }
-
-table td,
-table th {
- vertical-align: top; }
- table td:not([align]),
- table th:not([align]) {
- text-align: left; }
-
-table th {
- color: #222222; }
-
-.is-clearfix::after {
- clear: both;
- content: " ";
- display: table; }
-
-.is-pulled-left {
- float: left !important; }
-
-.is-pulled-right {
- float: right !important; }
-
-.is-clipped {
- overflow: hidden !important; }
-
-.is-size-1 {
- font-size: 3rem !important; }
-
-.is-size-2 {
- font-size: 2.5rem !important; }
-
-.is-size-3 {
- font-size: 2rem !important; }
-
-.is-size-4 {
- font-size: 1.5rem !important; }
-
-.is-size-5 {
- font-size: 1.25rem !important; }
-
-.is-size-6 {
- font-size: 1rem !important; }
-
-.is-size-7, .docstring > section > a.docs-sourcelink {
- font-size: 0.75rem !important; }
-
-@media screen and (max-width: 768px) {
- .is-size-1-mobile {
- font-size: 3rem !important; }
- .is-size-2-mobile {
- font-size: 2.5rem !important; }
- .is-size-3-mobile {
- font-size: 2rem !important; }
- .is-size-4-mobile {
- font-size: 1.5rem !important; }
- .is-size-5-mobile {
- font-size: 1.25rem !important; }
- .is-size-6-mobile {
- font-size: 1rem !important; }
- .is-size-7-mobile {
- font-size: 0.75rem !important; } }
-
-@media screen and (min-width: 769px), print {
- .is-size-1-tablet {
- font-size: 3rem !important; }
- .is-size-2-tablet {
- font-size: 2.5rem !important; }
- .is-size-3-tablet {
- font-size: 2rem !important; }
- .is-size-4-tablet {
- font-size: 1.5rem !important; }
- .is-size-5-tablet {
- font-size: 1.25rem !important; }
- .is-size-6-tablet {
- font-size: 1rem !important; }
- .is-size-7-tablet {
- font-size: 0.75rem !important; } }
-
-@media screen and (max-width: 1055px) {
- .is-size-1-touch {
- font-size: 3rem !important; }
- .is-size-2-touch {
- font-size: 2.5rem !important; }
- .is-size-3-touch {
- font-size: 2rem !important; }
- .is-size-4-touch {
- font-size: 1.5rem !important; }
- .is-size-5-touch {
- font-size: 1.25rem !important; }
- .is-size-6-touch {
- font-size: 1rem !important; }
- .is-size-7-touch {
- font-size: 0.75rem !important; } }
-
-@media screen and (min-width: 1056px) {
- .is-size-1-desktop {
- font-size: 3rem !important; }
- .is-size-2-desktop {
- font-size: 2.5rem !important; }
- .is-size-3-desktop {
- font-size: 2rem !important; }
- .is-size-4-desktop {
- font-size: 1.5rem !important; }
- .is-size-5-desktop {
- font-size: 1.25rem !important; }
- .is-size-6-desktop {
- font-size: 1rem !important; }
- .is-size-7-desktop {
- font-size: 0.75rem !important; } }
-
-@media screen and (min-width: 1216px) {
- .is-size-1-widescreen {
- font-size: 3rem !important; }
- .is-size-2-widescreen {
- font-size: 2.5rem !important; }
- .is-size-3-widescreen {
- font-size: 2rem !important; }
- .is-size-4-widescreen {
- font-size: 1.5rem !important; }
- .is-size-5-widescreen {
- font-size: 1.25rem !important; }
- .is-size-6-widescreen {
- font-size: 1rem !important; }
- .is-size-7-widescreen {
- font-size: 0.75rem !important; } }
-
-@media screen and (min-width: 1408px) {
- .is-size-1-fullhd {
- font-size: 3rem !important; }
- .is-size-2-fullhd {
- font-size: 2.5rem !important; }
- .is-size-3-fullhd {
- font-size: 2rem !important; }
- .is-size-4-fullhd {
- font-size: 1.5rem !important; }
- .is-size-5-fullhd {
- font-size: 1.25rem !important; }
- .is-size-6-fullhd {
- font-size: 1rem !important; }
- .is-size-7-fullhd {
- font-size: 0.75rem !important; } }
-
-.has-text-centered {
- text-align: center !important; }
-
-.has-text-justified {
- text-align: justify !important; }
-
-.has-text-left {
- text-align: left !important; }
-
-.has-text-right {
- text-align: right !important; }
-
-@media screen and (max-width: 768px) {
- .has-text-centered-mobile {
- text-align: center !important; } }
-
-@media screen and (min-width: 769px), print {
- .has-text-centered-tablet {
- text-align: center !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .has-text-centered-tablet-only {
- text-align: center !important; } }
-
-@media screen and (max-width: 1055px) {
- .has-text-centered-touch {
- text-align: center !important; } }
-
-@media screen and (min-width: 1056px) {
- .has-text-centered-desktop {
- text-align: center !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .has-text-centered-desktop-only {
- text-align: center !important; } }
-
-@media screen and (min-width: 1216px) {
- .has-text-centered-widescreen {
- text-align: center !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .has-text-centered-widescreen-only {
- text-align: center !important; } }
-
-@media screen and (min-width: 1408px) {
- .has-text-centered-fullhd {
- text-align: center !important; } }
-
-@media screen and (max-width: 768px) {
- .has-text-justified-mobile {
- text-align: justify !important; } }
-
-@media screen and (min-width: 769px), print {
- .has-text-justified-tablet {
- text-align: justify !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .has-text-justified-tablet-only {
- text-align: justify !important; } }
-
-@media screen and (max-width: 1055px) {
- .has-text-justified-touch {
- text-align: justify !important; } }
-
-@media screen and (min-width: 1056px) {
- .has-text-justified-desktop {
- text-align: justify !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .has-text-justified-desktop-only {
- text-align: justify !important; } }
-
-@media screen and (min-width: 1216px) {
- .has-text-justified-widescreen {
- text-align: justify !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .has-text-justified-widescreen-only {
- text-align: justify !important; } }
-
-@media screen and (min-width: 1408px) {
- .has-text-justified-fullhd {
- text-align: justify !important; } }
-
-@media screen and (max-width: 768px) {
- .has-text-left-mobile {
- text-align: left !important; } }
-
-@media screen and (min-width: 769px), print {
- .has-text-left-tablet {
- text-align: left !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .has-text-left-tablet-only {
- text-align: left !important; } }
-
-@media screen and (max-width: 1055px) {
- .has-text-left-touch {
- text-align: left !important; } }
-
-@media screen and (min-width: 1056px) {
- .has-text-left-desktop {
- text-align: left !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .has-text-left-desktop-only {
- text-align: left !important; } }
-
-@media screen and (min-width: 1216px) {
- .has-text-left-widescreen {
- text-align: left !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .has-text-left-widescreen-only {
- text-align: left !important; } }
-
-@media screen and (min-width: 1408px) {
- .has-text-left-fullhd {
- text-align: left !important; } }
-
-@media screen and (max-width: 768px) {
- .has-text-right-mobile {
- text-align: right !important; } }
-
-@media screen and (min-width: 769px), print {
- .has-text-right-tablet {
- text-align: right !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .has-text-right-tablet-only {
- text-align: right !important; } }
-
-@media screen and (max-width: 1055px) {
- .has-text-right-touch {
- text-align: right !important; } }
-
-@media screen and (min-width: 1056px) {
- .has-text-right-desktop {
- text-align: right !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .has-text-right-desktop-only {
- text-align: right !important; } }
-
-@media screen and (min-width: 1216px) {
- .has-text-right-widescreen {
- text-align: right !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .has-text-right-widescreen-only {
- text-align: right !important; } }
-
-@media screen and (min-width: 1408px) {
- .has-text-right-fullhd {
- text-align: right !important; } }
-
-.is-capitalized {
- text-transform: capitalize !important; }
-
-.is-lowercase {
- text-transform: lowercase !important; }
-
-.is-uppercase {
- text-transform: uppercase !important; }
-
-.is-italic {
- font-style: italic !important; }
-
-.has-text-white {
- color: white !important; }
-
-a.has-text-white:hover, a.has-text-white:focus {
- color: #e6e6e6 !important; }
-
-.has-background-white {
- background-color: white !important; }
-
-.has-text-black {
- color: #0a0a0a !important; }
-
-a.has-text-black:hover, a.has-text-black:focus {
- color: black !important; }
-
-.has-background-black {
- background-color: #0a0a0a !important; }
-
-.has-text-light {
- color: whitesmoke !important; }
-
-a.has-text-light:hover, a.has-text-light:focus {
- color: #dbdbdb !important; }
-
-.has-background-light {
- background-color: whitesmoke !important; }
-
-.has-text-dark {
- color: #363636 !important; }
-
-a.has-text-dark:hover, a.has-text-dark:focus {
- color: #1c1c1c !important; }
-
-.has-background-dark {
- background-color: #363636 !important; }
-
-.has-text-primary {
- color: #4eb5de !important; }
-
-a.has-text-primary:hover, a.has-text-primary:focus {
- color: #27a1d2 !important; }
-
-.has-background-primary {
- background-color: #4eb5de !important; }
-
-.has-text-link {
- color: #2e63b8 !important; }
-
-a.has-text-link:hover, a.has-text-link:focus {
- color: #244d8f !important; }
-
-.has-background-link {
- background-color: #2e63b8 !important; }
-
-.has-text-info {
- color: #209cee !important; }
-
-a.has-text-info:hover, a.has-text-info:focus {
- color: #1081cb !important; }
-
-.has-background-info {
- background-color: #209cee !important; }
-
-.has-text-success {
- color: #22c35b !important; }
-
-a.has-text-success:hover, a.has-text-success:focus {
- color: #1a9847 !important; }
-
-.has-background-success {
- background-color: #22c35b !important; }
-
-.has-text-warning {
- color: #ffdd57 !important; }
-
-a.has-text-warning:hover, a.has-text-warning:focus {
- color: #ffd324 !important; }
-
-.has-background-warning {
- background-color: #ffdd57 !important; }
-
-.has-text-danger {
- color: #da0b00 !important; }
-
-a.has-text-danger:hover, a.has-text-danger:focus {
- color: #a70800 !important; }
-
-.has-background-danger {
- background-color: #da0b00 !important; }
-
-.has-text-black-bis {
- color: #121212 !important; }
-
-.has-background-black-bis {
- background-color: #121212 !important; }
-
-.has-text-black-ter {
- color: #242424 !important; }
-
-.has-background-black-ter {
- background-color: #242424 !important; }
-
-.has-text-grey-darker {
- color: #363636 !important; }
-
-.has-background-grey-darker {
- background-color: #363636 !important; }
-
-.has-text-grey-dark {
- color: #4a4a4a !important; }
-
-.has-background-grey-dark {
- background-color: #4a4a4a !important; }
-
-.has-text-grey {
- color: #6b6b6b !important; }
-
-.has-background-grey {
- background-color: #6b6b6b !important; }
-
-.has-text-grey-light {
- color: #b5b5b5 !important; }
-
-.has-background-grey-light {
- background-color: #b5b5b5 !important; }
-
-.has-text-grey-lighter {
- color: #dbdbdb !important; }
-
-.has-background-grey-lighter {
- background-color: #dbdbdb !important; }
-
-.has-text-white-ter {
- color: whitesmoke !important; }
-
-.has-background-white-ter {
- background-color: whitesmoke !important; }
-
-.has-text-white-bis {
- color: #fafafa !important; }
-
-.has-background-white-bis {
- background-color: #fafafa !important; }
-
-.has-text-weight-light {
- font-weight: 300 !important; }
-
-.has-text-weight-normal {
- font-weight: 400 !important; }
-
-.has-text-weight-medium {
- font-weight: 500 !important; }
-
-.has-text-weight-semibold {
- font-weight: 600 !important; }
-
-.has-text-weight-bold {
- font-weight: 700 !important; }
-
-.is-family-primary {
- font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
-
-.is-family-secondary {
- font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
-
-.is-family-sans-serif {
- font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; }
-
-.is-family-monospace {
- font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
-
-.is-family-code {
- font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; }
-
-.is-block {
- display: block !important; }
-
-@media screen and (max-width: 768px) {
- .is-block-mobile {
- display: block !important; } }
-
-@media screen and (min-width: 769px), print {
- .is-block-tablet {
- display: block !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .is-block-tablet-only {
- display: block !important; } }
-
-@media screen and (max-width: 1055px) {
- .is-block-touch {
- display: block !important; } }
-
-@media screen and (min-width: 1056px) {
- .is-block-desktop {
- display: block !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .is-block-desktop-only {
- display: block !important; } }
-
-@media screen and (min-width: 1216px) {
- .is-block-widescreen {
- display: block !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .is-block-widescreen-only {
- display: block !important; } }
-
-@media screen and (min-width: 1408px) {
- .is-block-fullhd {
- display: block !important; } }
-
-.is-flex {
- display: flex !important; }
-
-@media screen and (max-width: 768px) {
- .is-flex-mobile {
- display: flex !important; } }
-
-@media screen and (min-width: 769px), print {
- .is-flex-tablet {
- display: flex !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .is-flex-tablet-only {
- display: flex !important; } }
-
-@media screen and (max-width: 1055px) {
- .is-flex-touch {
- display: flex !important; } }
-
-@media screen and (min-width: 1056px) {
- .is-flex-desktop {
- display: flex !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .is-flex-desktop-only {
- display: flex !important; } }
-
-@media screen and (min-width: 1216px) {
- .is-flex-widescreen {
- display: flex !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .is-flex-widescreen-only {
- display: flex !important; } }
-
-@media screen and (min-width: 1408px) {
- .is-flex-fullhd {
- display: flex !important; } }
-
-.is-inline {
- display: inline !important; }
-
-@media screen and (max-width: 768px) {
- .is-inline-mobile {
- display: inline !important; } }
-
-@media screen and (min-width: 769px), print {
- .is-inline-tablet {
- display: inline !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .is-inline-tablet-only {
- display: inline !important; } }
-
-@media screen and (max-width: 1055px) {
- .is-inline-touch {
- display: inline !important; } }
-
-@media screen and (min-width: 1056px) {
- .is-inline-desktop {
- display: inline !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .is-inline-desktop-only {
- display: inline !important; } }
-
-@media screen and (min-width: 1216px) {
- .is-inline-widescreen {
- display: inline !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .is-inline-widescreen-only {
- display: inline !important; } }
-
-@media screen and (min-width: 1408px) {
- .is-inline-fullhd {
- display: inline !important; } }
-
-.is-inline-block {
- display: inline-block !important; }
-
-@media screen and (max-width: 768px) {
- .is-inline-block-mobile {
- display: inline-block !important; } }
-
-@media screen and (min-width: 769px), print {
- .is-inline-block-tablet {
- display: inline-block !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .is-inline-block-tablet-only {
- display: inline-block !important; } }
-
-@media screen and (max-width: 1055px) {
- .is-inline-block-touch {
- display: inline-block !important; } }
-
-@media screen and (min-width: 1056px) {
- .is-inline-block-desktop {
- display: inline-block !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .is-inline-block-desktop-only {
- display: inline-block !important; } }
-
-@media screen and (min-width: 1216px) {
- .is-inline-block-widescreen {
- display: inline-block !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .is-inline-block-widescreen-only {
- display: inline-block !important; } }
-
-@media screen and (min-width: 1408px) {
- .is-inline-block-fullhd {
- display: inline-block !important; } }
-
-.is-inline-flex {
- display: inline-flex !important; }
-
-@media screen and (max-width: 768px) {
- .is-inline-flex-mobile {
- display: inline-flex !important; } }
-
-@media screen and (min-width: 769px), print {
- .is-inline-flex-tablet {
- display: inline-flex !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .is-inline-flex-tablet-only {
- display: inline-flex !important; } }
-
-@media screen and (max-width: 1055px) {
- .is-inline-flex-touch {
- display: inline-flex !important; } }
-
-@media screen and (min-width: 1056px) {
- .is-inline-flex-desktop {
- display: inline-flex !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .is-inline-flex-desktop-only {
- display: inline-flex !important; } }
-
-@media screen and (min-width: 1216px) {
- .is-inline-flex-widescreen {
- display: inline-flex !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .is-inline-flex-widescreen-only {
- display: inline-flex !important; } }
-
-@media screen and (min-width: 1408px) {
- .is-inline-flex-fullhd {
- display: inline-flex !important; } }
-
-.is-hidden {
- display: none !important; }
-
-.is-sr-only {
- border: none !important;
- clip: rect(0, 0, 0, 0) !important;
- height: 0.01em !important;
- overflow: hidden !important;
- padding: 0 !important;
- position: absolute !important;
- white-space: nowrap !important;
- width: 0.01em !important; }
-
-@media screen and (max-width: 768px) {
- .is-hidden-mobile {
- display: none !important; } }
-
-@media screen and (min-width: 769px), print {
- .is-hidden-tablet {
- display: none !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .is-hidden-tablet-only {
- display: none !important; } }
-
-@media screen and (max-width: 1055px) {
- .is-hidden-touch {
- display: none !important; } }
-
-@media screen and (min-width: 1056px) {
- .is-hidden-desktop {
- display: none !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .is-hidden-desktop-only {
- display: none !important; } }
-
-@media screen and (min-width: 1216px) {
- .is-hidden-widescreen {
- display: none !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .is-hidden-widescreen-only {
- display: none !important; } }
-
-@media screen and (min-width: 1408px) {
- .is-hidden-fullhd {
- display: none !important; } }
-
-.is-invisible {
- visibility: hidden !important; }
-
-@media screen and (max-width: 768px) {
- .is-invisible-mobile {
- visibility: hidden !important; } }
-
-@media screen and (min-width: 769px), print {
- .is-invisible-tablet {
- visibility: hidden !important; } }
-
-@media screen and (min-width: 769px) and (max-width: 1055px) {
- .is-invisible-tablet-only {
- visibility: hidden !important; } }
-
-@media screen and (max-width: 1055px) {
- .is-invisible-touch {
- visibility: hidden !important; } }
-
-@media screen and (min-width: 1056px) {
- .is-invisible-desktop {
- visibility: hidden !important; } }
-
-@media screen and (min-width: 1056px) and (max-width: 1215px) {
- .is-invisible-desktop-only {
- visibility: hidden !important; } }
-
-@media screen and (min-width: 1216px) {
- .is-invisible-widescreen {
- visibility: hidden !important; } }
-
-@media screen and (min-width: 1216px) and (max-width: 1407px) {
- .is-invisible-widescreen-only {
- visibility: hidden !important; } }
-
-@media screen and (min-width: 1408px) {
- .is-invisible-fullhd {
- visibility: hidden !important; } }
-
-.is-marginless {
- margin: 0 !important; }
-
-.is-paddingless {
- padding: 0 !important; }
-
-.is-radiusless {
- border-radius: 0 !important; }
-
-.is-shadowless {
- box-shadow: none !important; }
-
-.is-relative {
- position: relative !important; }
-
-.box {
- background-color: white;
- border-radius: 6px;
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
- color: #222222;
- display: block;
- padding: 1.25rem; }
-
-a.box:hover, a.box:focus {
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; }
-
-a.box:active {
- box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; }
-
-.button {
- background-color: white;
- border-color: #dbdbdb;
- border-width: 1px;
- color: #363636;
- cursor: pointer;
- justify-content: center;
- padding-bottom: calc(0.375em - 1px);
- padding-left: 0.75em;
- padding-right: 0.75em;
- padding-top: calc(0.375em - 1px);
- text-align: center;
- white-space: nowrap; }
- .button strong {
- color: inherit; }
- .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large {
- height: 1.5em;
- width: 1.5em; }
- .button .icon:first-child:not(:last-child) {
- margin-left: calc(-0.375em - 1px);
- margin-right: 0.1875em; }
- .button .icon:last-child:not(:first-child) {
- margin-left: 0.1875em;
- margin-right: calc(-0.375em - 1px); }
- .button .icon:first-child:last-child {
- margin-left: calc(-0.375em - 1px);
- margin-right: calc(-0.375em - 1px); }
- .button:hover, .button.is-hovered {
- border-color: #b5b5b5;
- color: #363636; }
- .button:focus, .button.is-focused {
- border-color: #3c5dcd;
- color: #363636; }
- .button:focus:not(:active), .button.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
- .button:active, .button.is-active {
- border-color: #4a4a4a;
- color: #363636; }
- .button.is-text {
- background-color: transparent;
- border-color: transparent;
- color: #222222;
- text-decoration: underline; }
- .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused {
- background-color: whitesmoke;
- color: #222222; }
- .button.is-text:active, .button.is-text.is-active {
- background-color: #e8e8e8;
- color: #222222; }
- .button.is-text[disabled], fieldset[disabled] .button.is-text {
- background-color: transparent;
- border-color: transparent;
- box-shadow: none; }
- .button.is-white {
- background-color: white;
- border-color: transparent;
- color: #0a0a0a; }
- .button.is-white:hover, .button.is-white.is-hovered {
- background-color: #f9f9f9;
- border-color: transparent;
- color: #0a0a0a; }
- .button.is-white:focus, .button.is-white.is-focused {
- border-color: transparent;
- color: #0a0a0a; }
- .button.is-white:focus:not(:active), .button.is-white.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
- .button.is-white:active, .button.is-white.is-active {
- background-color: #f2f2f2;
- border-color: transparent;
- color: #0a0a0a; }
- .button.is-white[disabled], fieldset[disabled] .button.is-white {
- background-color: white;
- border-color: transparent;
- box-shadow: none; }
- .button.is-white.is-inverted {
- background-color: #0a0a0a;
- color: white; }
- .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered {
- background-color: black; }
- .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted {
- background-color: #0a0a0a;
- border-color: transparent;
- box-shadow: none;
- color: white; }
- .button.is-white.is-loading::after {
- border-color: transparent transparent #0a0a0a #0a0a0a !important; }
- .button.is-white.is-outlined {
- background-color: transparent;
- border-color: white;
- color: white; }
- .button.is-white.is-outlined:hover, .button.is-white.is-outlined.is-hovered, .button.is-white.is-outlined:focus, .button.is-white.is-outlined.is-focused {
- background-color: white;
- border-color: white;
- color: #0a0a0a; }
- .button.is-white.is-outlined.is-loading::after {
- border-color: transparent transparent white white !important; }
- .button.is-white.is-outlined.is-loading:hover::after, .button.is-white.is-outlined.is-loading.is-hovered::after, .button.is-white.is-outlined.is-loading:focus::after, .button.is-white.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #0a0a0a #0a0a0a !important; }
- .button.is-white.is-outlined[disabled], fieldset[disabled] .button.is-white.is-outlined {
- background-color: transparent;
- border-color: white;
- box-shadow: none;
- color: white; }
- .button.is-white.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #0a0a0a;
- color: #0a0a0a; }
- .button.is-white.is-inverted.is-outlined:hover, .button.is-white.is-inverted.is-outlined.is-hovered, .button.is-white.is-inverted.is-outlined:focus, .button.is-white.is-inverted.is-outlined.is-focused {
- background-color: #0a0a0a;
- color: white; }
- .button.is-white.is-inverted.is-outlined.is-loading:hover::after, .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-white.is-inverted.is-outlined.is-loading:focus::after, .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent white white !important; }
- .button.is-white.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-white.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #0a0a0a;
- box-shadow: none;
- color: #0a0a0a; }
- .button.is-black {
- background-color: #0a0a0a;
- border-color: transparent;
- color: white; }
- .button.is-black:hover, .button.is-black.is-hovered {
- background-color: #040404;
- border-color: transparent;
- color: white; }
- .button.is-black:focus, .button.is-black.is-focused {
- border-color: transparent;
- color: white; }
- .button.is-black:focus:not(:active), .button.is-black.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
- .button.is-black:active, .button.is-black.is-active {
- background-color: black;
- border-color: transparent;
- color: white; }
- .button.is-black[disabled], fieldset[disabled] .button.is-black {
- background-color: #0a0a0a;
- border-color: transparent;
- box-shadow: none; }
- .button.is-black.is-inverted {
- background-color: white;
- color: #0a0a0a; }
- .button.is-black.is-inverted:hover, .button.is-black.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- .button.is-black.is-inverted[disabled], fieldset[disabled] .button.is-black.is-inverted {
- background-color: white;
- border-color: transparent;
- box-shadow: none;
- color: #0a0a0a; }
- .button.is-black.is-loading::after {
- border-color: transparent transparent white white !important; }
- .button.is-black.is-outlined {
- background-color: transparent;
- border-color: #0a0a0a;
- color: #0a0a0a; }
- .button.is-black.is-outlined:hover, .button.is-black.is-outlined.is-hovered, .button.is-black.is-outlined:focus, .button.is-black.is-outlined.is-focused {
- background-color: #0a0a0a;
- border-color: #0a0a0a;
- color: white; }
- .button.is-black.is-outlined.is-loading::after {
- border-color: transparent transparent #0a0a0a #0a0a0a !important; }
- .button.is-black.is-outlined.is-loading:hover::after, .button.is-black.is-outlined.is-loading.is-hovered::after, .button.is-black.is-outlined.is-loading:focus::after, .button.is-black.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent white white !important; }
- .button.is-black.is-outlined[disabled], fieldset[disabled] .button.is-black.is-outlined {
- background-color: transparent;
- border-color: #0a0a0a;
- box-shadow: none;
- color: #0a0a0a; }
- .button.is-black.is-inverted.is-outlined {
- background-color: transparent;
- border-color: white;
- color: white; }
- .button.is-black.is-inverted.is-outlined:hover, .button.is-black.is-inverted.is-outlined.is-hovered, .button.is-black.is-inverted.is-outlined:focus, .button.is-black.is-inverted.is-outlined.is-focused {
- background-color: white;
- color: #0a0a0a; }
- .button.is-black.is-inverted.is-outlined.is-loading:hover::after, .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-black.is-inverted.is-outlined.is-loading:focus::after, .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #0a0a0a #0a0a0a !important; }
- .button.is-black.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-black.is-inverted.is-outlined {
- background-color: transparent;
- border-color: white;
- box-shadow: none;
- color: white; }
- .button.is-light {
- background-color: whitesmoke;
- border-color: transparent;
- color: #363636; }
- .button.is-light:hover, .button.is-light.is-hovered {
- background-color: #eeeeee;
- border-color: transparent;
- color: #363636; }
- .button.is-light:focus, .button.is-light.is-focused {
- border-color: transparent;
- color: #363636; }
- .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
- .button.is-light:active, .button.is-light.is-active {
- background-color: #e8e8e8;
- border-color: transparent;
- color: #363636; }
- .button.is-light[disabled], fieldset[disabled] .button.is-light {
- background-color: whitesmoke;
- border-color: transparent;
- box-shadow: none; }
- .button.is-light.is-inverted {
- background-color: #363636;
- color: whitesmoke; }
- .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered {
- background-color: #292929; }
- .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted {
- background-color: #363636;
- border-color: transparent;
- box-shadow: none;
- color: whitesmoke; }
- .button.is-light.is-loading::after {
- border-color: transparent transparent #363636 #363636 !important; }
- .button.is-light.is-outlined {
- background-color: transparent;
- border-color: whitesmoke;
- color: whitesmoke; }
- .button.is-light.is-outlined:hover, .button.is-light.is-outlined.is-hovered, .button.is-light.is-outlined:focus, .button.is-light.is-outlined.is-focused {
- background-color: whitesmoke;
- border-color: whitesmoke;
- color: #363636; }
- .button.is-light.is-outlined.is-loading::after {
- border-color: transparent transparent whitesmoke whitesmoke !important; }
- .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #363636 #363636 !important; }
- .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined {
- background-color: transparent;
- border-color: whitesmoke;
- box-shadow: none;
- color: whitesmoke; }
- .button.is-light.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #363636;
- color: #363636; }
- .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused {
- background-color: #363636;
- color: whitesmoke; }
- .button.is-light.is-inverted.is-outlined.is-loading:hover::after, .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-light.is-inverted.is-outlined.is-loading:focus::after, .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent whitesmoke whitesmoke !important; }
- .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #363636;
- box-shadow: none;
- color: #363636; }
- .button.is-dark, .content kbd.button {
- background-color: #363636;
- border-color: transparent;
- color: whitesmoke; }
- .button.is-dark:hover, .content kbd.button:hover, .button.is-dark.is-hovered, .content kbd.button.is-hovered {
- background-color: #2f2f2f;
- border-color: transparent;
- color: whitesmoke; }
- .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused {
- border-color: transparent;
- color: whitesmoke; }
- .button.is-dark:focus:not(:active), .content kbd.button:focus:not(:active), .button.is-dark.is-focused:not(:active), .content kbd.button.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
- .button.is-dark:active, .content kbd.button:active, .button.is-dark.is-active, .content kbd.button.is-active {
- background-color: #292929;
- border-color: transparent;
- color: whitesmoke; }
- .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button {
- background-color: #363636;
- border-color: transparent;
- box-shadow: none; }
- .button.is-dark.is-inverted, .content kbd.button.is-inverted {
- background-color: whitesmoke;
- color: #363636; }
- .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered {
- background-color: #e8e8e8; }
- .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted {
- background-color: whitesmoke;
- border-color: transparent;
- box-shadow: none;
- color: #363636; }
- .button.is-dark.is-loading::after, .content kbd.button.is-loading::after {
- border-color: transparent transparent whitesmoke whitesmoke !important; }
- .button.is-dark.is-outlined, .content kbd.button.is-outlined {
- background-color: transparent;
- border-color: #363636;
- color: #363636; }
- .button.is-dark.is-outlined:hover, .content kbd.button.is-outlined:hover, .button.is-dark.is-outlined.is-hovered, .content kbd.button.is-outlined.is-hovered, .button.is-dark.is-outlined:focus, .content kbd.button.is-outlined:focus, .button.is-dark.is-outlined.is-focused, .content kbd.button.is-outlined.is-focused {
- background-color: #363636;
- border-color: #363636;
- color: whitesmoke; }
- .button.is-dark.is-outlined.is-loading::after, .content kbd.button.is-outlined.is-loading::after {
- border-color: transparent transparent #363636 #363636 !important; }
- .button.is-dark.is-outlined.is-loading:hover::after, .content kbd.button.is-outlined.is-loading:hover::after, .button.is-dark.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-outlined.is-loading:focus::after, .content kbd.button.is-outlined.is-loading:focus::after, .button.is-dark.is-outlined.is-loading.is-focused::after, .content kbd.button.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent whitesmoke whitesmoke !important; }
- .button.is-dark.is-outlined[disabled], .content kbd.button.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-outlined, fieldset[disabled] .content kbd.button.is-outlined, .content fieldset[disabled] kbd.button.is-outlined {
- background-color: transparent;
- border-color: #363636;
- box-shadow: none;
- color: #363636; }
- .button.is-dark.is-inverted.is-outlined, .content kbd.button.is-inverted.is-outlined {
- background-color: transparent;
- border-color: whitesmoke;
- color: whitesmoke; }
- .button.is-dark.is-inverted.is-outlined:hover, .content kbd.button.is-inverted.is-outlined:hover, .button.is-dark.is-inverted.is-outlined.is-hovered, .content kbd.button.is-inverted.is-outlined.is-hovered, .button.is-dark.is-inverted.is-outlined:focus, .content kbd.button.is-inverted.is-outlined:focus, .button.is-dark.is-inverted.is-outlined.is-focused, .content kbd.button.is-inverted.is-outlined.is-focused {
- background-color: whitesmoke;
- color: #363636; }
- .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #363636 #363636 !important; }
- .button.is-dark.is-inverted.is-outlined[disabled], .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-dark.is-inverted.is-outlined, fieldset[disabled] .content kbd.button.is-inverted.is-outlined, .content fieldset[disabled] kbd.button.is-inverted.is-outlined {
- background-color: transparent;
- border-color: whitesmoke;
- box-shadow: none;
- color: whitesmoke; }
- .button.is-primary, .docstring > section > a.button.docs-sourcelink {
- background-color: #4eb5de;
- border-color: transparent;
- color: #fff; }
- .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink {
- background-color: #43b1dc;
- border-color: transparent;
- color: #fff; }
- .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink {
- border-color: transparent;
- color: #fff; }
- .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
- .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink {
- background-color: #39acda;
- border-color: transparent;
- color: #fff; }
- .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink {
- background-color: #4eb5de;
- border-color: transparent;
- box-shadow: none; }
- .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink {
- background-color: #fff;
- color: #4eb5de; }
- .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink {
- background-color: #f2f2f2; }
- .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #4eb5de; }
- .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink {
- background-color: transparent;
- border-color: #4eb5de;
- color: #4eb5de; }
- .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink {
- background-color: #4eb5de;
- border-color: #4eb5de;
- color: #fff; }
- .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after {
- border-color: transparent transparent #4eb5de #4eb5de !important; }
- .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink {
- background-color: transparent;
- border-color: #4eb5de;
- box-shadow: none;
- color: #4eb5de; }
- .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink {
- background-color: #fff;
- color: #4eb5de; }
- .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after {
- border-color: transparent transparent #4eb5de #4eb5de !important; }
- .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- .button.is-link {
- background-color: #2e63b8;
- border-color: transparent;
- color: #fff; }
- .button.is-link:hover, .button.is-link.is-hovered {
- background-color: #2b5eae;
- border-color: transparent;
- color: #fff; }
- .button.is-link:focus, .button.is-link.is-focused {
- border-color: transparent;
- color: #fff; }
- .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
- .button.is-link:active, .button.is-link.is-active {
- background-color: #2958a4;
- border-color: transparent;
- color: #fff; }
- .button.is-link[disabled], fieldset[disabled] .button.is-link {
- background-color: #2e63b8;
- border-color: transparent;
- box-shadow: none; }
- .button.is-link.is-inverted {
- background-color: #fff;
- color: #2e63b8; }
- .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #2e63b8; }
- .button.is-link.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-link.is-outlined {
- background-color: transparent;
- border-color: #2e63b8;
- color: #2e63b8; }
- .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused {
- background-color: #2e63b8;
- border-color: #2e63b8;
- color: #fff; }
- .button.is-link.is-outlined.is-loading::after {
- border-color: transparent transparent #2e63b8 #2e63b8 !important; }
- .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined {
- background-color: transparent;
- border-color: #2e63b8;
- box-shadow: none;
- color: #2e63b8; }
- .button.is-link.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #2e63b8; }
- .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #2e63b8 #2e63b8 !important; }
- .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- .button.is-info {
- background-color: #209cee;
- border-color: transparent;
- color: #fff; }
- .button.is-info:hover, .button.is-info.is-hovered {
- background-color: #1497ed;
- border-color: transparent;
- color: #fff; }
- .button.is-info:focus, .button.is-info.is-focused {
- border-color: transparent;
- color: #fff; }
- .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
- .button.is-info:active, .button.is-info.is-active {
- background-color: #1190e3;
- border-color: transparent;
- color: #fff; }
- .button.is-info[disabled], fieldset[disabled] .button.is-info {
- background-color: #209cee;
- border-color: transparent;
- box-shadow: none; }
- .button.is-info.is-inverted {
- background-color: #fff;
- color: #209cee; }
- .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #209cee; }
- .button.is-info.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-info.is-outlined {
- background-color: transparent;
- border-color: #209cee;
- color: #209cee; }
- .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused {
- background-color: #209cee;
- border-color: #209cee;
- color: #fff; }
- .button.is-info.is-outlined.is-loading::after {
- border-color: transparent transparent #209cee #209cee !important; }
- .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined {
- background-color: transparent;
- border-color: #209cee;
- box-shadow: none;
- color: #209cee; }
- .button.is-info.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #209cee; }
- .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #209cee #209cee !important; }
- .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- .button.is-success {
- background-color: #22c35b;
- border-color: transparent;
- color: #fff; }
- .button.is-success:hover, .button.is-success.is-hovered {
- background-color: #20b856;
- border-color: transparent;
- color: #fff; }
- .button.is-success:focus, .button.is-success.is-focused {
- border-color: transparent;
- color: #fff; }
- .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
- .button.is-success:active, .button.is-success.is-active {
- background-color: #1ead51;
- border-color: transparent;
- color: #fff; }
- .button.is-success[disabled], fieldset[disabled] .button.is-success {
- background-color: #22c35b;
- border-color: transparent;
- box-shadow: none; }
- .button.is-success.is-inverted {
- background-color: #fff;
- color: #22c35b; }
- .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #22c35b; }
- .button.is-success.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-success.is-outlined {
- background-color: transparent;
- border-color: #22c35b;
- color: #22c35b; }
- .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused {
- background-color: #22c35b;
- border-color: #22c35b;
- color: #fff; }
- .button.is-success.is-outlined.is-loading::after {
- border-color: transparent transparent #22c35b #22c35b !important; }
- .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined {
- background-color: transparent;
- border-color: #22c35b;
- box-shadow: none;
- color: #22c35b; }
- .button.is-success.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #22c35b; }
- .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #22c35b #22c35b !important; }
- .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- .button.is-warning {
- background-color: #ffdd57;
- border-color: transparent;
- color: rgba(0, 0, 0, 0.7); }
- .button.is-warning:hover, .button.is-warning.is-hovered {
- background-color: #ffda4a;
- border-color: transparent;
- color: rgba(0, 0, 0, 0.7); }
- .button.is-warning:focus, .button.is-warning.is-focused {
- border-color: transparent;
- color: rgba(0, 0, 0, 0.7); }
- .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
- .button.is-warning:active, .button.is-warning.is-active {
- background-color: #ffd83e;
- border-color: transparent;
- color: rgba(0, 0, 0, 0.7); }
- .button.is-warning[disabled], fieldset[disabled] .button.is-warning {
- background-color: #ffdd57;
- border-color: transparent;
- box-shadow: none; }
- .button.is-warning.is-inverted {
- background-color: rgba(0, 0, 0, 0.7);
- color: #ffdd57; }
- .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered {
- background-color: rgba(0, 0, 0, 0.7); }
- .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted {
- background-color: rgba(0, 0, 0, 0.7);
- border-color: transparent;
- box-shadow: none;
- color: #ffdd57; }
- .button.is-warning.is-loading::after {
- border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
- .button.is-warning.is-outlined {
- background-color: transparent;
- border-color: #ffdd57;
- color: #ffdd57; }
- .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused {
- background-color: #ffdd57;
- border-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); }
- .button.is-warning.is-outlined.is-loading::after {
- border-color: transparent transparent #ffdd57 #ffdd57 !important; }
- .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; }
- .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined {
- background-color: transparent;
- border-color: #ffdd57;
- box-shadow: none;
- color: #ffdd57; }
- .button.is-warning.is-inverted.is-outlined {
- background-color: transparent;
- border-color: rgba(0, 0, 0, 0.7);
- color: rgba(0, 0, 0, 0.7); }
- .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused {
- background-color: rgba(0, 0, 0, 0.7);
- color: #ffdd57; }
- .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #ffdd57 #ffdd57 !important; }
- .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined {
- background-color: transparent;
- border-color: rgba(0, 0, 0, 0.7);
- box-shadow: none;
- color: rgba(0, 0, 0, 0.7); }
- .button.is-danger {
- background-color: #da0b00;
- border-color: transparent;
- color: #fff; }
- .button.is-danger:hover, .button.is-danger.is-hovered {
- background-color: #cd0a00;
- border-color: transparent;
- color: #fff; }
- .button.is-danger:focus, .button.is-danger.is-focused {
- border-color: transparent;
- color: #fff; }
- .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) {
- box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
- .button.is-danger:active, .button.is-danger.is-active {
- background-color: #c10a00;
- border-color: transparent;
- color: #fff; }
- .button.is-danger[disabled], fieldset[disabled] .button.is-danger {
- background-color: #da0b00;
- border-color: transparent;
- box-shadow: none; }
- .button.is-danger.is-inverted {
- background-color: #fff;
- color: #da0b00; }
- .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered {
- background-color: #f2f2f2; }
- .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted {
- background-color: #fff;
- border-color: transparent;
- box-shadow: none;
- color: #da0b00; }
- .button.is-danger.is-loading::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-danger.is-outlined {
- background-color: transparent;
- border-color: #da0b00;
- color: #da0b00; }
- .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused {
- background-color: #da0b00;
- border-color: #da0b00;
- color: #fff; }
- .button.is-danger.is-outlined.is-loading::after {
- border-color: transparent transparent #da0b00 #da0b00 !important; }
- .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #fff #fff !important; }
- .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined {
- background-color: transparent;
- border-color: #da0b00;
- box-shadow: none;
- color: #da0b00; }
- .button.is-danger.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- color: #fff; }
- .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused {
- background-color: #fff;
- color: #da0b00; }
- .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after {
- border-color: transparent transparent #da0b00 #da0b00 !important; }
- .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined {
- background-color: transparent;
- border-color: #fff;
- box-shadow: none;
- color: #fff; }
- .button.is-small, #documenter .docs-sidebar form.docs-search > input.button {
- border-radius: 2px;
- font-size: 0.75rem; }
- .button.is-normal {
- font-size: 1rem; }
- .button.is-medium {
- font-size: 1.25rem; }
- .button.is-large {
- font-size: 1.5rem; }
- .button[disabled], fieldset[disabled] .button {
- background-color: white;
- border-color: #dbdbdb;
- box-shadow: none;
- opacity: 0.5; }
- .button.is-fullwidth {
- display: flex;
- width: 100%; }
- .button.is-loading {
- color: transparent !important;
- pointer-events: none; }
- .button.is-loading::after {
- position: absolute;
- left: calc(50% - (1em / 2));
- top: calc(50% - (1em / 2));
- position: absolute !important; }
- .button.is-static {
- background-color: whitesmoke;
- border-color: #dbdbdb;
- color: #6b6b6b;
- box-shadow: none;
- pointer-events: none; }
- .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button {
- border-radius: 290486px;
- padding-left: 1em;
- padding-right: 1em; }
-
-.buttons {
- align-items: center;
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-start; }
- .buttons .button {
- margin-bottom: 0.5rem; }
- .buttons .button:not(:last-child):not(.is-fullwidth) {
- margin-right: 0.5rem; }
- .buttons:last-child {
- margin-bottom: -0.5rem; }
- .buttons:not(:last-child) {
- margin-bottom: 1rem; }
- .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) {
- border-radius: 2px;
- font-size: 0.75rem; }
- .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) {
- font-size: 1.25rem; }
- .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) {
- font-size: 1.5rem; }
- .buttons.has-addons .button:not(:first-child) {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0; }
- .buttons.has-addons .button:not(:last-child) {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0;
- margin-right: -1px; }
- .buttons.has-addons .button:last-child {
- margin-right: 0; }
- .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered {
- z-index: 2; }
- .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected {
- z-index: 3; }
- .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover {
- z-index: 4; }
- .buttons.has-addons .button.is-expanded {
- flex-grow: 1;
- flex-shrink: 1; }
- .buttons.is-centered {
- justify-content: center; }
- .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) {
- margin-left: 0.25rem;
- margin-right: 0.25rem; }
- .buttons.is-right {
- justify-content: flex-end; }
- .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) {
- margin-left: 0.25rem;
- margin-right: 0.25rem; }
-
-.container {
- flex-grow: 1;
- margin: 0 auto;
- position: relative;
- width: auto; }
- @media screen and (min-width: 1056px) {
- .container {
- max-width: 992px; }
- .container.is-fluid {
- margin-left: 32px;
- margin-right: 32px;
- max-width: none; } }
- @media screen and (max-width: 1215px) {
- .container.is-widescreen {
- max-width: 1152px; } }
- @media screen and (max-width: 1407px) {
- .container.is-fullhd {
- max-width: 1344px; } }
- @media screen and (min-width: 1216px) {
- .container {
- max-width: 1152px; } }
- @media screen and (min-width: 1408px) {
- .container {
- max-width: 1344px; } }
-.content li + li {
- margin-top: 0.25em; }
-
-.content p:not(:last-child),
-.content dl:not(:last-child),
-.content ol:not(:last-child),
-.content ul:not(:last-child),
-.content blockquote:not(:last-child),
-.content pre:not(:last-child),
-.content table:not(:last-child) {
- margin-bottom: 1em; }
-
-.content h1,
-.content h2,
-.content h3,
-.content h4,
-.content h5,
-.content h6 {
- color: #222222;
- font-weight: 600;
- line-height: 1.125; }
-
-.content h1 {
- font-size: 2em;
- margin-bottom: 0.5em; }
- .content h1:not(:first-child) {
- margin-top: 1em; }
-
-.content h2 {
- font-size: 1.75em;
- margin-bottom: 0.5714em; }
- .content h2:not(:first-child) {
- margin-top: 1.1428em; }
-
-.content h3 {
- font-size: 1.5em;
- margin-bottom: 0.6666em; }
- .content h3:not(:first-child) {
- margin-top: 1.3333em; }
-
-.content h4 {
- font-size: 1.25em;
- margin-bottom: 0.8em; }
-
-.content h5 {
- font-size: 1.125em;
- margin-bottom: 0.8888em; }
-
-.content h6 {
- font-size: 1em;
- margin-bottom: 1em; }
-
-.content blockquote {
- background-color: whitesmoke;
- border-left: 5px solid #dbdbdb;
- padding: 1.25em 1.5em; }
-
-.content ol {
- list-style-position: outside;
- margin-left: 2em;
- margin-top: 1em; }
- .content ol:not([type]) {
- list-style-type: decimal; }
- .content ol.is-lower-alpha:not([type]) {
- list-style-type: lower-alpha; }
- .content ol.is-lower-roman:not([type]) {
- list-style-type: lower-roman; }
- .content ol.is-upper-alpha:not([type]) {
- list-style-type: upper-alpha; }
- .content ol.is-upper-roman:not([type]) {
- list-style-type: upper-roman; }
-
-.content ul {
- list-style: disc outside;
- margin-left: 2em;
- margin-top: 1em; }
- .content ul ul {
- list-style-type: circle;
- margin-top: 0.5em; }
- .content ul ul ul {
- list-style-type: square; }
-
-.content dd {
- margin-left: 2em; }
-
-.content figure {
- margin-left: 2em;
- margin-right: 2em;
- text-align: center; }
- .content figure:not(:first-child) {
- margin-top: 2em; }
- .content figure:not(:last-child) {
- margin-bottom: 2em; }
- .content figure img {
- display: inline-block; }
- .content figure figcaption {
- font-style: italic; }
-
-.content pre {
- -webkit-overflow-scrolling: touch;
- overflow-x: auto;
- padding: 0;
- white-space: pre;
- word-wrap: normal; }
-
-.content sup,
-.content sub {
- font-size: 75%; }
-
-.content table {
- width: 100%; }
- .content table td,
- .content table th {
- border: 1px solid #dbdbdb;
- border-width: 0 0 1px;
- padding: 0.5em 0.75em;
- vertical-align: top; }
- .content table th {
- color: #222222; }
- .content table th:not([align]) {
- text-align: left; }
- .content table thead td,
- .content table thead th {
- border-width: 0 0 2px;
- color: #222222; }
- .content table tfoot td,
- .content table tfoot th {
- border-width: 2px 0 0;
- color: #222222; }
- .content table tbody tr:last-child td,
- .content table tbody tr:last-child th {
- border-bottom-width: 0; }
-
-.content .tabs li + li {
- margin-top: 0; }
-
-.content.is-small, #documenter .docs-sidebar form.docs-search > input.content {
- font-size: 0.75rem; }
-
-.content.is-medium {
- font-size: 1.25rem; }
-
-.content.is-large {
- font-size: 1.5rem; }
-
-.icon {
- align-items: center;
- display: inline-flex;
- justify-content: center;
- height: 1.5rem;
- width: 1.5rem; }
- .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon {
- height: 1rem;
- width: 1rem; }
- .icon.is-medium {
- height: 2rem;
- width: 2rem; }
- .icon.is-large {
- height: 3rem;
- width: 3rem; }
-
-.image, #documenter .docs-sidebar .docs-logo > img {
- display: block;
- position: relative; }
- .image img, #documenter .docs-sidebar .docs-logo > img img {
- display: block;
- height: auto;
- width: 100%; }
- .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded {
- border-radius: 290486px; }
- .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img,
- .image.is-square .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img,
- .image.is-1by1 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img,
- .image.is-5by4 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img,
- .image.is-4by3 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img,
- .image.is-3by2 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img,
- .image.is-5by3 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img,
- .image.is-16by9 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img,
- .image.is-2by1 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img,
- .image.is-3by1 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img,
- .image.is-4by5 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img,
- .image.is-3by4 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img,
- .image.is-2by3 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img,
- .image.is-3by5 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img,
- .image.is-9by16 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img,
- .image.is-1by2 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img,
- .image.is-1by3 .has-ratio,
- #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio {
- height: 100%;
- width: 100%; }
- .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 {
- padding-top: 100%; }
- .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 {
- padding-top: 80%; }
- .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 {
- padding-top: 75%; }
- .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 {
- padding-top: 66.6666%; }
- .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 {
- padding-top: 60%; }
- .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 {
- padding-top: 56.25%; }
- .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 {
- padding-top: 50%; }
- .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 {
- padding-top: 33.3333%; }
- .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 {
- padding-top: 125%; }
- .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 {
- padding-top: 133.3333%; }
- .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 {
- padding-top: 150%; }
- .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 {
- padding-top: 166.6666%; }
- .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 {
- padding-top: 177.7777%; }
- .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 {
- padding-top: 200%; }
- .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 {
- padding-top: 300%; }
- .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 {
- height: 16px;
- width: 16px; }
- .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 {
- height: 24px;
- width: 24px; }
- .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 {
- height: 32px;
- width: 32px; }
- .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 {
- height: 48px;
- width: 48px; }
- .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 {
- height: 64px;
- width: 64px; }
- .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 {
- height: 96px;
- width: 96px; }
- .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 {
- height: 128px;
- width: 128px; }
-
-.notification {
- background-color: whitesmoke;
- border-radius: 4px;
- padding: 1.25rem 2.5rem 1.25rem 1.5rem;
- position: relative; }
- .notification a:not(.button):not(.dropdown-item) {
- color: currentColor;
- text-decoration: underline; }
- .notification strong {
- color: currentColor; }
- .notification code,
- .notification pre {
- background: white; }
- .notification pre code {
- background: transparent; }
- .notification > .delete {
- position: absolute;
- right: 0.5rem;
- top: 0.5rem; }
- .notification .title,
- .notification .subtitle,
- .notification .content {
- color: currentColor; }
- .notification.is-white {
- background-color: white;
- color: #0a0a0a; }
- .notification.is-black {
- background-color: #0a0a0a;
- color: white; }
- .notification.is-light {
- background-color: whitesmoke;
- color: #363636; }
- .notification.is-dark, .content kbd.notification {
- background-color: #363636;
- color: whitesmoke; }
- .notification.is-primary, .docstring > section > a.notification.docs-sourcelink {
- background-color: #4eb5de;
- color: #fff; }
- .notification.is-link {
- background-color: #2e63b8;
- color: #fff; }
- .notification.is-info {
- background-color: #209cee;
- color: #fff; }
- .notification.is-success {
- background-color: #22c35b;
- color: #fff; }
- .notification.is-warning {
- background-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); }
- .notification.is-danger {
- background-color: #da0b00;
- color: #fff; }
-
-.progress {
- -moz-appearance: none;
- -webkit-appearance: none;
- border: none;
- border-radius: 290486px;
- display: block;
- height: 1rem;
- overflow: hidden;
- padding: 0;
- width: 100%; }
- .progress::-webkit-progress-bar {
- background-color: #dbdbdb; }
- .progress::-webkit-progress-value {
- background-color: #222222; }
- .progress::-moz-progress-bar {
- background-color: #222222; }
- .progress::-ms-fill {
- background-color: #222222;
- border: none; }
- .progress.is-white::-webkit-progress-value {
- background-color: white; }
- .progress.is-white::-moz-progress-bar {
- background-color: white; }
- .progress.is-white::-ms-fill {
- background-color: white; }
- .progress.is-white:indeterminate {
- background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); }
- .progress.is-black::-webkit-progress-value {
- background-color: #0a0a0a; }
- .progress.is-black::-moz-progress-bar {
- background-color: #0a0a0a; }
- .progress.is-black::-ms-fill {
- background-color: #0a0a0a; }
- .progress.is-black:indeterminate {
- background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); }
- .progress.is-light::-webkit-progress-value {
- background-color: whitesmoke; }
- .progress.is-light::-moz-progress-bar {
- background-color: whitesmoke; }
- .progress.is-light::-ms-fill {
- background-color: whitesmoke; }
- .progress.is-light:indeterminate {
- background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); }
- .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value {
- background-color: #363636; }
- .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar {
- background-color: #363636; }
- .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill {
- background-color: #363636; }
- .progress.is-dark:indeterminate, .content kbd.progress:indeterminate {
- background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); }
- .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value {
- background-color: #4eb5de; }
- .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar {
- background-color: #4eb5de; }
- .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill {
- background-color: #4eb5de; }
- .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate {
- background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); }
- .progress.is-link::-webkit-progress-value {
- background-color: #2e63b8; }
- .progress.is-link::-moz-progress-bar {
- background-color: #2e63b8; }
- .progress.is-link::-ms-fill {
- background-color: #2e63b8; }
- .progress.is-link:indeterminate {
- background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); }
- .progress.is-info::-webkit-progress-value {
- background-color: #209cee; }
- .progress.is-info::-moz-progress-bar {
- background-color: #209cee; }
- .progress.is-info::-ms-fill {
- background-color: #209cee; }
- .progress.is-info:indeterminate {
- background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); }
- .progress.is-success::-webkit-progress-value {
- background-color: #22c35b; }
- .progress.is-success::-moz-progress-bar {
- background-color: #22c35b; }
- .progress.is-success::-ms-fill {
- background-color: #22c35b; }
- .progress.is-success:indeterminate {
- background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); }
- .progress.is-warning::-webkit-progress-value {
- background-color: #ffdd57; }
- .progress.is-warning::-moz-progress-bar {
- background-color: #ffdd57; }
- .progress.is-warning::-ms-fill {
- background-color: #ffdd57; }
- .progress.is-warning:indeterminate {
- background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); }
- .progress.is-danger::-webkit-progress-value {
- background-color: #da0b00; }
- .progress.is-danger::-moz-progress-bar {
- background-color: #da0b00; }
- .progress.is-danger::-ms-fill {
- background-color: #da0b00; }
- .progress.is-danger:indeterminate {
- background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); }
- .progress:indeterminate {
- animation-duration: 1.5s;
- animation-iteration-count: infinite;
- animation-name: moveIndeterminate;
- animation-timing-function: linear;
- background-color: #dbdbdb;
- background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%);
- background-position: top left;
- background-repeat: no-repeat;
- background-size: 150% 150%; }
- .progress:indeterminate::-webkit-progress-bar {
- background-color: transparent; }
- .progress:indeterminate::-moz-progress-bar {
- background-color: transparent; }
- .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress {
- height: 0.75rem; }
- .progress.is-medium {
- height: 1.25rem; }
- .progress.is-large {
- height: 1.5rem; }
-
-@keyframes moveIndeterminate {
- from {
- background-position: 200% 0; }
- to {
- background-position: -200% 0; } }
-
-.table {
- background-color: white;
- color: #363636; }
- .table td,
- .table th {
- border: 1px solid #dbdbdb;
- border-width: 0 0 1px;
- padding: 0.5em 0.75em;
- vertical-align: top; }
- .table td.is-white,
- .table th.is-white {
- background-color: white;
- border-color: white;
- color: #0a0a0a; }
- .table td.is-black,
- .table th.is-black {
- background-color: #0a0a0a;
- border-color: #0a0a0a;
- color: white; }
- .table td.is-light,
- .table th.is-light {
- background-color: whitesmoke;
- border-color: whitesmoke;
- color: #363636; }
- .table td.is-dark,
- .table th.is-dark {
- background-color: #363636;
- border-color: #363636;
- color: whitesmoke; }
- .table td.is-primary,
- .table th.is-primary {
- background-color: #4eb5de;
- border-color: #4eb5de;
- color: #fff; }
- .table td.is-link,
- .table th.is-link {
- background-color: #2e63b8;
- border-color: #2e63b8;
- color: #fff; }
- .table td.is-info,
- .table th.is-info {
- background-color: #209cee;
- border-color: #209cee;
- color: #fff; }
- .table td.is-success,
- .table th.is-success {
- background-color: #22c35b;
- border-color: #22c35b;
- color: #fff; }
- .table td.is-warning,
- .table th.is-warning {
- background-color: #ffdd57;
- border-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); }
- .table td.is-danger,
- .table th.is-danger {
- background-color: #da0b00;
- border-color: #da0b00;
- color: #fff; }
- .table td.is-narrow,
- .table th.is-narrow {
- white-space: nowrap;
- width: 1%; }
- .table td.is-selected,
- .table th.is-selected {
- background-color: #4eb5de;
- color: #fff; }
- .table td.is-selected a,
- .table td.is-selected strong,
- .table th.is-selected a,
- .table th.is-selected strong {
- color: currentColor; }
- .table th {
- color: #222222; }
- .table th:not([align]) {
- text-align: left; }
- .table tr.is-selected {
- background-color: #4eb5de;
- color: #fff; }
- .table tr.is-selected a,
- .table tr.is-selected strong {
- color: currentColor; }
- .table tr.is-selected td,
- .table tr.is-selected th {
- border-color: #fff;
- color: currentColor; }
- .table thead {
- background-color: transparent; }
- .table thead td,
- .table thead th {
- border-width: 0 0 2px;
- color: #222222; }
- .table tfoot {
- background-color: transparent; }
- .table tfoot td,
- .table tfoot th {
- border-width: 2px 0 0;
- color: #222222; }
- .table tbody {
- background-color: transparent; }
- .table tbody tr:last-child td,
- .table tbody tr:last-child th {
- border-bottom-width: 0; }
- .table.is-bordered td,
- .table.is-bordered th {
- border-width: 1px; }
- .table.is-bordered tr:last-child td,
- .table.is-bordered tr:last-child th {
- border-bottom-width: 1px; }
- .table.is-fullwidth {
- width: 100%; }
- .table.is-hoverable tbody tr:not(.is-selected):hover {
- background-color: #fafafa; }
- .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover {
- background-color: #fafafa; }
- .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) {
- background-color: whitesmoke; }
- .table.is-narrow td,
- .table.is-narrow th {
- padding: 0.25em 0.5em; }
- .table.is-striped tbody tr:not(.is-selected):nth-child(even) {
- background-color: #fafafa; }
-
-.table-container {
- -webkit-overflow-scrolling: touch;
- overflow: auto;
- overflow-y: hidden;
- max-width: 100%; }
-
-.tags {
- align-items: center;
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-start; }
- .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink {
- margin-bottom: 0.5rem; }
- .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) {
- margin-right: 0.5rem; }
- .tags:last-child {
- margin-bottom: -0.5rem; }
- .tags:not(:last-child) {
- margin-bottom: 1rem; }
- .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) {
- font-size: 1rem; }
- .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) {
- font-size: 1.25rem; }
- .tags.is-centered {
- justify-content: center; }
- .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink {
- margin-right: 0.25rem;
- margin-left: 0.25rem; }
- .tags.is-right {
- justify-content: flex-end; }
- .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) {
- margin-left: 0.5rem; }
- .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) {
- margin-right: 0; }
- .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink {
- margin-right: 0; }
- .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) {
- margin-left: 0;
- border-bottom-left-radius: 0;
- border-top-left-radius: 0; }
- .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0; }
-
-.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) {
- align-items: center;
- background-color: whitesmoke;
- border-radius: 4px;
- color: #222222;
- display: inline-flex;
- font-size: 0.75rem;
- height: 2em;
- justify-content: center;
- line-height: 1.5;
- padding-left: 0.75em;
- padding-right: 0.75em;
- white-space: nowrap; }
- .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete {
- margin-left: 0.25rem;
- margin-right: -0.375rem; }
- .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) {
- background-color: white;
- color: #0a0a0a; }
- .tag.is-black:not(body), .content kbd.is-black:not(body), .docstring > section > a.docs-sourcelink.is-black:not(body) {
- background-color: #0a0a0a;
- color: white; }
- .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) {
- background-color: whitesmoke;
- color: #363636; }
- .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) {
- background-color: #363636;
- color: whitesmoke; }
- .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) {
- background-color: #4eb5de;
- color: #fff; }
- .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) {
- background-color: #2e63b8;
- color: #fff; }
- .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) {
- background-color: #209cee;
- color: #fff; }
- .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) {
- background-color: #22c35b;
- color: #fff; }
- .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) {
- background-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); }
- .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) {
- background-color: #da0b00;
- color: #fff; }
- .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) {
- font-size: 0.75rem; }
- .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) {
- font-size: 1rem; }
- .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) {
- font-size: 1.25rem; }
- .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) {
- margin-left: -0.375em;
- margin-right: 0.1875em; }
- .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) {
- margin-left: 0.1875em;
- margin-right: -0.375em; }
- .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child {
- margin-left: -0.375em;
- margin-right: -0.375em; }
- .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) {
- margin-left: 1px;
- padding: 0;
- position: relative;
- width: 2em; }
- .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
- background-color: currentColor;
- content: "";
- display: block;
- left: 50%;
- position: absolute;
- top: 50%;
- transform: translateX(-50%) translateY(-50%) rotate(45deg);
- transform-origin: center center; }
- .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before {
- height: 1px;
- width: 50%; }
- .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after {
- height: 50%;
- width: 1px; }
- .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus {
- background-color: #e8e8e8; }
- .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active {
- background-color: #dbdbdb; }
- .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) {
- border-radius: 290486px; }
-
-a.tag:hover, .docstring > section > a.docs-sourcelink:hover {
- text-decoration: underline; }
-
-.title,
-.subtitle {
- word-break: break-word; }
- .title em,
- .title span,
- .subtitle em,
- .subtitle span {
- font-weight: inherit; }
- .title sub,
- .subtitle sub {
- font-size: 0.75em; }
- .title sup,
- .subtitle sup {
- font-size: 0.75em; }
- .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink,
- .subtitle .tag,
- .subtitle .content kbd,
- .content .subtitle kbd,
- .subtitle .docstring > section > a.docs-sourcelink {
- vertical-align: middle; }
-
-.title {
- color: #363636;
- font-size: 2rem;
- font-weight: 600;
- line-height: 1.125; }
- .title strong {
- color: inherit;
- font-weight: inherit; }
- .title + .highlight {
- margin-top: -0.75rem; }
- .title:not(.is-spaced) + .subtitle {
- margin-top: -1.25rem; }
- .title.is-1 {
- font-size: 3rem; }
- .title.is-2 {
- font-size: 2.5rem; }
- .title.is-3 {
- font-size: 2rem; }
- .title.is-4 {
- font-size: 1.5rem; }
- .title.is-5 {
- font-size: 1.25rem; }
- .title.is-6 {
- font-size: 1rem; }
- .title.is-7 {
- font-size: 0.75rem; }
-
-.subtitle {
- color: #4a4a4a;
- font-size: 1.25rem;
- font-weight: 400;
- line-height: 1.25; }
- .subtitle strong {
- color: #363636;
- font-weight: 600; }
- .subtitle:not(.is-spaced) + .title {
- margin-top: -1.25rem; }
- .subtitle.is-1 {
- font-size: 3rem; }
- .subtitle.is-2 {
- font-size: 2.5rem; }
- .subtitle.is-3 {
- font-size: 2rem; }
- .subtitle.is-4 {
- font-size: 1.5rem; }
- .subtitle.is-5 {
- font-size: 1.25rem; }
- .subtitle.is-6 {
- font-size: 1rem; }
- .subtitle.is-7 {
- font-size: 0.75rem; }
-
-.heading {
- display: block;
- font-size: 11px;
- letter-spacing: 1px;
- margin-bottom: 5px;
- text-transform: uppercase; }
-
-.highlight {
- font-weight: 400;
- max-width: 100%;
- overflow: hidden;
- padding: 0; }
- .highlight pre {
- overflow: auto;
- max-width: 100%; }
-
-.number {
- align-items: center;
- background-color: whitesmoke;
- border-radius: 290486px;
- display: inline-flex;
- font-size: 1.25rem;
- height: 2em;
- justify-content: center;
- margin-right: 1.5rem;
- min-width: 2.5em;
- padding: 0.25rem 0.5rem;
- text-align: center;
- vertical-align: top; }
-
-.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input {
- background-color: white;
- border-color: #dbdbdb;
- border-radius: 4px;
- color: #363636; }
- .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder {
- color: rgba(54, 54, 54, 0.3); }
- .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder {
- color: rgba(54, 54, 54, 0.3); }
- .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder {
- color: rgba(54, 54, 54, 0.3); }
- .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder {
- color: rgba(54, 54, 54, 0.3); }
- .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered {
- border-color: #b5b5b5; }
- .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- border-color: #2e63b8;
- box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
- .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input {
- background-color: whitesmoke;
- border-color: whitesmoke;
- box-shadow: none;
- color: #6b6b6b; }
- .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder {
- color: rgba(107, 107, 107, 0.3); }
- .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder {
- color: rgba(107, 107, 107, 0.3); }
- .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder {
- color: rgba(107, 107, 107, 0.3); }
- .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder {
- color: rgba(107, 107, 107, 0.3); }
-
-.textarea, .input, #documenter .docs-sidebar form.docs-search > input {
- box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
- max-width: 100%;
- width: 100%; }
- .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] {
- box-shadow: none; }
- .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white {
- border-color: white; }
- .is-white.textarea:focus, .is-white.input:focus, #documenter .docs-sidebar form.docs-search > input.is-white:focus, .is-white.is-focused.textarea, .is-white.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-white.textarea:active, .is-white.input:active, #documenter .docs-sidebar form.docs-search > input.is-white:active, .is-white.is-active.textarea, .is-white.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
- .is-black.textarea, .is-black.input, #documenter .docs-sidebar form.docs-search > input.is-black {
- border-color: #0a0a0a; }
- .is-black.textarea:focus, .is-black.input:focus, #documenter .docs-sidebar form.docs-search > input.is-black:focus, .is-black.is-focused.textarea, .is-black.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-black.textarea:active, .is-black.input:active, #documenter .docs-sidebar form.docs-search > input.is-black:active, .is-black.is-active.textarea, .is-black.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
- .is-light.textarea, .is-light.input, #documenter .docs-sidebar form.docs-search > input.is-light {
- border-color: whitesmoke; }
- .is-light.textarea:focus, .is-light.input:focus, #documenter .docs-sidebar form.docs-search > input.is-light:focus, .is-light.is-focused.textarea, .is-light.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-light.textarea:active, .is-light.input:active, #documenter .docs-sidebar form.docs-search > input.is-light:active, .is-light.is-active.textarea, .is-light.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
- .is-dark.textarea, .content kbd.textarea, .is-dark.input, #documenter .docs-sidebar form.docs-search > input.is-dark, .content kbd.input {
- border-color: #363636; }
- .is-dark.textarea:focus, .content kbd.textarea:focus, .is-dark.input:focus, #documenter .docs-sidebar form.docs-search > input.is-dark:focus, .content kbd.input:focus, .is-dark.is-focused.textarea, .content kbd.is-focused.textarea, .is-dark.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .content kbd.is-focused.input, #documenter .docs-sidebar .content form.docs-search > input.is-focused, .is-dark.textarea:active, .content kbd.textarea:active, .is-dark.input:active, #documenter .docs-sidebar form.docs-search > input.is-dark:active, .content kbd.input:active, .is-dark.is-active.textarea, .content kbd.is-active.textarea, .is-dark.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .content kbd.is-active.input, #documenter .docs-sidebar .content form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
- .is-primary.textarea, .docstring > section > a.textarea.docs-sourcelink, .is-primary.input, #documenter .docs-sidebar form.docs-search > input.is-primary, .docstring > section > a.input.docs-sourcelink {
- border-color: #4eb5de; }
- .is-primary.textarea:focus, .docstring > section > a.textarea.docs-sourcelink:focus, .is-primary.input:focus, #documenter .docs-sidebar form.docs-search > input.is-primary:focus, .docstring > section > a.input.docs-sourcelink:focus, .is-primary.is-focused.textarea, .docstring > section > a.is-focused.textarea.docs-sourcelink, .is-primary.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .docstring > section > a.is-focused.input.docs-sourcelink, .is-primary.textarea:active, .docstring > section > a.textarea.docs-sourcelink:active, .is-primary.input:active, #documenter .docs-sidebar form.docs-search > input.is-primary:active, .docstring > section > a.input.docs-sourcelink:active, .is-primary.is-active.textarea, .docstring > section > a.is-active.textarea.docs-sourcelink, .is-primary.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .docstring > section > a.is-active.input.docs-sourcelink {
- box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
- .is-link.textarea, .is-link.input, #documenter .docs-sidebar form.docs-search > input.is-link {
- border-color: #2e63b8; }
- .is-link.textarea:focus, .is-link.input:focus, #documenter .docs-sidebar form.docs-search > input.is-link:focus, .is-link.is-focused.textarea, .is-link.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-link.textarea:active, .is-link.input:active, #documenter .docs-sidebar form.docs-search > input.is-link:active, .is-link.is-active.textarea, .is-link.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
- .is-info.textarea, .is-info.input, #documenter .docs-sidebar form.docs-search > input.is-info {
- border-color: #209cee; }
- .is-info.textarea:focus, .is-info.input:focus, #documenter .docs-sidebar form.docs-search > input.is-info:focus, .is-info.is-focused.textarea, .is-info.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-info.textarea:active, .is-info.input:active, #documenter .docs-sidebar form.docs-search > input.is-info:active, .is-info.is-active.textarea, .is-info.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
- .is-success.textarea, .is-success.input, #documenter .docs-sidebar form.docs-search > input.is-success {
- border-color: #22c35b; }
- .is-success.textarea:focus, .is-success.input:focus, #documenter .docs-sidebar form.docs-search > input.is-success:focus, .is-success.is-focused.textarea, .is-success.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-success.textarea:active, .is-success.input:active, #documenter .docs-sidebar form.docs-search > input.is-success:active, .is-success.is-active.textarea, .is-success.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
- .is-warning.textarea, .is-warning.input, #documenter .docs-sidebar form.docs-search > input.is-warning {
- border-color: #ffdd57; }
- .is-warning.textarea:focus, .is-warning.input:focus, #documenter .docs-sidebar form.docs-search > input.is-warning:focus, .is-warning.is-focused.textarea, .is-warning.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-warning.textarea:active, .is-warning.input:active, #documenter .docs-sidebar form.docs-search > input.is-warning:active, .is-warning.is-active.textarea, .is-warning.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
- .is-danger.textarea, .is-danger.input, #documenter .docs-sidebar form.docs-search > input.is-danger {
- border-color: #da0b00; }
- .is-danger.textarea:focus, .is-danger.input:focus, #documenter .docs-sidebar form.docs-search > input.is-danger:focus, .is-danger.is-focused.textarea, .is-danger.is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-danger.textarea:active, .is-danger.input:active, #documenter .docs-sidebar form.docs-search > input.is-danger:active, .is-danger.is-active.textarea, .is-danger.is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active {
- box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
- .is-small.textarea, .is-small.input, #documenter .docs-sidebar form.docs-search > input {
- border-radius: 2px;
- font-size: 0.75rem; }
- .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium {
- font-size: 1.25rem; }
- .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large {
- font-size: 1.5rem; }
- .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth {
- display: block;
- width: 100%; }
- .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline {
- display: inline;
- width: auto; }
-
-.input.is-rounded, #documenter .docs-sidebar form.docs-search > input {
- border-radius: 290486px;
- padding-left: 1em;
- padding-right: 1em; }
-
-.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static {
- background-color: transparent;
- border-color: transparent;
- box-shadow: none;
- padding-left: 0;
- padding-right: 0; }
-
-.textarea {
- display: block;
- max-width: 100%;
- min-width: 100%;
- padding: 0.625em;
- resize: vertical; }
- .textarea:not([rows]) {
- max-height: 600px;
- min-height: 120px; }
- .textarea[rows] {
- height: initial; }
- .textarea.has-fixed-size {
- resize: none; }
-
-.radio, .checkbox {
- cursor: pointer;
- display: inline-block;
- line-height: 1.25;
- position: relative; }
- .radio input, .checkbox input {
- cursor: pointer; }
- .radio:hover, .checkbox:hover {
- color: #363636; }
- .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox {
- color: #6b6b6b;
- cursor: not-allowed; }
-
-.radio + .radio {
- margin-left: 0.5em; }
-
-.select {
- display: inline-block;
- max-width: 100%;
- position: relative;
- vertical-align: top; }
- .select:not(.is-multiple) {
- height: 2.25em; }
- .select:not(.is-multiple):not(.is-loading)::after {
- border-color: #2e63b8;
- right: 1.125em;
- z-index: 4; }
- .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select {
- border-radius: 290486px;
- padding-left: 1em; }
- .select select {
- cursor: pointer;
- display: block;
- font-size: 1em;
- max-width: 100%;
- outline: none; }
- .select select::-ms-expand {
- display: none; }
- .select select[disabled]:hover, fieldset[disabled] .select select:hover {
- border-color: whitesmoke; }
- .select select:not([multiple]) {
- padding-right: 2.5em; }
- .select select[multiple] {
- height: auto;
- padding: 0; }
- .select select[multiple] option {
- padding: 0.5em 1em; }
- .select:not(.is-multiple):not(.is-loading):hover::after {
- border-color: #363636; }
- .select.is-white:not(:hover)::after {
- border-color: white; }
- .select.is-white select {
- border-color: white; }
- .select.is-white select:hover, .select.is-white select.is-hovered {
- border-color: #f2f2f2; }
- .select.is-white select:focus, .select.is-white select.is-focused, .select.is-white select:active, .select.is-white select.is-active {
- box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.25); }
- .select.is-black:not(:hover)::after {
- border-color: #0a0a0a; }
- .select.is-black select {
- border-color: #0a0a0a; }
- .select.is-black select:hover, .select.is-black select.is-hovered {
- border-color: black; }
- .select.is-black select:focus, .select.is-black select.is-focused, .select.is-black select:active, .select.is-black select.is-active {
- box-shadow: 0 0 0 0.125em rgba(10, 10, 10, 0.25); }
- .select.is-light:not(:hover)::after {
- border-color: whitesmoke; }
- .select.is-light select {
- border-color: whitesmoke; }
- .select.is-light select:hover, .select.is-light select.is-hovered {
- border-color: #e8e8e8; }
- .select.is-light select:focus, .select.is-light select.is-focused, .select.is-light select:active, .select.is-light select.is-active {
- box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); }
- .select.is-dark:not(:hover)::after, .content kbd.select:not(:hover)::after {
- border-color: #363636; }
- .select.is-dark select, .content kbd.select select {
- border-color: #363636; }
- .select.is-dark select:hover, .content kbd.select select:hover, .select.is-dark select.is-hovered, .content kbd.select select.is-hovered {
- border-color: #292929; }
- .select.is-dark select:focus, .content kbd.select select:focus, .select.is-dark select.is-focused, .content kbd.select select.is-focused, .select.is-dark select:active, .content kbd.select select:active, .select.is-dark select.is-active, .content kbd.select select.is-active {
- box-shadow: 0 0 0 0.125em rgba(54, 54, 54, 0.25); }
- .select.is-primary:not(:hover)::after, .docstring > section > a.select.docs-sourcelink:not(:hover)::after {
- border-color: #4eb5de; }
- .select.is-primary select, .docstring > section > a.select.docs-sourcelink select {
- border-color: #4eb5de; }
- .select.is-primary select:hover, .docstring > section > a.select.docs-sourcelink select:hover, .select.is-primary select.is-hovered, .docstring > section > a.select.docs-sourcelink select.is-hovered {
- border-color: #39acda; }
- .select.is-primary select:focus, .docstring > section > a.select.docs-sourcelink select:focus, .select.is-primary select.is-focused, .docstring > section > a.select.docs-sourcelink select.is-focused, .select.is-primary select:active, .docstring > section > a.select.docs-sourcelink select:active, .select.is-primary select.is-active, .docstring > section > a.select.docs-sourcelink select.is-active {
- box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); }
- .select.is-link:not(:hover)::after {
- border-color: #2e63b8; }
- .select.is-link select {
- border-color: #2e63b8; }
- .select.is-link select:hover, .select.is-link select.is-hovered {
- border-color: #2958a4; }
- .select.is-link select:focus, .select.is-link select.is-focused, .select.is-link select:active, .select.is-link select.is-active {
- box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); }
- .select.is-info:not(:hover)::after {
- border-color: #209cee; }
- .select.is-info select {
- border-color: #209cee; }
- .select.is-info select:hover, .select.is-info select.is-hovered {
- border-color: #1190e3; }
- .select.is-info select:focus, .select.is-info select.is-focused, .select.is-info select:active, .select.is-info select.is-active {
- box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); }
- .select.is-success:not(:hover)::after {
- border-color: #22c35b; }
- .select.is-success select {
- border-color: #22c35b; }
- .select.is-success select:hover, .select.is-success select.is-hovered {
- border-color: #1ead51; }
- .select.is-success select:focus, .select.is-success select.is-focused, .select.is-success select:active, .select.is-success select.is-active {
- box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); }
- .select.is-warning:not(:hover)::after {
- border-color: #ffdd57; }
- .select.is-warning select {
- border-color: #ffdd57; }
- .select.is-warning select:hover, .select.is-warning select.is-hovered {
- border-color: #ffd83e; }
- .select.is-warning select:focus, .select.is-warning select.is-focused, .select.is-warning select:active, .select.is-warning select.is-active {
- box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); }
- .select.is-danger:not(:hover)::after {
- border-color: #da0b00; }
- .select.is-danger select {
- border-color: #da0b00; }
- .select.is-danger select:hover, .select.is-danger select.is-hovered {
- border-color: #c10a00; }
- .select.is-danger select:focus, .select.is-danger select.is-focused, .select.is-danger select:active, .select.is-danger select.is-active {
- box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); }
- .select.is-small, #documenter .docs-sidebar form.docs-search > input.select {
- border-radius: 2px;
- font-size: 0.75rem; }
- .select.is-medium {
- font-size: 1.25rem; }
- .select.is-large {
- font-size: 1.5rem; }
- .select.is-disabled::after {
- border-color: #6b6b6b; }
- .select.is-fullwidth {
- width: 100%; }
- .select.is-fullwidth select {
- width: 100%; }
- .select.is-loading::after {
- margin-top: 0;
- position: absolute;
- right: 0.625em;
- top: 0.625em;
- transform: none; }
- .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
- font-size: 0.75rem; }
- .select.is-loading.is-medium:after {
- font-size: 1.25rem; }
- .select.is-loading.is-large:after {
- font-size: 1.5rem; }
-
-.file {
- align-items: stretch;
- display: flex;
- justify-content: flex-start;
- position: relative; }
- .file.is-white .file-cta {
- background-color: white;
- border-color: transparent;
- color: #0a0a0a; }
- .file.is-white:hover .file-cta, .file.is-white.is-hovered .file-cta {
- background-color: #f9f9f9;
- border-color: transparent;
- color: #0a0a0a; }
- .file.is-white:focus .file-cta, .file.is-white.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(255, 255, 255, 0.25);
- color: #0a0a0a; }
- .file.is-white:active .file-cta, .file.is-white.is-active .file-cta {
- background-color: #f2f2f2;
- border-color: transparent;
- color: #0a0a0a; }
- .file.is-black .file-cta {
- background-color: #0a0a0a;
- border-color: transparent;
- color: white; }
- .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta {
- background-color: #040404;
- border-color: transparent;
- color: white; }
- .file.is-black:focus .file-cta, .file.is-black.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(10, 10, 10, 0.25);
- color: white; }
- .file.is-black:active .file-cta, .file.is-black.is-active .file-cta {
- background-color: black;
- border-color: transparent;
- color: white; }
- .file.is-light .file-cta {
- background-color: whitesmoke;
- border-color: transparent;
- color: #363636; }
- .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta {
- background-color: #eeeeee;
- border-color: transparent;
- color: #363636; }
- .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25);
- color: #363636; }
- .file.is-light:active .file-cta, .file.is-light.is-active .file-cta {
- background-color: #e8e8e8;
- border-color: transparent;
- color: #363636; }
- .file.is-dark .file-cta, .content kbd.file .file-cta {
- background-color: #363636;
- border-color: transparent;
- color: whitesmoke; }
- .file.is-dark:hover .file-cta, .content kbd.file:hover .file-cta, .file.is-dark.is-hovered .file-cta, .content kbd.file.is-hovered .file-cta {
- background-color: #2f2f2f;
- border-color: transparent;
- color: whitesmoke; }
- .file.is-dark:focus .file-cta, .content kbd.file:focus .file-cta, .file.is-dark.is-focused .file-cta, .content kbd.file.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(54, 54, 54, 0.25);
- color: whitesmoke; }
- .file.is-dark:active .file-cta, .content kbd.file:active .file-cta, .file.is-dark.is-active .file-cta, .content kbd.file.is-active .file-cta {
- background-color: #292929;
- border-color: transparent;
- color: whitesmoke; }
- .file.is-primary .file-cta, .docstring > section > a.file.docs-sourcelink .file-cta {
- background-color: #4eb5de;
- border-color: transparent;
- color: #fff; }
- .file.is-primary:hover .file-cta, .docstring > section > a.file.docs-sourcelink:hover .file-cta, .file.is-primary.is-hovered .file-cta, .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta {
- background-color: #43b1dc;
- border-color: transparent;
- color: #fff; }
- .file.is-primary:focus .file-cta, .docstring > section > a.file.docs-sourcelink:focus .file-cta, .file.is-primary.is-focused .file-cta, .docstring > section > a.file.is-focused.docs-sourcelink .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(78, 181, 222, 0.25);
- color: #fff; }
- .file.is-primary:active .file-cta, .docstring > section > a.file.docs-sourcelink:active .file-cta, .file.is-primary.is-active .file-cta, .docstring > section > a.file.is-active.docs-sourcelink .file-cta {
- background-color: #39acda;
- border-color: transparent;
- color: #fff; }
- .file.is-link .file-cta {
- background-color: #2e63b8;
- border-color: transparent;
- color: #fff; }
- .file.is-link:hover .file-cta, .file.is-link.is-hovered .file-cta {
- background-color: #2b5eae;
- border-color: transparent;
- color: #fff; }
- .file.is-link:focus .file-cta, .file.is-link.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(46, 99, 184, 0.25);
- color: #fff; }
- .file.is-link:active .file-cta, .file.is-link.is-active .file-cta {
- background-color: #2958a4;
- border-color: transparent;
- color: #fff; }
- .file.is-info .file-cta {
- background-color: #209cee;
- border-color: transparent;
- color: #fff; }
- .file.is-info:hover .file-cta, .file.is-info.is-hovered .file-cta {
- background-color: #1497ed;
- border-color: transparent;
- color: #fff; }
- .file.is-info:focus .file-cta, .file.is-info.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(32, 156, 238, 0.25);
- color: #fff; }
- .file.is-info:active .file-cta, .file.is-info.is-active .file-cta {
- background-color: #1190e3;
- border-color: transparent;
- color: #fff; }
- .file.is-success .file-cta {
- background-color: #22c35b;
- border-color: transparent;
- color: #fff; }
- .file.is-success:hover .file-cta, .file.is-success.is-hovered .file-cta {
- background-color: #20b856;
- border-color: transparent;
- color: #fff; }
- .file.is-success:focus .file-cta, .file.is-success.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(34, 195, 91, 0.25);
- color: #fff; }
- .file.is-success:active .file-cta, .file.is-success.is-active .file-cta {
- background-color: #1ead51;
- border-color: transparent;
- color: #fff; }
- .file.is-warning .file-cta {
- background-color: #ffdd57;
- border-color: transparent;
- color: rgba(0, 0, 0, 0.7); }
- .file.is-warning:hover .file-cta, .file.is-warning.is-hovered .file-cta {
- background-color: #ffda4a;
- border-color: transparent;
- color: rgba(0, 0, 0, 0.7); }
- .file.is-warning:focus .file-cta, .file.is-warning.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(255, 221, 87, 0.25);
- color: rgba(0, 0, 0, 0.7); }
- .file.is-warning:active .file-cta, .file.is-warning.is-active .file-cta {
- background-color: #ffd83e;
- border-color: transparent;
- color: rgba(0, 0, 0, 0.7); }
- .file.is-danger .file-cta {
- background-color: #da0b00;
- border-color: transparent;
- color: #fff; }
- .file.is-danger:hover .file-cta, .file.is-danger.is-hovered .file-cta {
- background-color: #cd0a00;
- border-color: transparent;
- color: #fff; }
- .file.is-danger:focus .file-cta, .file.is-danger.is-focused .file-cta {
- border-color: transparent;
- box-shadow: 0 0 0.5em rgba(218, 11, 0, 0.25);
- color: #fff; }
- .file.is-danger:active .file-cta, .file.is-danger.is-active .file-cta {
- background-color: #c10a00;
- border-color: transparent;
- color: #fff; }
- .file.is-small, #documenter .docs-sidebar form.docs-search > input.file {
- font-size: 0.75rem; }
- .file.is-medium {
- font-size: 1.25rem; }
- .file.is-medium .file-icon .fa {
- font-size: 21px; }
- .file.is-large {
- font-size: 1.5rem; }
- .file.is-large .file-icon .fa {
- font-size: 28px; }
- .file.has-name .file-cta {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0; }
- .file.has-name .file-name {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0; }
- .file.has-name.is-empty .file-cta {
- border-radius: 4px; }
- .file.has-name.is-empty .file-name {
- display: none; }
- .file.is-boxed .file-label {
- flex-direction: column; }
- .file.is-boxed .file-cta {
- flex-direction: column;
- height: auto;
- padding: 1em 3em; }
- .file.is-boxed .file-name {
- border-width: 0 1px 1px; }
- .file.is-boxed .file-icon {
- height: 1.5em;
- width: 1.5em; }
- .file.is-boxed .file-icon .fa {
- font-size: 21px; }
- .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa {
- font-size: 14px; }
- .file.is-boxed.is-medium .file-icon .fa {
- font-size: 28px; }
- .file.is-boxed.is-large .file-icon .fa {
- font-size: 35px; }
- .file.is-boxed.has-name .file-cta {
- border-radius: 4px 4px 0 0; }
- .file.is-boxed.has-name .file-name {
- border-radius: 0 0 4px 4px;
- border-width: 0 1px 1px; }
- .file.is-centered {
- justify-content: center; }
- .file.is-fullwidth .file-label {
- width: 100%; }
- .file.is-fullwidth .file-name {
- flex-grow: 1;
- max-width: none; }
- .file.is-right {
- justify-content: flex-end; }
- .file.is-right .file-cta {
- border-radius: 0 4px 4px 0; }
- .file.is-right .file-name {
- border-radius: 4px 0 0 4px;
- border-width: 1px 0 1px 1px;
- order: -1; }
-
-.file-label {
- align-items: stretch;
- display: flex;
- cursor: pointer;
- justify-content: flex-start;
- overflow: hidden;
- position: relative; }
- .file-label:hover .file-cta {
- background-color: #eeeeee;
- color: #363636; }
- .file-label:hover .file-name {
- border-color: #d5d5d5; }
- .file-label:active .file-cta {
- background-color: #e8e8e8;
- color: #363636; }
- .file-label:active .file-name {
- border-color: #cfcfcf; }
-
-.file-input {
- height: 100%;
- left: 0;
- opacity: 0;
- outline: none;
- position: absolute;
- top: 0;
- width: 100%; }
-
-.file-cta,
-.file-name {
- border-color: #dbdbdb;
- border-radius: 4px;
- font-size: 1em;
- padding-left: 1em;
- padding-right: 1em;
- white-space: nowrap; }
-
-.file-cta {
- background-color: whitesmoke;
- color: #4a4a4a; }
-
-.file-name {
- border-color: #dbdbdb;
- border-style: solid;
- border-width: 1px 1px 1px 0;
- display: block;
- max-width: 16em;
- overflow: hidden;
- text-align: left;
- text-overflow: ellipsis; }
-
-.file-icon {
- align-items: center;
- display: flex;
- height: 1em;
- justify-content: center;
- margin-right: 0.5em;
- width: 1em; }
- .file-icon .fa {
- font-size: 14px; }
-
-.label {
- color: #363636;
- display: block;
- font-size: 1rem;
- font-weight: 700; }
- .label:not(:last-child) {
- margin-bottom: 0.5em; }
- .label.is-small, #documenter .docs-sidebar form.docs-search > input.label {
- font-size: 0.75rem; }
- .label.is-medium {
- font-size: 1.25rem; }
- .label.is-large {
- font-size: 1.5rem; }
-
-.help {
- display: block;
- font-size: 0.75rem;
- margin-top: 0.25rem; }
- .help.is-white {
- color: white; }
- .help.is-black {
- color: #0a0a0a; }
- .help.is-light {
- color: whitesmoke; }
- .help.is-dark, .content kbd.help {
- color: #363636; }
- .help.is-primary, .docstring > section > a.help.docs-sourcelink {
- color: #4eb5de; }
- .help.is-link {
- color: #2e63b8; }
- .help.is-info {
- color: #209cee; }
- .help.is-success {
- color: #22c35b; }
- .help.is-warning {
- color: #ffdd57; }
- .help.is-danger {
- color: #da0b00; }
-
-.field:not(:last-child) {
- margin-bottom: 0.75rem; }
-
-.field.has-addons {
- display: flex;
- justify-content: flex-start; }
- .field.has-addons .control:not(:last-child) {
- margin-right: -1px; }
- .field.has-addons .control:not(:first-child):not(:last-child) .button,
- .field.has-addons .control:not(:first-child):not(:last-child) .input,
- .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input,
- #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input,
- .field.has-addons .control:not(:first-child):not(:last-child) .select select {
- border-radius: 0; }
- .field.has-addons .control:first-child:not(:only-child) .button,
- .field.has-addons .control:first-child:not(:only-child) .input,
- .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
- #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input,
- .field.has-addons .control:first-child:not(:only-child) .select select {
- border-bottom-right-radius: 0;
- border-top-right-radius: 0; }
- .field.has-addons .control:last-child:not(:only-child) .button,
- .field.has-addons .control:last-child:not(:only-child) .input,
- .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input,
- #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input,
- .field.has-addons .control:last-child:not(:only-child) .select select {
- border-bottom-left-radius: 0;
- border-top-left-radius: 0; }
- .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]),
- .field.has-addons .control .input:not([disabled]):hover,
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover,
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover,
- .field.has-addons .control .input.is-hovered:not([disabled]),
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]),
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]),
- .field.has-addons .control .select select:not([disabled]):hover,
- .field.has-addons .control .select select.is-hovered:not([disabled]) {
- z-index: 2; }
- .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]),
- .field.has-addons .control .input:not([disabled]):focus,
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus,
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus,
- .field.has-addons .control .input.is-focused:not([disabled]),
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]),
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]),
- .field.has-addons .control .input:not([disabled]):active,
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active,
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active,
- .field.has-addons .control .input.is-active:not([disabled]),
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]),
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]),
- .field.has-addons .control .select select:not([disabled]):focus,
- .field.has-addons .control .select select.is-focused:not([disabled]),
- .field.has-addons .control .select select:not([disabled]):active,
- .field.has-addons .control .select select.is-active:not([disabled]) {
- z-index: 3; }
- .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover,
- .field.has-addons .control .input:not([disabled]):focus:hover,
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover,
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover,
- .field.has-addons .control .input.is-focused:not([disabled]):hover,
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover,
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover,
- .field.has-addons .control .input:not([disabled]):active:hover,
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover,
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover,
- .field.has-addons .control .input.is-active:not([disabled]):hover,
- .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover,
- #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover,
- .field.has-addons .control .select select:not([disabled]):focus:hover,
- .field.has-addons .control .select select.is-focused:not([disabled]):hover,
- .field.has-addons .control .select select:not([disabled]):active:hover,
- .field.has-addons .control .select select.is-active:not([disabled]):hover {
- z-index: 4; }
- .field.has-addons .control.is-expanded {
- flex-grow: 1;
- flex-shrink: 1; }
- .field.has-addons.has-addons-centered {
- justify-content: center; }
- .field.has-addons.has-addons-right {
- justify-content: flex-end; }
- .field.has-addons.has-addons-fullwidth .control {
- flex-grow: 1;
- flex-shrink: 0; }
-
-.field.is-grouped {
- display: flex;
- justify-content: flex-start; }
- .field.is-grouped > .control {
- flex-shrink: 0; }
- .field.is-grouped > .control:not(:last-child) {
- margin-bottom: 0;
- margin-right: 0.75rem; }
- .field.is-grouped > .control.is-expanded {
- flex-grow: 1;
- flex-shrink: 1; }
- .field.is-grouped.is-grouped-centered {
- justify-content: center; }
- .field.is-grouped.is-grouped-right {
- justify-content: flex-end; }
- .field.is-grouped.is-grouped-multiline {
- flex-wrap: wrap; }
- .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) {
- margin-bottom: 0.75rem; }
- .field.is-grouped.is-grouped-multiline:last-child {
- margin-bottom: -0.75rem; }
- .field.is-grouped.is-grouped-multiline:not(:last-child) {
- margin-bottom: 0; }
-
-@media screen and (min-width: 769px), print {
- .field.is-horizontal {
- display: flex; } }
-
-.field-label .label {
- font-size: inherit; }
-
-@media screen and (max-width: 768px) {
- .field-label {
- margin-bottom: 0.5rem; } }
-
-@media screen and (min-width: 769px), print {
- .field-label {
- flex-basis: 0;
- flex-grow: 1;
- flex-shrink: 0;
- margin-right: 1.5rem;
- text-align: right; }
- .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label {
- font-size: 0.75rem;
- padding-top: 0.375em; }
- .field-label.is-normal {
- padding-top: 0.375em; }
- .field-label.is-medium {
- font-size: 1.25rem;
- padding-top: 0.375em; }
- .field-label.is-large {
- font-size: 1.5rem;
- padding-top: 0.375em; } }
-
-.field-body .field .field {
- margin-bottom: 0; }
-
-@media screen and (min-width: 769px), print {
- .field-body {
- display: flex;
- flex-basis: 0;
- flex-grow: 5;
- flex-shrink: 1; }
- .field-body .field {
- margin-bottom: 0; }
- .field-body > .field {
- flex-shrink: 1; }
- .field-body > .field:not(.is-narrow) {
- flex-grow: 1; }
- .field-body > .field:not(:last-child) {
- margin-right: 0.75rem; } }
-
-.control {
- box-sizing: border-box;
- clear: both;
- font-size: 1rem;
- position: relative;
- text-align: left; }
- .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon,
- .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon,
- .control.has-icons-right .select:focus ~ .icon {
- color: #6b6b6b; }
- .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon,
- .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon,
- .control.has-icons-right .select.is-small ~ .icon {
- font-size: 0.75rem; }
- .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon,
- .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon,
- .control.has-icons-right .select.is-medium ~ .icon {
- font-size: 1.25rem; }
- .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon,
- .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon,
- .control.has-icons-right .select.is-large ~ .icon {
- font-size: 1.5rem; }
- .control.has-icons-left .icon, .control.has-icons-right .icon {
- color: #dbdbdb;
- height: 2.25em;
- pointer-events: none;
- position: absolute;
- top: 0;
- width: 2.25em;
- z-index: 4; }
- .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input,
- .control.has-icons-left .select select {
- padding-left: 2.25em; }
- .control.has-icons-left .icon.is-left {
- left: 0; }
- .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input,
- .control.has-icons-right .select select {
- padding-right: 2.25em; }
- .control.has-icons-right .icon.is-right {
- right: 0; }
- .control.is-loading::after {
- position: absolute !important;
- right: 0.625em;
- top: 0.625em;
- z-index: 4; }
- .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after {
- font-size: 0.75rem; }
- .control.is-loading.is-medium:after {
- font-size: 1.25rem; }
- .control.is-loading.is-large:after {
- font-size: 1.5rem; }
-
-.breadcrumb {
- font-size: 1rem;
- white-space: nowrap; }
- .breadcrumb a {
- align-items: center;
- color: #2e63b8;
- display: flex;
- justify-content: center;
- padding: 0 0.75em; }
- .breadcrumb a:hover {
- color: #363636; }
- .breadcrumb li {
- align-items: center;
- display: flex; }
- .breadcrumb li:first-child a {
- padding-left: 0; }
- .breadcrumb li.is-active a {
- color: #222222;
- cursor: default;
- pointer-events: none; }
- .breadcrumb li + li::before {
- color: #b5b5b5;
- content: "\0002f"; }
- .breadcrumb ul,
- .breadcrumb ol {
- align-items: flex-start;
- display: flex;
- flex-wrap: wrap;
- justify-content: flex-start; }
- .breadcrumb .icon:first-child {
- margin-right: 0.5em; }
- .breadcrumb .icon:last-child {
- margin-left: 0.5em; }
- .breadcrumb.is-centered ol,
- .breadcrumb.is-centered ul {
- justify-content: center; }
- .breadcrumb.is-right ol,
- .breadcrumb.is-right ul {
- justify-content: flex-end; }
- .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb {
- font-size: 0.75rem; }
- .breadcrumb.is-medium {
- font-size: 1.25rem; }
- .breadcrumb.is-large {
- font-size: 1.5rem; }
- .breadcrumb.has-arrow-separator li + li::before {
- content: "\02192"; }
- .breadcrumb.has-bullet-separator li + li::before {
- content: "\02022"; }
- .breadcrumb.has-dot-separator li + li::before {
- content: "\000b7"; }
- .breadcrumb.has-succeeds-separator li + li::before {
- content: "\0227B"; }
-
-.card {
- background-color: white;
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
- color: #222222;
- max-width: 100%;
- position: relative; }
-
-.card-header {
- background-color: transparent;
- align-items: stretch;
- box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
- display: flex; }
-
-.card-header-title {
- align-items: center;
- color: #222222;
- display: flex;
- flex-grow: 1;
- font-weight: 700;
- padding: 0.75rem; }
- .card-header-title.is-centered {
- justify-content: center; }
-
-.card-header-icon {
- align-items: center;
- cursor: pointer;
- display: flex;
- justify-content: center;
- padding: 0.75rem; }
-
-.card-image {
- display: block;
- position: relative; }
-
-.card-content {
- background-color: transparent;
- padding: 1.5rem; }
-
-.card-footer {
- background-color: transparent;
- border-top: 1px solid #dbdbdb;
- align-items: stretch;
- display: flex; }
-
-.card-footer-item {
- align-items: center;
- display: flex;
- flex-basis: 0;
- flex-grow: 1;
- flex-shrink: 0;
- justify-content: center;
- padding: 0.75rem; }
- .card-footer-item:not(:last-child) {
- border-right: 1px solid #dbdbdb; }
-
-.card .media:not(:last-child) {
- margin-bottom: 1.5rem; }
-
-.dropdown {
- display: inline-flex;
- position: relative;
- vertical-align: top; }
- .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu {
- display: block; }
- .dropdown.is-right .dropdown-menu {
- left: auto;
- right: 0; }
- .dropdown.is-up .dropdown-menu {
- bottom: 100%;
- padding-bottom: 4px;
- padding-top: initial;
- top: auto; }
-
-.dropdown-menu {
- display: none;
- left: 0;
- min-width: 12rem;
- padding-top: 4px;
- position: absolute;
- top: 100%;
- z-index: 20; }
-
-.dropdown-content {
- background-color: white;
- border-radius: 4px;
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
- padding-bottom: 0.5rem;
- padding-top: 0.5rem; }
-
-.dropdown-item {
- color: #4a4a4a;
- display: block;
- font-size: 0.875rem;
- line-height: 1.5;
- padding: 0.375rem 1rem;
- position: relative; }
-
-a.dropdown-item,
-button.dropdown-item {
- padding-right: 3rem;
- text-align: left;
- white-space: nowrap;
- width: 100%; }
- a.dropdown-item:hover,
- button.dropdown-item:hover {
- background-color: whitesmoke;
- color: #0a0a0a; }
- a.dropdown-item.is-active,
- button.dropdown-item.is-active {
- background-color: #2e63b8;
- color: #fff; }
-
-.dropdown-divider {
- background-color: #dbdbdb;
- border: none;
- display: block;
- height: 1px;
- margin: 0.5rem 0; }
-
-.level {
- align-items: center;
- justify-content: space-between; }
- .level code {
- border-radius: 4px; }
- .level img {
- display: inline-block;
- vertical-align: top; }
- .level.is-mobile {
- display: flex; }
- .level.is-mobile .level-left,
- .level.is-mobile .level-right {
- display: flex; }
- .level.is-mobile .level-left + .level-right {
- margin-top: 0; }
- .level.is-mobile .level-item:not(:last-child) {
- margin-bottom: 0;
- margin-right: 0.75rem; }
- .level.is-mobile .level-item:not(.is-narrow) {
- flex-grow: 1; }
- @media screen and (min-width: 769px), print {
- .level {
- display: flex; }
- .level > .level-item:not(.is-narrow) {
- flex-grow: 1; } }
-.level-item {
- align-items: center;
- display: flex;
- flex-basis: auto;
- flex-grow: 0;
- flex-shrink: 0;
- justify-content: center; }
- .level-item .title,
- .level-item .subtitle {
- margin-bottom: 0; }
- @media screen and (max-width: 768px) {
- .level-item:not(:last-child) {
- margin-bottom: 0.75rem; } }
-.level-left,
-.level-right {
- flex-basis: auto;
- flex-grow: 0;
- flex-shrink: 0; }
- .level-left .level-item.is-flexible,
- .level-right .level-item.is-flexible {
- flex-grow: 1; }
- @media screen and (min-width: 769px), print {
- .level-left .level-item:not(:last-child),
- .level-right .level-item:not(:last-child) {
- margin-right: 0.75rem; } }
-.level-left {
- align-items: center;
- justify-content: flex-start; }
- @media screen and (max-width: 768px) {
- .level-left + .level-right {
- margin-top: 1.5rem; } }
- @media screen and (min-width: 769px), print {
- .level-left {
- display: flex; } }
-.level-right {
- align-items: center;
- justify-content: flex-end; }
- @media screen and (min-width: 769px), print {
- .level-right {
- display: flex; } }
-.list {
- background-color: white;
- border-radius: 4px;
- box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); }
-
-.list-item {
- display: block;
- padding: 0.5em 1em; }
- .list-item:not(a) {
- color: #222222; }
- .list-item:first-child {
- border-top-left-radius: 4px;
- border-top-right-radius: 4px; }
- .list-item:last-child {
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px; }
- .list-item:not(:last-child) {
- border-bottom: 1px solid #dbdbdb; }
- .list-item.is-active {
- background-color: #2e63b8;
- color: #fff; }
-
-a.list-item {
- background-color: whitesmoke;
- cursor: pointer; }
-
-.media {
- align-items: flex-start;
- display: flex;
- text-align: left; }
- .media .content:not(:last-child) {
- margin-bottom: 0.75rem; }
- .media .media {
- border-top: 1px solid rgba(219, 219, 219, 0.5);
- display: flex;
- padding-top: 0.75rem; }
- .media .media .content:not(:last-child),
- .media .media .control:not(:last-child) {
- margin-bottom: 0.5rem; }
- .media .media .media {
- padding-top: 0.5rem; }
- .media .media .media + .media {
- margin-top: 0.5rem; }
- .media + .media {
- border-top: 1px solid rgba(219, 219, 219, 0.5);
- margin-top: 1rem;
- padding-top: 1rem; }
- .media.is-large + .media {
- margin-top: 1.5rem;
- padding-top: 1.5rem; }
-
-.media-left,
-.media-right {
- flex-basis: auto;
- flex-grow: 0;
- flex-shrink: 0; }
-
-.media-left {
- margin-right: 1rem; }
-
-.media-right {
- margin-left: 1rem; }
-
-.media-content {
- flex-basis: auto;
- flex-grow: 1;
- flex-shrink: 1;
- text-align: left; }
-
-@media screen and (max-width: 768px) {
- .media-content {
- overflow-x: auto; } }
-
-.menu {
- font-size: 1rem; }
- .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu {
- font-size: 0.75rem; }
- .menu.is-medium {
- font-size: 1.25rem; }
- .menu.is-large {
- font-size: 1.5rem; }
-
-.menu-list {
- line-height: 1.25; }
- .menu-list a {
- border-radius: 2px;
- color: #222222;
- display: block;
- padding: 0.5em 0.75em; }
- .menu-list a:hover {
- background-color: whitesmoke;
- color: #222222; }
- .menu-list a.is-active {
- background-color: #2e63b8;
- color: #fff; }
- .menu-list li ul {
- border-left: 1px solid #dbdbdb;
- margin: 0.75em;
- padding-left: 0.75em; }
-
-.menu-label {
- color: #6b6b6b;
- font-size: 0.75em;
- letter-spacing: 0.1em;
- text-transform: uppercase; }
- .menu-label:not(:first-child) {
- margin-top: 1em; }
- .menu-label:not(:last-child) {
- margin-bottom: 1em; }
-
-.message {
- background-color: whitesmoke;
- border-radius: 4px;
- font-size: 1rem; }
- .message strong {
- color: currentColor; }
- .message a:not(.button):not(.tag):not(.dropdown-item) {
- color: currentColor;
- text-decoration: underline; }
- .message.is-small, #documenter .docs-sidebar form.docs-search > input.message {
- font-size: 0.75rem; }
- .message.is-medium {
- font-size: 1.25rem; }
- .message.is-large {
- font-size: 1.5rem; }
- .message.is-white {
- background-color: white; }
- .message.is-white .message-header {
- background-color: white;
- color: #0a0a0a; }
- .message.is-white .message-body {
- border-color: white;
- color: #4d4d4d; }
- .message.is-black {
- background-color: #fafafa; }
- .message.is-black .message-header {
- background-color: #0a0a0a;
- color: white; }
- .message.is-black .message-body {
- border-color: #0a0a0a;
- color: #090909; }
- .message.is-light {
- background-color: #fafafa; }
- .message.is-light .message-header {
- background-color: whitesmoke;
- color: #363636; }
- .message.is-light .message-body {
- border-color: whitesmoke;
- color: #505050; }
- .message.is-dark, .content kbd.message {
- background-color: #fafafa; }
- .message.is-dark .message-header, .content kbd.message .message-header {
- background-color: #363636;
- color: whitesmoke; }
- .message.is-dark .message-body, .content kbd.message .message-body {
- border-color: #363636;
- color: #2a2a2a; }
- .message.is-primary, .docstring > section > a.message.docs-sourcelink {
- background-color: #f6fbfd; }
- .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header {
- background-color: #4eb5de;
- color: #fff; }
- .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body {
- border-color: #4eb5de;
- color: #1f556a; }
- .message.is-link {
- background-color: #f7f9fd; }
- .message.is-link .message-header {
- background-color: #2e63b8;
- color: #fff; }
- .message.is-link .message-body {
- border-color: #2e63b8;
- color: #264981; }
- .message.is-info {
- background-color: #f6fbfe; }
- .message.is-info .message-header {
- background-color: #209cee;
- color: #fff; }
- .message.is-info .message-body {
- border-color: #209cee;
- color: #12537d; }
- .message.is-success {
- background-color: #f6fdf9; }
- .message.is-success .message-header {
- background-color: #22c35b;
- color: #fff; }
- .message.is-success .message-body {
- border-color: #22c35b;
- color: #0f361d; }
- .message.is-warning {
- background-color: #fffdf5; }
- .message.is-warning .message-header {
- background-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); }
- .message.is-warning .message-body {
- border-color: #ffdd57;
- color: #3c3108; }
- .message.is-danger {
- background-color: #fff5f5; }
- .message.is-danger .message-header {
- background-color: #da0b00;
- color: #fff; }
- .message.is-danger .message-body {
- border-color: #da0b00;
- color: #9b0c04; }
-
-.message-header {
- align-items: center;
- background-color: #222222;
- border-radius: 4px 4px 0 0;
- color: #fff;
- display: flex;
- font-weight: 700;
- justify-content: space-between;
- line-height: 1.25;
- padding: 0.75em 1em;
- position: relative; }
- .message-header .delete {
- flex-grow: 0;
- flex-shrink: 0;
- margin-left: 0.75em; }
- .message-header + .message-body {
- border-width: 0;
- border-top-left-radius: 0;
- border-top-right-radius: 0; }
-
-.message-body {
- border-color: #dbdbdb;
- border-radius: 4px;
- border-style: solid;
- border-width: 0 0 0 4px;
- color: #222222;
- padding: 1.25em 1.5em; }
- .message-body code,
- .message-body pre {
- background-color: white; }
- .message-body pre code {
- background-color: transparent; }
-
-.modal {
- align-items: center;
- display: none;
- flex-direction: column;
- justify-content: center;
- overflow: hidden;
- position: fixed;
- z-index: 40; }
- .modal.is-active {
- display: flex; }
-
-.modal-background {
- background-color: rgba(10, 10, 10, 0.86); }
-
-.modal-content,
-.modal-card {
- margin: 0 20px;
- max-height: calc(100vh - 160px);
- overflow: auto;
- position: relative;
- width: 100%; }
- @media screen and (min-width: 769px), print {
- .modal-content,
- .modal-card {
- margin: 0 auto;
- max-height: calc(100vh - 40px);
- width: 640px; } }
-.modal-close {
- background: none;
- height: 40px;
- position: fixed;
- right: 20px;
- top: 20px;
- width: 40px; }
-
-.modal-card {
- display: flex;
- flex-direction: column;
- max-height: calc(100vh - 40px);
- overflow: hidden;
- -ms-overflow-y: visible; }
-
-.modal-card-head,
-.modal-card-foot {
- align-items: center;
- background-color: whitesmoke;
- display: flex;
- flex-shrink: 0;
- justify-content: flex-start;
- padding: 20px;
- position: relative; }
-
-.modal-card-head {
- border-bottom: 1px solid #dbdbdb;
- border-top-left-radius: 6px;
- border-top-right-radius: 6px; }
-
-.modal-card-title {
- color: #222222;
- flex-grow: 1;
- flex-shrink: 0;
- font-size: 1.5rem;
- line-height: 1; }
-
-.modal-card-foot {
- border-bottom-left-radius: 6px;
- border-bottom-right-radius: 6px;
- border-top: 1px solid #dbdbdb; }
- .modal-card-foot .button:not(:last-child) {
- margin-right: 0.5em; }
-
-.modal-card-body {
- -webkit-overflow-scrolling: touch;
- background-color: white;
- flex-grow: 1;
- flex-shrink: 1;
- overflow: auto;
- padding: 20px; }
-
-.navbar {
- background-color: white;
- min-height: 3.25rem;
- position: relative;
- z-index: 30; }
- .navbar.is-white {
- background-color: white;
- color: #0a0a0a; }
- .navbar.is-white .navbar-brand > .navbar-item,
- .navbar.is-white .navbar-brand .navbar-link {
- color: #0a0a0a; }
- .navbar.is-white .navbar-brand > a.navbar-item:focus, .navbar.is-white .navbar-brand > a.navbar-item:hover, .navbar.is-white .navbar-brand > a.navbar-item.is-active,
- .navbar.is-white .navbar-brand .navbar-link:focus,
- .navbar.is-white .navbar-brand .navbar-link:hover,
- .navbar.is-white .navbar-brand .navbar-link.is-active {
- background-color: #f2f2f2;
- color: #0a0a0a; }
- .navbar.is-white .navbar-brand .navbar-link::after {
- border-color: #0a0a0a; }
- .navbar.is-white .navbar-burger {
- color: #0a0a0a; }
- @media screen and (min-width: 1056px) {
- .navbar.is-white .navbar-start > .navbar-item,
- .navbar.is-white .navbar-start .navbar-link,
- .navbar.is-white .navbar-end > .navbar-item,
- .navbar.is-white .navbar-end .navbar-link {
- color: #0a0a0a; }
- .navbar.is-white .navbar-start > a.navbar-item:focus, .navbar.is-white .navbar-start > a.navbar-item:hover, .navbar.is-white .navbar-start > a.navbar-item.is-active,
- .navbar.is-white .navbar-start .navbar-link:focus,
- .navbar.is-white .navbar-start .navbar-link:hover,
- .navbar.is-white .navbar-start .navbar-link.is-active,
- .navbar.is-white .navbar-end > a.navbar-item:focus,
- .navbar.is-white .navbar-end > a.navbar-item:hover,
- .navbar.is-white .navbar-end > a.navbar-item.is-active,
- .navbar.is-white .navbar-end .navbar-link:focus,
- .navbar.is-white .navbar-end .navbar-link:hover,
- .navbar.is-white .navbar-end .navbar-link.is-active {
- background-color: #f2f2f2;
- color: #0a0a0a; }
- .navbar.is-white .navbar-start .navbar-link::after,
- .navbar.is-white .navbar-end .navbar-link::after {
- border-color: #0a0a0a; }
- .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #f2f2f2;
- color: #0a0a0a; }
- .navbar.is-white .navbar-dropdown a.navbar-item.is-active {
- background-color: white;
- color: #0a0a0a; } }
- .navbar.is-black {
- background-color: #0a0a0a;
- color: white; }
- .navbar.is-black .navbar-brand > .navbar-item,
- .navbar.is-black .navbar-brand .navbar-link {
- color: white; }
- .navbar.is-black .navbar-brand > a.navbar-item:focus, .navbar.is-black .navbar-brand > a.navbar-item:hover, .navbar.is-black .navbar-brand > a.navbar-item.is-active,
- .navbar.is-black .navbar-brand .navbar-link:focus,
- .navbar.is-black .navbar-brand .navbar-link:hover,
- .navbar.is-black .navbar-brand .navbar-link.is-active {
- background-color: black;
- color: white; }
- .navbar.is-black .navbar-brand .navbar-link::after {
- border-color: white; }
- .navbar.is-black .navbar-burger {
- color: white; }
- @media screen and (min-width: 1056px) {
- .navbar.is-black .navbar-start > .navbar-item,
- .navbar.is-black .navbar-start .navbar-link,
- .navbar.is-black .navbar-end > .navbar-item,
- .navbar.is-black .navbar-end .navbar-link {
- color: white; }
- .navbar.is-black .navbar-start > a.navbar-item:focus, .navbar.is-black .navbar-start > a.navbar-item:hover, .navbar.is-black .navbar-start > a.navbar-item.is-active,
- .navbar.is-black .navbar-start .navbar-link:focus,
- .navbar.is-black .navbar-start .navbar-link:hover,
- .navbar.is-black .navbar-start .navbar-link.is-active,
- .navbar.is-black .navbar-end > a.navbar-item:focus,
- .navbar.is-black .navbar-end > a.navbar-item:hover,
- .navbar.is-black .navbar-end > a.navbar-item.is-active,
- .navbar.is-black .navbar-end .navbar-link:focus,
- .navbar.is-black .navbar-end .navbar-link:hover,
- .navbar.is-black .navbar-end .navbar-link.is-active {
- background-color: black;
- color: white; }
- .navbar.is-black .navbar-start .navbar-link::after,
- .navbar.is-black .navbar-end .navbar-link::after {
- border-color: white; }
- .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: black;
- color: white; }
- .navbar.is-black .navbar-dropdown a.navbar-item.is-active {
- background-color: #0a0a0a;
- color: white; } }
- .navbar.is-light {
- background-color: whitesmoke;
- color: #363636; }
- .navbar.is-light .navbar-brand > .navbar-item,
- .navbar.is-light .navbar-brand .navbar-link {
- color: #363636; }
- .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active,
- .navbar.is-light .navbar-brand .navbar-link:focus,
- .navbar.is-light .navbar-brand .navbar-link:hover,
- .navbar.is-light .navbar-brand .navbar-link.is-active {
- background-color: #e8e8e8;
- color: #363636; }
- .navbar.is-light .navbar-brand .navbar-link::after {
- border-color: #363636; }
- .navbar.is-light .navbar-burger {
- color: #363636; }
- @media screen and (min-width: 1056px) {
- .navbar.is-light .navbar-start > .navbar-item,
- .navbar.is-light .navbar-start .navbar-link,
- .navbar.is-light .navbar-end > .navbar-item,
- .navbar.is-light .navbar-end .navbar-link {
- color: #363636; }
- .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active,
- .navbar.is-light .navbar-start .navbar-link:focus,
- .navbar.is-light .navbar-start .navbar-link:hover,
- .navbar.is-light .navbar-start .navbar-link.is-active,
- .navbar.is-light .navbar-end > a.navbar-item:focus,
- .navbar.is-light .navbar-end > a.navbar-item:hover,
- .navbar.is-light .navbar-end > a.navbar-item.is-active,
- .navbar.is-light .navbar-end .navbar-link:focus,
- .navbar.is-light .navbar-end .navbar-link:hover,
- .navbar.is-light .navbar-end .navbar-link.is-active {
- background-color: #e8e8e8;
- color: #363636; }
- .navbar.is-light .navbar-start .navbar-link::after,
- .navbar.is-light .navbar-end .navbar-link::after {
- border-color: #363636; }
- .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #e8e8e8;
- color: #363636; }
- .navbar.is-light .navbar-dropdown a.navbar-item.is-active {
- background-color: whitesmoke;
- color: #363636; } }
- .navbar.is-dark, .content kbd.navbar {
- background-color: #363636;
- color: whitesmoke; }
- .navbar.is-dark .navbar-brand > .navbar-item, .content kbd.navbar .navbar-brand > .navbar-item,
- .navbar.is-dark .navbar-brand .navbar-link,
- .content kbd.navbar .navbar-brand .navbar-link {
- color: whitesmoke; }
- .navbar.is-dark .navbar-brand > a.navbar-item:focus, .content kbd.navbar .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .content kbd.navbar .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active, .content kbd.navbar .navbar-brand > a.navbar-item.is-active,
- .navbar.is-dark .navbar-brand .navbar-link:focus,
- .content kbd.navbar .navbar-brand .navbar-link:focus,
- .navbar.is-dark .navbar-brand .navbar-link:hover,
- .content kbd.navbar .navbar-brand .navbar-link:hover,
- .navbar.is-dark .navbar-brand .navbar-link.is-active,
- .content kbd.navbar .navbar-brand .navbar-link.is-active {
- background-color: #292929;
- color: whitesmoke; }
- .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after {
- border-color: whitesmoke; }
- .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger {
- color: whitesmoke; }
- @media screen and (min-width: 1056px) {
- .navbar.is-dark .navbar-start > .navbar-item, .content kbd.navbar .navbar-start > .navbar-item,
- .navbar.is-dark .navbar-start .navbar-link,
- .content kbd.navbar .navbar-start .navbar-link,
- .navbar.is-dark .navbar-end > .navbar-item,
- .content kbd.navbar .navbar-end > .navbar-item,
- .navbar.is-dark .navbar-end .navbar-link,
- .content kbd.navbar .navbar-end .navbar-link {
- color: whitesmoke; }
- .navbar.is-dark .navbar-start > a.navbar-item:focus, .content kbd.navbar .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .content kbd.navbar .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active, .content kbd.navbar .navbar-start > a.navbar-item.is-active,
- .navbar.is-dark .navbar-start .navbar-link:focus,
- .content kbd.navbar .navbar-start .navbar-link:focus,
- .navbar.is-dark .navbar-start .navbar-link:hover,
- .content kbd.navbar .navbar-start .navbar-link:hover,
- .navbar.is-dark .navbar-start .navbar-link.is-active,
- .content kbd.navbar .navbar-start .navbar-link.is-active,
- .navbar.is-dark .navbar-end > a.navbar-item:focus,
- .content kbd.navbar .navbar-end > a.navbar-item:focus,
- .navbar.is-dark .navbar-end > a.navbar-item:hover,
- .content kbd.navbar .navbar-end > a.navbar-item:hover,
- .navbar.is-dark .navbar-end > a.navbar-item.is-active,
- .content kbd.navbar .navbar-end > a.navbar-item.is-active,
- .navbar.is-dark .navbar-end .navbar-link:focus,
- .content kbd.navbar .navbar-end .navbar-link:focus,
- .navbar.is-dark .navbar-end .navbar-link:hover,
- .content kbd.navbar .navbar-end .navbar-link:hover,
- .navbar.is-dark .navbar-end .navbar-link.is-active,
- .content kbd.navbar .navbar-end .navbar-link.is-active {
- background-color: #292929;
- color: whitesmoke; }
- .navbar.is-dark .navbar-start .navbar-link::after, .content kbd.navbar .navbar-start .navbar-link::after,
- .navbar.is-dark .navbar-end .navbar-link::after,
- .content kbd.navbar .navbar-end .navbar-link::after {
- border-color: whitesmoke; }
- .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
- .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,
- .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #292929;
- color: whitesmoke; }
- .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active {
- background-color: #363636;
- color: whitesmoke; } }
- .navbar.is-primary, .docstring > section > a.navbar.docs-sourcelink {
- background-color: #4eb5de;
- color: #fff; }
- .navbar.is-primary .navbar-brand > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item,
- .navbar.is-primary .navbar-brand .navbar-link,
- .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link {
- color: #fff; }
- .navbar.is-primary .navbar-brand > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, .navbar.is-primary .navbar-brand > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, .navbar.is-primary .navbar-brand > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active,
- .navbar.is-primary .navbar-brand .navbar-link:focus,
- .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,
- .navbar.is-primary .navbar-brand .navbar-link:hover,
- .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,
- .navbar.is-primary .navbar-brand .navbar-link.is-active,
- .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active {
- background-color: #39acda;
- color: #fff; }
- .navbar.is-primary .navbar-brand .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after {
- border-color: #fff; }
- .navbar.is-primary .navbar-burger, .docstring > section > a.navbar.docs-sourcelink .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- .navbar.is-primary .navbar-start > .navbar-item, .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item,
- .navbar.is-primary .navbar-start .navbar-link,
- .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link,
- .navbar.is-primary .navbar-end > .navbar-item,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item,
- .navbar.is-primary .navbar-end .navbar-link,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link {
- color: #fff; }
- .navbar.is-primary .navbar-start > a.navbar-item:focus, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, .navbar.is-primary .navbar-start > a.navbar-item:hover, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, .navbar.is-primary .navbar-start > a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active,
- .navbar.is-primary .navbar-start .navbar-link:focus,
- .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,
- .navbar.is-primary .navbar-start .navbar-link:hover,
- .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,
- .navbar.is-primary .navbar-start .navbar-link.is-active,
- .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,
- .navbar.is-primary .navbar-end > a.navbar-item:focus,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus,
- .navbar.is-primary .navbar-end > a.navbar-item:hover,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover,
- .navbar.is-primary .navbar-end > a.navbar-item.is-active,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active,
- .navbar.is-primary .navbar-end .navbar-link:focus,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,
- .navbar.is-primary .navbar-end .navbar-link:hover,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,
- .navbar.is-primary .navbar-end .navbar-link.is-active,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active {
- background-color: #39acda;
- color: #fff; }
- .navbar.is-primary .navbar-start .navbar-link::after, .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after,
- .navbar.is-primary .navbar-end .navbar-link::after,
- .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after {
- border-color: #fff; }
- .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,
- .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,
- .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #39acda;
- color: #fff; }
- .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active {
- background-color: #4eb5de;
- color: #fff; } }
- .navbar.is-link {
- background-color: #2e63b8;
- color: #fff; }
- .navbar.is-link .navbar-brand > .navbar-item,
- .navbar.is-link .navbar-brand .navbar-link {
- color: #fff; }
- .navbar.is-link .navbar-brand > a.navbar-item:focus, .navbar.is-link .navbar-brand > a.navbar-item:hover, .navbar.is-link .navbar-brand > a.navbar-item.is-active,
- .navbar.is-link .navbar-brand .navbar-link:focus,
- .navbar.is-link .navbar-brand .navbar-link:hover,
- .navbar.is-link .navbar-brand .navbar-link.is-active {
- background-color: #2958a4;
- color: #fff; }
- .navbar.is-link .navbar-brand .navbar-link::after {
- border-color: #fff; }
- .navbar.is-link .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- .navbar.is-link .navbar-start > .navbar-item,
- .navbar.is-link .navbar-start .navbar-link,
- .navbar.is-link .navbar-end > .navbar-item,
- .navbar.is-link .navbar-end .navbar-link {
- color: #fff; }
- .navbar.is-link .navbar-start > a.navbar-item:focus, .navbar.is-link .navbar-start > a.navbar-item:hover, .navbar.is-link .navbar-start > a.navbar-item.is-active,
- .navbar.is-link .navbar-start .navbar-link:focus,
- .navbar.is-link .navbar-start .navbar-link:hover,
- .navbar.is-link .navbar-start .navbar-link.is-active,
- .navbar.is-link .navbar-end > a.navbar-item:focus,
- .navbar.is-link .navbar-end > a.navbar-item:hover,
- .navbar.is-link .navbar-end > a.navbar-item.is-active,
- .navbar.is-link .navbar-end .navbar-link:focus,
- .navbar.is-link .navbar-end .navbar-link:hover,
- .navbar.is-link .navbar-end .navbar-link.is-active {
- background-color: #2958a4;
- color: #fff; }
- .navbar.is-link .navbar-start .navbar-link::after,
- .navbar.is-link .navbar-end .navbar-link::after {
- border-color: #fff; }
- .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #2958a4;
- color: #fff; }
- .navbar.is-link .navbar-dropdown a.navbar-item.is-active {
- background-color: #2e63b8;
- color: #fff; } }
- .navbar.is-info {
- background-color: #209cee;
- color: #fff; }
- .navbar.is-info .navbar-brand > .navbar-item,
- .navbar.is-info .navbar-brand .navbar-link {
- color: #fff; }
- .navbar.is-info .navbar-brand > a.navbar-item:focus, .navbar.is-info .navbar-brand > a.navbar-item:hover, .navbar.is-info .navbar-brand > a.navbar-item.is-active,
- .navbar.is-info .navbar-brand .navbar-link:focus,
- .navbar.is-info .navbar-brand .navbar-link:hover,
- .navbar.is-info .navbar-brand .navbar-link.is-active {
- background-color: #1190e3;
- color: #fff; }
- .navbar.is-info .navbar-brand .navbar-link::after {
- border-color: #fff; }
- .navbar.is-info .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- .navbar.is-info .navbar-start > .navbar-item,
- .navbar.is-info .navbar-start .navbar-link,
- .navbar.is-info .navbar-end > .navbar-item,
- .navbar.is-info .navbar-end .navbar-link {
- color: #fff; }
- .navbar.is-info .navbar-start > a.navbar-item:focus, .navbar.is-info .navbar-start > a.navbar-item:hover, .navbar.is-info .navbar-start > a.navbar-item.is-active,
- .navbar.is-info .navbar-start .navbar-link:focus,
- .navbar.is-info .navbar-start .navbar-link:hover,
- .navbar.is-info .navbar-start .navbar-link.is-active,
- .navbar.is-info .navbar-end > a.navbar-item:focus,
- .navbar.is-info .navbar-end > a.navbar-item:hover,
- .navbar.is-info .navbar-end > a.navbar-item.is-active,
- .navbar.is-info .navbar-end .navbar-link:focus,
- .navbar.is-info .navbar-end .navbar-link:hover,
- .navbar.is-info .navbar-end .navbar-link.is-active {
- background-color: #1190e3;
- color: #fff; }
- .navbar.is-info .navbar-start .navbar-link::after,
- .navbar.is-info .navbar-end .navbar-link::after {
- border-color: #fff; }
- .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #1190e3;
- color: #fff; }
- .navbar.is-info .navbar-dropdown a.navbar-item.is-active {
- background-color: #209cee;
- color: #fff; } }
- .navbar.is-success {
- background-color: #22c35b;
- color: #fff; }
- .navbar.is-success .navbar-brand > .navbar-item,
- .navbar.is-success .navbar-brand .navbar-link {
- color: #fff; }
- .navbar.is-success .navbar-brand > a.navbar-item:focus, .navbar.is-success .navbar-brand > a.navbar-item:hover, .navbar.is-success .navbar-brand > a.navbar-item.is-active,
- .navbar.is-success .navbar-brand .navbar-link:focus,
- .navbar.is-success .navbar-brand .navbar-link:hover,
- .navbar.is-success .navbar-brand .navbar-link.is-active {
- background-color: #1ead51;
- color: #fff; }
- .navbar.is-success .navbar-brand .navbar-link::after {
- border-color: #fff; }
- .navbar.is-success .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- .navbar.is-success .navbar-start > .navbar-item,
- .navbar.is-success .navbar-start .navbar-link,
- .navbar.is-success .navbar-end > .navbar-item,
- .navbar.is-success .navbar-end .navbar-link {
- color: #fff; }
- .navbar.is-success .navbar-start > a.navbar-item:focus, .navbar.is-success .navbar-start > a.navbar-item:hover, .navbar.is-success .navbar-start > a.navbar-item.is-active,
- .navbar.is-success .navbar-start .navbar-link:focus,
- .navbar.is-success .navbar-start .navbar-link:hover,
- .navbar.is-success .navbar-start .navbar-link.is-active,
- .navbar.is-success .navbar-end > a.navbar-item:focus,
- .navbar.is-success .navbar-end > a.navbar-item:hover,
- .navbar.is-success .navbar-end > a.navbar-item.is-active,
- .navbar.is-success .navbar-end .navbar-link:focus,
- .navbar.is-success .navbar-end .navbar-link:hover,
- .navbar.is-success .navbar-end .navbar-link.is-active {
- background-color: #1ead51;
- color: #fff; }
- .navbar.is-success .navbar-start .navbar-link::after,
- .navbar.is-success .navbar-end .navbar-link::after {
- border-color: #fff; }
- .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #1ead51;
- color: #fff; }
- .navbar.is-success .navbar-dropdown a.navbar-item.is-active {
- background-color: #22c35b;
- color: #fff; } }
- .navbar.is-warning {
- background-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); }
- .navbar.is-warning .navbar-brand > .navbar-item,
- .navbar.is-warning .navbar-brand .navbar-link {
- color: rgba(0, 0, 0, 0.7); }
- .navbar.is-warning .navbar-brand > a.navbar-item:focus, .navbar.is-warning .navbar-brand > a.navbar-item:hover, .navbar.is-warning .navbar-brand > a.navbar-item.is-active,
- .navbar.is-warning .navbar-brand .navbar-link:focus,
- .navbar.is-warning .navbar-brand .navbar-link:hover,
- .navbar.is-warning .navbar-brand .navbar-link.is-active {
- background-color: #ffd83e;
- color: rgba(0, 0, 0, 0.7); }
- .navbar.is-warning .navbar-brand .navbar-link::after {
- border-color: rgba(0, 0, 0, 0.7); }
- .navbar.is-warning .navbar-burger {
- color: rgba(0, 0, 0, 0.7); }
- @media screen and (min-width: 1056px) {
- .navbar.is-warning .navbar-start > .navbar-item,
- .navbar.is-warning .navbar-start .navbar-link,
- .navbar.is-warning .navbar-end > .navbar-item,
- .navbar.is-warning .navbar-end .navbar-link {
- color: rgba(0, 0, 0, 0.7); }
- .navbar.is-warning .navbar-start > a.navbar-item:focus, .navbar.is-warning .navbar-start > a.navbar-item:hover, .navbar.is-warning .navbar-start > a.navbar-item.is-active,
- .navbar.is-warning .navbar-start .navbar-link:focus,
- .navbar.is-warning .navbar-start .navbar-link:hover,
- .navbar.is-warning .navbar-start .navbar-link.is-active,
- .navbar.is-warning .navbar-end > a.navbar-item:focus,
- .navbar.is-warning .navbar-end > a.navbar-item:hover,
- .navbar.is-warning .navbar-end > a.navbar-item.is-active,
- .navbar.is-warning .navbar-end .navbar-link:focus,
- .navbar.is-warning .navbar-end .navbar-link:hover,
- .navbar.is-warning .navbar-end .navbar-link.is-active {
- background-color: #ffd83e;
- color: rgba(0, 0, 0, 0.7); }
- .navbar.is-warning .navbar-start .navbar-link::after,
- .navbar.is-warning .navbar-end .navbar-link::after {
- border-color: rgba(0, 0, 0, 0.7); }
- .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #ffd83e;
- color: rgba(0, 0, 0, 0.7); }
- .navbar.is-warning .navbar-dropdown a.navbar-item.is-active {
- background-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); } }
- .navbar.is-danger {
- background-color: #da0b00;
- color: #fff; }
- .navbar.is-danger .navbar-brand > .navbar-item,
- .navbar.is-danger .navbar-brand .navbar-link {
- color: #fff; }
- .navbar.is-danger .navbar-brand > a.navbar-item:focus, .navbar.is-danger .navbar-brand > a.navbar-item:hover, .navbar.is-danger .navbar-brand > a.navbar-item.is-active,
- .navbar.is-danger .navbar-brand .navbar-link:focus,
- .navbar.is-danger .navbar-brand .navbar-link:hover,
- .navbar.is-danger .navbar-brand .navbar-link.is-active {
- background-color: #c10a00;
- color: #fff; }
- .navbar.is-danger .navbar-brand .navbar-link::after {
- border-color: #fff; }
- .navbar.is-danger .navbar-burger {
- color: #fff; }
- @media screen and (min-width: 1056px) {
- .navbar.is-danger .navbar-start > .navbar-item,
- .navbar.is-danger .navbar-start .navbar-link,
- .navbar.is-danger .navbar-end > .navbar-item,
- .navbar.is-danger .navbar-end .navbar-link {
- color: #fff; }
- .navbar.is-danger .navbar-start > a.navbar-item:focus, .navbar.is-danger .navbar-start > a.navbar-item:hover, .navbar.is-danger .navbar-start > a.navbar-item.is-active,
- .navbar.is-danger .navbar-start .navbar-link:focus,
- .navbar.is-danger .navbar-start .navbar-link:hover,
- .navbar.is-danger .navbar-start .navbar-link.is-active,
- .navbar.is-danger .navbar-end > a.navbar-item:focus,
- .navbar.is-danger .navbar-end > a.navbar-item:hover,
- .navbar.is-danger .navbar-end > a.navbar-item.is-active,
- .navbar.is-danger .navbar-end .navbar-link:focus,
- .navbar.is-danger .navbar-end .navbar-link:hover,
- .navbar.is-danger .navbar-end .navbar-link.is-active {
- background-color: #c10a00;
- color: #fff; }
- .navbar.is-danger .navbar-start .navbar-link::after,
- .navbar.is-danger .navbar-end .navbar-link::after {
- border-color: #fff; }
- .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,
- .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,
- .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #c10a00;
- color: #fff; }
- .navbar.is-danger .navbar-dropdown a.navbar-item.is-active {
- background-color: #da0b00;
- color: #fff; } }
- .navbar > .container {
- align-items: stretch;
- display: flex;
- min-height: 3.25rem;
- width: 100%; }
- .navbar.has-shadow {
- box-shadow: 0 2px 0 0 whitesmoke; }
- .navbar.is-fixed-bottom, .navbar.is-fixed-top {
- left: 0;
- position: fixed;
- right: 0;
- z-index: 30; }
- .navbar.is-fixed-bottom {
- bottom: 0; }
- .navbar.is-fixed-bottom.has-shadow {
- box-shadow: 0 -2px 0 0 whitesmoke; }
- .navbar.is-fixed-top {
- top: 0; }
-
-html.has-navbar-fixed-top,
-body.has-navbar-fixed-top {
- padding-top: 3.25rem; }
-
-html.has-navbar-fixed-bottom,
-body.has-navbar-fixed-bottom {
- padding-bottom: 3.25rem; }
-
-.navbar-brand,
-.navbar-tabs {
- align-items: stretch;
- display: flex;
- flex-shrink: 0;
- min-height: 3.25rem; }
-
-.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover {
- background-color: transparent; }
-
-.navbar-tabs {
- -webkit-overflow-scrolling: touch;
- max-width: 100vw;
- overflow-x: auto;
- overflow-y: hidden; }
-
-.navbar-burger {
- color: #4a4a4a;
- cursor: pointer;
- display: block;
- height: 3.25rem;
- position: relative;
- width: 3.25rem;
- margin-left: auto; }
- .navbar-burger span {
- background-color: currentColor;
- display: block;
- height: 1px;
- left: calc(50% - 8px);
- position: absolute;
- transform-origin: center;
- transition-duration: 86ms;
- transition-property: background-color, opacity, transform;
- transition-timing-function: ease-out;
- width: 16px; }
- .navbar-burger span:nth-child(1) {
- top: calc(50% - 6px); }
- .navbar-burger span:nth-child(2) {
- top: calc(50% - 1px); }
- .navbar-burger span:nth-child(3) {
- top: calc(50% + 4px); }
- .navbar-burger:hover {
- background-color: rgba(0, 0, 0, 0.05); }
- .navbar-burger.is-active span:nth-child(1) {
- transform: translateY(5px) rotate(45deg); }
- .navbar-burger.is-active span:nth-child(2) {
- opacity: 0; }
- .navbar-burger.is-active span:nth-child(3) {
- transform: translateY(-5px) rotate(-45deg); }
-
-.navbar-menu {
- display: none; }
-
-.navbar-item,
-.navbar-link {
- color: #4a4a4a;
- display: block;
- line-height: 1.5;
- padding: 0.5rem 0.75rem;
- position: relative; }
- .navbar-item .icon:only-child,
- .navbar-link .icon:only-child {
- margin-left: -0.25rem;
- margin-right: -0.25rem; }
-
-a.navbar-item,
-.navbar-link {
- cursor: pointer; }
- a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active,
- .navbar-link:focus,
- .navbar-link:focus-within,
- .navbar-link:hover,
- .navbar-link.is-active {
- background-color: #fafafa;
- color: #2e63b8; }
-
-.navbar-item {
- display: block;
- flex-grow: 0;
- flex-shrink: 0; }
- .navbar-item img {
- max-height: 1.75rem; }
- .navbar-item.has-dropdown {
- padding: 0; }
- .navbar-item.is-expanded {
- flex-grow: 1;
- flex-shrink: 1; }
- .navbar-item.is-tab {
- border-bottom: 1px solid transparent;
- min-height: 3.25rem;
- padding-bottom: calc(0.5rem - 1px); }
- .navbar-item.is-tab:focus, .navbar-item.is-tab:hover {
- background-color: transparent;
- border-bottom-color: #2e63b8; }
- .navbar-item.is-tab.is-active {
- background-color: transparent;
- border-bottom-color: #2e63b8;
- border-bottom-style: solid;
- border-bottom-width: 3px;
- color: #2e63b8;
- padding-bottom: calc(0.5rem - 3px); }
-
-.navbar-content {
- flex-grow: 1;
- flex-shrink: 1; }
-
-.navbar-link:not(.is-arrowless) {
- padding-right: 2.5em; }
- .navbar-link:not(.is-arrowless)::after {
- border-color: #2e63b8;
- margin-top: -0.375em;
- right: 1.125em; }
-
-.navbar-dropdown {
- font-size: 0.875rem;
- padding-bottom: 0.5rem;
- padding-top: 0.5rem; }
- .navbar-dropdown .navbar-item {
- padding-left: 1.5rem;
- padding-right: 1.5rem; }
-
-.navbar-divider {
- background-color: whitesmoke;
- border: none;
- display: none;
- height: 2px;
- margin: 0.5rem 0; }
-
-@media screen and (max-width: 1055px) {
- .navbar > .container {
- display: block; }
- .navbar-brand .navbar-item,
- .navbar-tabs .navbar-item {
- align-items: center;
- display: flex; }
- .navbar-link::after {
- display: none; }
- .navbar-menu {
- background-color: white;
- box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
- padding: 0.5rem 0; }
- .navbar-menu.is-active {
- display: block; }
- .navbar.is-fixed-bottom-touch, .navbar.is-fixed-top-touch {
- left: 0;
- position: fixed;
- right: 0;
- z-index: 30; }
- .navbar.is-fixed-bottom-touch {
- bottom: 0; }
- .navbar.is-fixed-bottom-touch.has-shadow {
- box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
- .navbar.is-fixed-top-touch {
- top: 0; }
- .navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu {
- -webkit-overflow-scrolling: touch;
- max-height: calc(100vh - 3.25rem);
- overflow: auto; }
- html.has-navbar-fixed-top-touch,
- body.has-navbar-fixed-top-touch {
- padding-top: 3.25rem; }
- html.has-navbar-fixed-bottom-touch,
- body.has-navbar-fixed-bottom-touch {
- padding-bottom: 3.25rem; } }
-
-@media screen and (min-width: 1056px) {
- .navbar,
- .navbar-menu,
- .navbar-start,
- .navbar-end {
- align-items: stretch;
- display: flex; }
- .navbar {
- min-height: 3.25rem; }
- .navbar.is-spaced {
- padding: 1rem 2rem; }
- .navbar.is-spaced .navbar-start,
- .navbar.is-spaced .navbar-end {
- align-items: center; }
- .navbar.is-spaced a.navbar-item,
- .navbar.is-spaced .navbar-link {
- border-radius: 4px; }
- .navbar.is-transparent a.navbar-item:focus, .navbar.is-transparent a.navbar-item:hover, .navbar.is-transparent a.navbar-item.is-active,
- .navbar.is-transparent .navbar-link:focus,
- .navbar.is-transparent .navbar-link:hover,
- .navbar.is-transparent .navbar-link.is-active {
- background-color: transparent !important; }
- .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link {
- background-color: transparent !important; }
- .navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover {
- background-color: whitesmoke;
- color: #0a0a0a; }
- .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active {
- background-color: whitesmoke;
- color: #2e63b8; }
- .navbar-burger {
- display: none; }
- .navbar-item,
- .navbar-link {
- align-items: center;
- display: flex; }
- .navbar-item {
- display: flex; }
- .navbar-item.has-dropdown {
- align-items: stretch; }
- .navbar-item.has-dropdown-up .navbar-link::after {
- transform: rotate(135deg) translate(0.25em, -0.25em); }
- .navbar-item.has-dropdown-up .navbar-dropdown {
- border-bottom: 2px solid #dbdbdb;
- border-radius: 6px 6px 0 0;
- border-top: none;
- bottom: 100%;
- box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
- top: auto; }
- .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown {
- display: block; }
- .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed {
- opacity: 1;
- pointer-events: auto;
- transform: translateY(0); }
- .navbar-menu {
- flex-grow: 1;
- flex-shrink: 0; }
- .navbar-start {
- justify-content: flex-start;
- margin-right: auto; }
- .navbar-end {
- justify-content: flex-end;
- margin-left: auto; }
- .navbar-dropdown {
- background-color: white;
- border-bottom-left-radius: 6px;
- border-bottom-right-radius: 6px;
- border-top: 2px solid #dbdbdb;
- box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
- display: none;
- font-size: 0.875rem;
- left: 0;
- min-width: 100%;
- position: absolute;
- top: 100%;
- z-index: 20; }
- .navbar-dropdown .navbar-item {
- padding: 0.375rem 1rem;
- white-space: nowrap; }
- .navbar-dropdown a.navbar-item {
- padding-right: 3rem; }
- .navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover {
- background-color: whitesmoke;
- color: #0a0a0a; }
- .navbar-dropdown a.navbar-item.is-active {
- background-color: whitesmoke;
- color: #2e63b8; }
- .navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed {
- border-radius: 6px;
- border-top: none;
- box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
- display: block;
- opacity: 0;
- pointer-events: none;
- top: calc(100% + (-4px));
- transform: translateY(-5px);
- transition-duration: 86ms;
- transition-property: opacity, transform; }
- .navbar-dropdown.is-right {
- left: auto;
- right: 0; }
- .navbar-divider {
- display: block; }
- .navbar > .container .navbar-brand,
- .container > .navbar .navbar-brand {
- margin-left: -.75rem; }
- .navbar > .container .navbar-menu,
- .container > .navbar .navbar-menu {
- margin-right: -.75rem; }
- .navbar.is-fixed-bottom-desktop, .navbar.is-fixed-top-desktop {
- left: 0;
- position: fixed;
- right: 0;
- z-index: 30; }
- .navbar.is-fixed-bottom-desktop {
- bottom: 0; }
- .navbar.is-fixed-bottom-desktop.has-shadow {
- box-shadow: 0 -2px 3px rgba(10, 10, 10, 0.1); }
- .navbar.is-fixed-top-desktop {
- top: 0; }
- html.has-navbar-fixed-top-desktop,
- body.has-navbar-fixed-top-desktop {
- padding-top: 3.25rem; }
- html.has-navbar-fixed-bottom-desktop,
- body.has-navbar-fixed-bottom-desktop {
- padding-bottom: 3.25rem; }
- html.has-spaced-navbar-fixed-top,
- body.has-spaced-navbar-fixed-top {
- padding-top: 5.25rem; }
- html.has-spaced-navbar-fixed-bottom,
- body.has-spaced-navbar-fixed-bottom {
- padding-bottom: 5.25rem; }
- a.navbar-item.is-active,
- .navbar-link.is-active {
- color: #0a0a0a; }
- a.navbar-item.is-active:not(:focus):not(:hover),
- .navbar-link.is-active:not(:focus):not(:hover) {
- background-color: transparent; }
- .navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link {
- background-color: #fafafa; } }
-
-.hero.is-fullheight-with-navbar {
- min-height: calc(100vh - 3.25rem); }
-
-.pagination {
- font-size: 1rem;
- margin: -0.25rem; }
- .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination {
- font-size: 0.75rem; }
- .pagination.is-medium {
- font-size: 1.25rem; }
- .pagination.is-large {
- font-size: 1.5rem; }
- .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous,
- .pagination.is-rounded .pagination-next,
- #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next {
- padding-left: 1em;
- padding-right: 1em;
- border-radius: 290486px; }
- .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link {
- border-radius: 290486px; }
-
-.pagination,
-.pagination-list {
- align-items: center;
- display: flex;
- justify-content: center;
- text-align: center; }
-
-.pagination-previous,
-.pagination-next,
-.pagination-link,
-.pagination-ellipsis {
- font-size: 1em;
- justify-content: center;
- margin: 0.25rem;
- padding-left: 0.5em;
- padding-right: 0.5em;
- text-align: center; }
-
-.pagination-previous,
-.pagination-next,
-.pagination-link {
- border-color: #dbdbdb;
- color: #363636;
- min-width: 2.25em; }
- .pagination-previous:hover,
- .pagination-next:hover,
- .pagination-link:hover {
- border-color: #b5b5b5;
- color: #363636; }
- .pagination-previous:focus,
- .pagination-next:focus,
- .pagination-link:focus {
- border-color: #3c5dcd; }
- .pagination-previous:active,
- .pagination-next:active,
- .pagination-link:active {
- box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); }
- .pagination-previous[disabled],
- .pagination-next[disabled],
- .pagination-link[disabled] {
- background-color: #dbdbdb;
- border-color: #dbdbdb;
- box-shadow: none;
- color: #6b6b6b;
- opacity: 0.5; }
-
-.pagination-previous,
-.pagination-next {
- padding-left: 0.75em;
- padding-right: 0.75em;
- white-space: nowrap; }
-
-.pagination-link.is-current {
- background-color: #2e63b8;
- border-color: #2e63b8;
- color: #fff; }
-
-.pagination-ellipsis {
- color: #b5b5b5;
- pointer-events: none; }
-
-.pagination-list {
- flex-wrap: wrap; }
-
-@media screen and (max-width: 768px) {
- .pagination {
- flex-wrap: wrap; }
- .pagination-previous,
- .pagination-next {
- flex-grow: 1;
- flex-shrink: 1; }
- .pagination-list li {
- flex-grow: 1;
- flex-shrink: 1; } }
-
-@media screen and (min-width: 769px), print {
- .pagination-list {
- flex-grow: 1;
- flex-shrink: 1;
- justify-content: flex-start;
- order: 1; }
- .pagination-previous {
- order: 2; }
- .pagination-next {
- order: 3; }
- .pagination {
- justify-content: space-between; }
- .pagination.is-centered .pagination-previous {
- order: 1; }
- .pagination.is-centered .pagination-list {
- justify-content: center;
- order: 2; }
- .pagination.is-centered .pagination-next {
- order: 3; }
- .pagination.is-right .pagination-previous {
- order: 1; }
- .pagination.is-right .pagination-next {
- order: 2; }
- .pagination.is-right .pagination-list {
- justify-content: flex-end;
- order: 3; } }
-
-.panel {
- font-size: 1rem; }
- .panel:not(:last-child) {
- margin-bottom: 1.5rem; }
-
-.panel-heading,
-.panel-tabs,
-.panel-block {
- border-bottom: 1px solid #dbdbdb;
- border-left: 1px solid #dbdbdb;
- border-right: 1px solid #dbdbdb; }
- .panel-heading:first-child,
- .panel-tabs:first-child,
- .panel-block:first-child {
- border-top: 1px solid #dbdbdb; }
-
-.panel-heading {
- background-color: whitesmoke;
- border-radius: 4px 4px 0 0;
- color: #222222;
- font-size: 1.25em;
- font-weight: 300;
- line-height: 1.25;
- padding: 0.5em 0.75em; }
-
-.panel-tabs {
- align-items: flex-end;
- display: flex;
- font-size: 0.875em;
- justify-content: center; }
- .panel-tabs a {
- border-bottom: 1px solid #dbdbdb;
- margin-bottom: -1px;
- padding: 0.5em; }
- .panel-tabs a.is-active {
- border-bottom-color: #4a4a4a;
- color: #363636; }
-
-.panel-list a {
- color: #222222; }
- .panel-list a:hover {
- color: #2e63b8; }
-
-.panel-block {
- align-items: center;
- color: #222222;
- display: flex;
- justify-content: flex-start;
- padding: 0.5em 0.75em; }
- .panel-block input[type="checkbox"] {
- margin-right: 0.75em; }
- .panel-block > .control {
- flex-grow: 1;
- flex-shrink: 1;
- width: 100%; }
- .panel-block.is-wrapped {
- flex-wrap: wrap; }
- .panel-block.is-active {
- border-left-color: #2e63b8;
- color: #363636; }
- .panel-block.is-active .panel-icon {
- color: #2e63b8; }
-
-a.panel-block,
-label.panel-block {
- cursor: pointer; }
- a.panel-block:hover,
- label.panel-block:hover {
- background-color: whitesmoke; }
-
-.panel-icon {
- display: inline-block;
- font-size: 14px;
- height: 1em;
- line-height: 1em;
- text-align: center;
- vertical-align: top;
- width: 1em;
- color: #6b6b6b;
- margin-right: 0.75em; }
- .panel-icon .fa {
- font-size: inherit;
- line-height: inherit; }
-
-.tabs {
- -webkit-overflow-scrolling: touch;
- align-items: stretch;
- display: flex;
- font-size: 1rem;
- justify-content: space-between;
- overflow: hidden;
- overflow-x: auto;
- white-space: nowrap; }
- .tabs a {
- align-items: center;
- border-bottom-color: #dbdbdb;
- border-bottom-style: solid;
- border-bottom-width: 1px;
- color: #222222;
- display: flex;
- justify-content: center;
- margin-bottom: -1px;
- padding: 0.5em 1em;
- vertical-align: top; }
- .tabs a:hover {
- border-bottom-color: #222222;
- color: #222222; }
- .tabs li {
- display: block; }
- .tabs li.is-active a {
- border-bottom-color: #2e63b8;
- color: #2e63b8; }
- .tabs ul {
- align-items: center;
- border-bottom-color: #dbdbdb;
- border-bottom-style: solid;
- border-bottom-width: 1px;
- display: flex;
- flex-grow: 1;
- flex-shrink: 0;
- justify-content: flex-start; }
- .tabs ul.is-left {
- padding-right: 0.75em; }
- .tabs ul.is-center {
- flex: none;
- justify-content: center;
- padding-left: 0.75em;
- padding-right: 0.75em; }
- .tabs ul.is-right {
- justify-content: flex-end;
- padding-left: 0.75em; }
- .tabs .icon:first-child {
- margin-right: 0.5em; }
- .tabs .icon:last-child {
- margin-left: 0.5em; }
- .tabs.is-centered ul {
- justify-content: center; }
- .tabs.is-right ul {
- justify-content: flex-end; }
- .tabs.is-boxed a {
- border: 1px solid transparent;
- border-radius: 4px 4px 0 0; }
- .tabs.is-boxed a:hover {
- background-color: whitesmoke;
- border-bottom-color: #dbdbdb; }
- .tabs.is-boxed li.is-active a {
- background-color: white;
- border-color: #dbdbdb;
- border-bottom-color: transparent !important; }
- .tabs.is-fullwidth li {
- flex-grow: 1;
- flex-shrink: 0; }
- .tabs.is-toggle a {
- border-color: #dbdbdb;
- border-style: solid;
- border-width: 1px;
- margin-bottom: 0;
- position: relative; }
- .tabs.is-toggle a:hover {
- background-color: whitesmoke;
- border-color: #b5b5b5;
- z-index: 2; }
- .tabs.is-toggle li + li {
- margin-left: -1px; }
- .tabs.is-toggle li:first-child a {
- border-radius: 4px 0 0 4px; }
- .tabs.is-toggle li:last-child a {
- border-radius: 0 4px 4px 0; }
- .tabs.is-toggle li.is-active a {
- background-color: #2e63b8;
- border-color: #2e63b8;
- color: #fff;
- z-index: 1; }
- .tabs.is-toggle ul {
- border-bottom: none; }
- .tabs.is-toggle.is-toggle-rounded li:first-child a {
- border-bottom-left-radius: 290486px;
- border-top-left-radius: 290486px;
- padding-left: 1.25em; }
- .tabs.is-toggle.is-toggle-rounded li:last-child a {
- border-bottom-right-radius: 290486px;
- border-top-right-radius: 290486px;
- padding-right: 1.25em; }
- .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs {
- font-size: 0.75rem; }
- .tabs.is-medium {
- font-size: 1.25rem; }
- .tabs.is-large {
- font-size: 1.5rem; }
-
-.column {
- display: block;
- flex-basis: 0;
- flex-grow: 1;
- flex-shrink: 1;
- padding: 0.75rem; }
- .columns.is-mobile > .column.is-narrow {
- flex: none; }
- .columns.is-mobile > .column.is-full {
- flex: none;
- width: 100%; }
- .columns.is-mobile > .column.is-three-quarters {
- flex: none;
- width: 75%; }
- .columns.is-mobile > .column.is-two-thirds {
- flex: none;
- width: 66.6666%; }
- .columns.is-mobile > .column.is-half {
- flex: none;
- width: 50%; }
- .columns.is-mobile > .column.is-one-third {
- flex: none;
- width: 33.3333%; }
- .columns.is-mobile > .column.is-one-quarter {
- flex: none;
- width: 25%; }
- .columns.is-mobile > .column.is-one-fifth {
- flex: none;
- width: 20%; }
- .columns.is-mobile > .column.is-two-fifths {
- flex: none;
- width: 40%; }
- .columns.is-mobile > .column.is-three-fifths {
- flex: none;
- width: 60%; }
- .columns.is-mobile > .column.is-four-fifths {
- flex: none;
- width: 80%; }
- .columns.is-mobile > .column.is-offset-three-quarters {
- margin-left: 75%; }
- .columns.is-mobile > .column.is-offset-two-thirds {
- margin-left: 66.6666%; }
- .columns.is-mobile > .column.is-offset-half {
- margin-left: 50%; }
- .columns.is-mobile > .column.is-offset-one-third {
- margin-left: 33.3333%; }
- .columns.is-mobile > .column.is-offset-one-quarter {
- margin-left: 25%; }
- .columns.is-mobile > .column.is-offset-one-fifth {
- margin-left: 20%; }
- .columns.is-mobile > .column.is-offset-two-fifths {
- margin-left: 40%; }
- .columns.is-mobile > .column.is-offset-three-fifths {
- margin-left: 60%; }
- .columns.is-mobile > .column.is-offset-four-fifths {
- margin-left: 80%; }
- .columns.is-mobile > .column.is-0 {
- flex: none;
- width: 0%; }
- .columns.is-mobile > .column.is-offset-0 {
- margin-left: 0%; }
- .columns.is-mobile > .column.is-1 {
- flex: none;
- width: 8.3333333333%; }
- .columns.is-mobile > .column.is-offset-1 {
- margin-left: 8.3333333333%; }
- .columns.is-mobile > .column.is-2 {
- flex: none;
- width: 16.6666666667%; }
- .columns.is-mobile > .column.is-offset-2 {
- margin-left: 16.6666666667%; }
- .columns.is-mobile > .column.is-3 {
- flex: none;
- width: 25%; }
- .columns.is-mobile > .column.is-offset-3 {
- margin-left: 25%; }
- .columns.is-mobile > .column.is-4 {
- flex: none;
- width: 33.3333333333%; }
- .columns.is-mobile > .column.is-offset-4 {
- margin-left: 33.3333333333%; }
- .columns.is-mobile > .column.is-5 {
- flex: none;
- width: 41.6666666667%; }
- .columns.is-mobile > .column.is-offset-5 {
- margin-left: 41.6666666667%; }
- .columns.is-mobile > .column.is-6 {
- flex: none;
- width: 50%; }
- .columns.is-mobile > .column.is-offset-6 {
- margin-left: 50%; }
- .columns.is-mobile > .column.is-7 {
- flex: none;
- width: 58.3333333333%; }
- .columns.is-mobile > .column.is-offset-7 {
- margin-left: 58.3333333333%; }
- .columns.is-mobile > .column.is-8 {
- flex: none;
- width: 66.6666666667%; }
- .columns.is-mobile > .column.is-offset-8 {
- margin-left: 66.6666666667%; }
- .columns.is-mobile > .column.is-9 {
- flex: none;
- width: 75%; }
- .columns.is-mobile > .column.is-offset-9 {
- margin-left: 75%; }
- .columns.is-mobile > .column.is-10 {
- flex: none;
- width: 83.3333333333%; }
- .columns.is-mobile > .column.is-offset-10 {
- margin-left: 83.3333333333%; }
- .columns.is-mobile > .column.is-11 {
- flex: none;
- width: 91.6666666667%; }
- .columns.is-mobile > .column.is-offset-11 {
- margin-left: 91.6666666667%; }
- .columns.is-mobile > .column.is-12 {
- flex: none;
- width: 100%; }
- .columns.is-mobile > .column.is-offset-12 {
- margin-left: 100%; }
- @media screen and (max-width: 768px) {
- .column.is-narrow-mobile {
- flex: none; }
- .column.is-full-mobile {
- flex: none;
- width: 100%; }
- .column.is-three-quarters-mobile {
- flex: none;
- width: 75%; }
- .column.is-two-thirds-mobile {
- flex: none;
- width: 66.6666%; }
- .column.is-half-mobile {
- flex: none;
- width: 50%; }
- .column.is-one-third-mobile {
- flex: none;
- width: 33.3333%; }
- .column.is-one-quarter-mobile {
- flex: none;
- width: 25%; }
- .column.is-one-fifth-mobile {
- flex: none;
- width: 20%; }
- .column.is-two-fifths-mobile {
- flex: none;
- width: 40%; }
- .column.is-three-fifths-mobile {
- flex: none;
- width: 60%; }
- .column.is-four-fifths-mobile {
- flex: none;
- width: 80%; }
- .column.is-offset-three-quarters-mobile {
- margin-left: 75%; }
- .column.is-offset-two-thirds-mobile {
- margin-left: 66.6666%; }
- .column.is-offset-half-mobile {
- margin-left: 50%; }
- .column.is-offset-one-third-mobile {
- margin-left: 33.3333%; }
- .column.is-offset-one-quarter-mobile {
- margin-left: 25%; }
- .column.is-offset-one-fifth-mobile {
- margin-left: 20%; }
- .column.is-offset-two-fifths-mobile {
- margin-left: 40%; }
- .column.is-offset-three-fifths-mobile {
- margin-left: 60%; }
- .column.is-offset-four-fifths-mobile {
- margin-left: 80%; }
- .column.is-0-mobile {
- flex: none;
- width: 0%; }
- .column.is-offset-0-mobile {
- margin-left: 0%; }
- .column.is-1-mobile {
- flex: none;
- width: 8.3333333333%; }
- .column.is-offset-1-mobile {
- margin-left: 8.3333333333%; }
- .column.is-2-mobile {
- flex: none;
- width: 16.6666666667%; }
- .column.is-offset-2-mobile {
- margin-left: 16.6666666667%; }
- .column.is-3-mobile {
- flex: none;
- width: 25%; }
- .column.is-offset-3-mobile {
- margin-left: 25%; }
- .column.is-4-mobile {
- flex: none;
- width: 33.3333333333%; }
- .column.is-offset-4-mobile {
- margin-left: 33.3333333333%; }
- .column.is-5-mobile {
- flex: none;
- width: 41.6666666667%; }
- .column.is-offset-5-mobile {
- margin-left: 41.6666666667%; }
- .column.is-6-mobile {
- flex: none;
- width: 50%; }
- .column.is-offset-6-mobile {
- margin-left: 50%; }
- .column.is-7-mobile {
- flex: none;
- width: 58.3333333333%; }
- .column.is-offset-7-mobile {
- margin-left: 58.3333333333%; }
- .column.is-8-mobile {
- flex: none;
- width: 66.6666666667%; }
- .column.is-offset-8-mobile {
- margin-left: 66.6666666667%; }
- .column.is-9-mobile {
- flex: none;
- width: 75%; }
- .column.is-offset-9-mobile {
- margin-left: 75%; }
- .column.is-10-mobile {
- flex: none;
- width: 83.3333333333%; }
- .column.is-offset-10-mobile {
- margin-left: 83.3333333333%; }
- .column.is-11-mobile {
- flex: none;
- width: 91.6666666667%; }
- .column.is-offset-11-mobile {
- margin-left: 91.6666666667%; }
- .column.is-12-mobile {
- flex: none;
- width: 100%; }
- .column.is-offset-12-mobile {
- margin-left: 100%; } }
- @media screen and (min-width: 769px), print {
- .column.is-narrow, .column.is-narrow-tablet {
- flex: none; }
- .column.is-full, .column.is-full-tablet {
- flex: none;
- width: 100%; }
- .column.is-three-quarters, .column.is-three-quarters-tablet {
- flex: none;
- width: 75%; }
- .column.is-two-thirds, .column.is-two-thirds-tablet {
- flex: none;
- width: 66.6666%; }
- .column.is-half, .column.is-half-tablet {
- flex: none;
- width: 50%; }
- .column.is-one-third, .column.is-one-third-tablet {
- flex: none;
- width: 33.3333%; }
- .column.is-one-quarter, .column.is-one-quarter-tablet {
- flex: none;
- width: 25%; }
- .column.is-one-fifth, .column.is-one-fifth-tablet {
- flex: none;
- width: 20%; }
- .column.is-two-fifths, .column.is-two-fifths-tablet {
- flex: none;
- width: 40%; }
- .column.is-three-fifths, .column.is-three-fifths-tablet {
- flex: none;
- width: 60%; }
- .column.is-four-fifths, .column.is-four-fifths-tablet {
- flex: none;
- width: 80%; }
- .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet {
- margin-left: 75%; }
- .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet {
- margin-left: 66.6666%; }
- .column.is-offset-half, .column.is-offset-half-tablet {
- margin-left: 50%; }
- .column.is-offset-one-third, .column.is-offset-one-third-tablet {
- margin-left: 33.3333%; }
- .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet {
- margin-left: 25%; }
- .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet {
- margin-left: 20%; }
- .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet {
- margin-left: 40%; }
- .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet {
- margin-left: 60%; }
- .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet {
- margin-left: 80%; }
- .column.is-0, .column.is-0-tablet {
- flex: none;
- width: 0%; }
- .column.is-offset-0, .column.is-offset-0-tablet {
- margin-left: 0%; }
- .column.is-1, .column.is-1-tablet {
- flex: none;
- width: 8.3333333333%; }
- .column.is-offset-1, .column.is-offset-1-tablet {
- margin-left: 8.3333333333%; }
- .column.is-2, .column.is-2-tablet {
- flex: none;
- width: 16.6666666667%; }
- .column.is-offset-2, .column.is-offset-2-tablet {
- margin-left: 16.6666666667%; }
- .column.is-3, .column.is-3-tablet {
- flex: none;
- width: 25%; }
- .column.is-offset-3, .column.is-offset-3-tablet {
- margin-left: 25%; }
- .column.is-4, .column.is-4-tablet {
- flex: none;
- width: 33.3333333333%; }
- .column.is-offset-4, .column.is-offset-4-tablet {
- margin-left: 33.3333333333%; }
- .column.is-5, .column.is-5-tablet {
- flex: none;
- width: 41.6666666667%; }
- .column.is-offset-5, .column.is-offset-5-tablet {
- margin-left: 41.6666666667%; }
- .column.is-6, .column.is-6-tablet {
- flex: none;
- width: 50%; }
- .column.is-offset-6, .column.is-offset-6-tablet {
- margin-left: 50%; }
- .column.is-7, .column.is-7-tablet {
- flex: none;
- width: 58.3333333333%; }
- .column.is-offset-7, .column.is-offset-7-tablet {
- margin-left: 58.3333333333%; }
- .column.is-8, .column.is-8-tablet {
- flex: none;
- width: 66.6666666667%; }
- .column.is-offset-8, .column.is-offset-8-tablet {
- margin-left: 66.6666666667%; }
- .column.is-9, .column.is-9-tablet {
- flex: none;
- width: 75%; }
- .column.is-offset-9, .column.is-offset-9-tablet {
- margin-left: 75%; }
- .column.is-10, .column.is-10-tablet {
- flex: none;
- width: 83.3333333333%; }
- .column.is-offset-10, .column.is-offset-10-tablet {
- margin-left: 83.3333333333%; }
- .column.is-11, .column.is-11-tablet {
- flex: none;
- width: 91.6666666667%; }
- .column.is-offset-11, .column.is-offset-11-tablet {
- margin-left: 91.6666666667%; }
- .column.is-12, .column.is-12-tablet {
- flex: none;
- width: 100%; }
- .column.is-offset-12, .column.is-offset-12-tablet {
- margin-left: 100%; } }
- @media screen and (max-width: 1055px) {
- .column.is-narrow-touch {
- flex: none; }
- .column.is-full-touch {
- flex: none;
- width: 100%; }
- .column.is-three-quarters-touch {
- flex: none;
- width: 75%; }
- .column.is-two-thirds-touch {
- flex: none;
- width: 66.6666%; }
- .column.is-half-touch {
- flex: none;
- width: 50%; }
- .column.is-one-third-touch {
- flex: none;
- width: 33.3333%; }
- .column.is-one-quarter-touch {
- flex: none;
- width: 25%; }
- .column.is-one-fifth-touch {
- flex: none;
- width: 20%; }
- .column.is-two-fifths-touch {
- flex: none;
- width: 40%; }
- .column.is-three-fifths-touch {
- flex: none;
- width: 60%; }
- .column.is-four-fifths-touch {
- flex: none;
- width: 80%; }
- .column.is-offset-three-quarters-touch {
- margin-left: 75%; }
- .column.is-offset-two-thirds-touch {
- margin-left: 66.6666%; }
- .column.is-offset-half-touch {
- margin-left: 50%; }
- .column.is-offset-one-third-touch {
- margin-left: 33.3333%; }
- .column.is-offset-one-quarter-touch {
- margin-left: 25%; }
- .column.is-offset-one-fifth-touch {
- margin-left: 20%; }
- .column.is-offset-two-fifths-touch {
- margin-left: 40%; }
- .column.is-offset-three-fifths-touch {
- margin-left: 60%; }
- .column.is-offset-four-fifths-touch {
- margin-left: 80%; }
- .column.is-0-touch {
- flex: none;
- width: 0%; }
- .column.is-offset-0-touch {
- margin-left: 0%; }
- .column.is-1-touch {
- flex: none;
- width: 8.3333333333%; }
- .column.is-offset-1-touch {
- margin-left: 8.3333333333%; }
- .column.is-2-touch {
- flex: none;
- width: 16.6666666667%; }
- .column.is-offset-2-touch {
- margin-left: 16.6666666667%; }
- .column.is-3-touch {
- flex: none;
- width: 25%; }
- .column.is-offset-3-touch {
- margin-left: 25%; }
- .column.is-4-touch {
- flex: none;
- width: 33.3333333333%; }
- .column.is-offset-4-touch {
- margin-left: 33.3333333333%; }
- .column.is-5-touch {
- flex: none;
- width: 41.6666666667%; }
- .column.is-offset-5-touch {
- margin-left: 41.6666666667%; }
- .column.is-6-touch {
- flex: none;
- width: 50%; }
- .column.is-offset-6-touch {
- margin-left: 50%; }
- .column.is-7-touch {
- flex: none;
- width: 58.3333333333%; }
- .column.is-offset-7-touch {
- margin-left: 58.3333333333%; }
- .column.is-8-touch {
- flex: none;
- width: 66.6666666667%; }
- .column.is-offset-8-touch {
- margin-left: 66.6666666667%; }
- .column.is-9-touch {
- flex: none;
- width: 75%; }
- .column.is-offset-9-touch {
- margin-left: 75%; }
- .column.is-10-touch {
- flex: none;
- width: 83.3333333333%; }
- .column.is-offset-10-touch {
- margin-left: 83.3333333333%; }
- .column.is-11-touch {
- flex: none;
- width: 91.6666666667%; }
- .column.is-offset-11-touch {
- margin-left: 91.6666666667%; }
- .column.is-12-touch {
- flex: none;
- width: 100%; }
- .column.is-offset-12-touch {
- margin-left: 100%; } }
- @media screen and (min-width: 1056px) {
- .column.is-narrow-desktop {
- flex: none; }
- .column.is-full-desktop {
- flex: none;
- width: 100%; }
- .column.is-three-quarters-desktop {
- flex: none;
- width: 75%; }
- .column.is-two-thirds-desktop {
- flex: none;
- width: 66.6666%; }
- .column.is-half-desktop {
- flex: none;
- width: 50%; }
- .column.is-one-third-desktop {
- flex: none;
- width: 33.3333%; }
- .column.is-one-quarter-desktop {
- flex: none;
- width: 25%; }
- .column.is-one-fifth-desktop {
- flex: none;
- width: 20%; }
- .column.is-two-fifths-desktop {
- flex: none;
- width: 40%; }
- .column.is-three-fifths-desktop {
- flex: none;
- width: 60%; }
- .column.is-four-fifths-desktop {
- flex: none;
- width: 80%; }
- .column.is-offset-three-quarters-desktop {
- margin-left: 75%; }
- .column.is-offset-two-thirds-desktop {
- margin-left: 66.6666%; }
- .column.is-offset-half-desktop {
- margin-left: 50%; }
- .column.is-offset-one-third-desktop {
- margin-left: 33.3333%; }
- .column.is-offset-one-quarter-desktop {
- margin-left: 25%; }
- .column.is-offset-one-fifth-desktop {
- margin-left: 20%; }
- .column.is-offset-two-fifths-desktop {
- margin-left: 40%; }
- .column.is-offset-three-fifths-desktop {
- margin-left: 60%; }
- .column.is-offset-four-fifths-desktop {
- margin-left: 80%; }
- .column.is-0-desktop {
- flex: none;
- width: 0%; }
- .column.is-offset-0-desktop {
- margin-left: 0%; }
- .column.is-1-desktop {
- flex: none;
- width: 8.3333333333%; }
- .column.is-offset-1-desktop {
- margin-left: 8.3333333333%; }
- .column.is-2-desktop {
- flex: none;
- width: 16.6666666667%; }
- .column.is-offset-2-desktop {
- margin-left: 16.6666666667%; }
- .column.is-3-desktop {
- flex: none;
- width: 25%; }
- .column.is-offset-3-desktop {
- margin-left: 25%; }
- .column.is-4-desktop {
- flex: none;
- width: 33.3333333333%; }
- .column.is-offset-4-desktop {
- margin-left: 33.3333333333%; }
- .column.is-5-desktop {
- flex: none;
- width: 41.6666666667%; }
- .column.is-offset-5-desktop {
- margin-left: 41.6666666667%; }
- .column.is-6-desktop {
- flex: none;
- width: 50%; }
- .column.is-offset-6-desktop {
- margin-left: 50%; }
- .column.is-7-desktop {
- flex: none;
- width: 58.3333333333%; }
- .column.is-offset-7-desktop {
- margin-left: 58.3333333333%; }
- .column.is-8-desktop {
- flex: none;
- width: 66.6666666667%; }
- .column.is-offset-8-desktop {
- margin-left: 66.6666666667%; }
- .column.is-9-desktop {
- flex: none;
- width: 75%; }
- .column.is-offset-9-desktop {
- margin-left: 75%; }
- .column.is-10-desktop {
- flex: none;
- width: 83.3333333333%; }
- .column.is-offset-10-desktop {
- margin-left: 83.3333333333%; }
- .column.is-11-desktop {
- flex: none;
- width: 91.6666666667%; }
- .column.is-offset-11-desktop {
- margin-left: 91.6666666667%; }
- .column.is-12-desktop {
- flex: none;
- width: 100%; }
- .column.is-offset-12-desktop {
- margin-left: 100%; } }
- @media screen and (min-width: 1216px) {
- .column.is-narrow-widescreen {
- flex: none; }
- .column.is-full-widescreen {
- flex: none;
- width: 100%; }
- .column.is-three-quarters-widescreen {
- flex: none;
- width: 75%; }
- .column.is-two-thirds-widescreen {
- flex: none;
- width: 66.6666%; }
- .column.is-half-widescreen {
- flex: none;
- width: 50%; }
- .column.is-one-third-widescreen {
- flex: none;
- width: 33.3333%; }
- .column.is-one-quarter-widescreen {
- flex: none;
- width: 25%; }
- .column.is-one-fifth-widescreen {
- flex: none;
- width: 20%; }
- .column.is-two-fifths-widescreen {
- flex: none;
- width: 40%; }
- .column.is-three-fifths-widescreen {
- flex: none;
- width: 60%; }
- .column.is-four-fifths-widescreen {
- flex: none;
- width: 80%; }
- .column.is-offset-three-quarters-widescreen {
- margin-left: 75%; }
- .column.is-offset-two-thirds-widescreen {
- margin-left: 66.6666%; }
- .column.is-offset-half-widescreen {
- margin-left: 50%; }
- .column.is-offset-one-third-widescreen {
- margin-left: 33.3333%; }
- .column.is-offset-one-quarter-widescreen {
- margin-left: 25%; }
- .column.is-offset-one-fifth-widescreen {
- margin-left: 20%; }
- .column.is-offset-two-fifths-widescreen {
- margin-left: 40%; }
- .column.is-offset-three-fifths-widescreen {
- margin-left: 60%; }
- .column.is-offset-four-fifths-widescreen {
- margin-left: 80%; }
- .column.is-0-widescreen {
- flex: none;
- width: 0%; }
- .column.is-offset-0-widescreen {
- margin-left: 0%; }
- .column.is-1-widescreen {
- flex: none;
- width: 8.3333333333%; }
- .column.is-offset-1-widescreen {
- margin-left: 8.3333333333%; }
- .column.is-2-widescreen {
- flex: none;
- width: 16.6666666667%; }
- .column.is-offset-2-widescreen {
- margin-left: 16.6666666667%; }
- .column.is-3-widescreen {
- flex: none;
- width: 25%; }
- .column.is-offset-3-widescreen {
- margin-left: 25%; }
- .column.is-4-widescreen {
- flex: none;
- width: 33.3333333333%; }
- .column.is-offset-4-widescreen {
- margin-left: 33.3333333333%; }
- .column.is-5-widescreen {
- flex: none;
- width: 41.6666666667%; }
- .column.is-offset-5-widescreen {
- margin-left: 41.6666666667%; }
- .column.is-6-widescreen {
- flex: none;
- width: 50%; }
- .column.is-offset-6-widescreen {
- margin-left: 50%; }
- .column.is-7-widescreen {
- flex: none;
- width: 58.3333333333%; }
- .column.is-offset-7-widescreen {
- margin-left: 58.3333333333%; }
- .column.is-8-widescreen {
- flex: none;
- width: 66.6666666667%; }
- .column.is-offset-8-widescreen {
- margin-left: 66.6666666667%; }
- .column.is-9-widescreen {
- flex: none;
- width: 75%; }
- .column.is-offset-9-widescreen {
- margin-left: 75%; }
- .column.is-10-widescreen {
- flex: none;
- width: 83.3333333333%; }
- .column.is-offset-10-widescreen {
- margin-left: 83.3333333333%; }
- .column.is-11-widescreen {
- flex: none;
- width: 91.6666666667%; }
- .column.is-offset-11-widescreen {
- margin-left: 91.6666666667%; }
- .column.is-12-widescreen {
- flex: none;
- width: 100%; }
- .column.is-offset-12-widescreen {
- margin-left: 100%; } }
- @media screen and (min-width: 1408px) {
- .column.is-narrow-fullhd {
- flex: none; }
- .column.is-full-fullhd {
- flex: none;
- width: 100%; }
- .column.is-three-quarters-fullhd {
- flex: none;
- width: 75%; }
- .column.is-two-thirds-fullhd {
- flex: none;
- width: 66.6666%; }
- .column.is-half-fullhd {
- flex: none;
- width: 50%; }
- .column.is-one-third-fullhd {
- flex: none;
- width: 33.3333%; }
- .column.is-one-quarter-fullhd {
- flex: none;
- width: 25%; }
- .column.is-one-fifth-fullhd {
- flex: none;
- width: 20%; }
- .column.is-two-fifths-fullhd {
- flex: none;
- width: 40%; }
- .column.is-three-fifths-fullhd {
- flex: none;
- width: 60%; }
- .column.is-four-fifths-fullhd {
- flex: none;
- width: 80%; }
- .column.is-offset-three-quarters-fullhd {
- margin-left: 75%; }
- .column.is-offset-two-thirds-fullhd {
- margin-left: 66.6666%; }
- .column.is-offset-half-fullhd {
- margin-left: 50%; }
- .column.is-offset-one-third-fullhd {
- margin-left: 33.3333%; }
- .column.is-offset-one-quarter-fullhd {
- margin-left: 25%; }
- .column.is-offset-one-fifth-fullhd {
- margin-left: 20%; }
- .column.is-offset-two-fifths-fullhd {
- margin-left: 40%; }
- .column.is-offset-three-fifths-fullhd {
- margin-left: 60%; }
- .column.is-offset-four-fifths-fullhd {
- margin-left: 80%; }
- .column.is-0-fullhd {
- flex: none;
- width: 0%; }
- .column.is-offset-0-fullhd {
- margin-left: 0%; }
- .column.is-1-fullhd {
- flex: none;
- width: 8.3333333333%; }
- .column.is-offset-1-fullhd {
- margin-left: 8.3333333333%; }
- .column.is-2-fullhd {
- flex: none;
- width: 16.6666666667%; }
- .column.is-offset-2-fullhd {
- margin-left: 16.6666666667%; }
- .column.is-3-fullhd {
- flex: none;
- width: 25%; }
- .column.is-offset-3-fullhd {
- margin-left: 25%; }
- .column.is-4-fullhd {
- flex: none;
- width: 33.3333333333%; }
- .column.is-offset-4-fullhd {
- margin-left: 33.3333333333%; }
- .column.is-5-fullhd {
- flex: none;
- width: 41.6666666667%; }
- .column.is-offset-5-fullhd {
- margin-left: 41.6666666667%; }
- .column.is-6-fullhd {
- flex: none;
- width: 50%; }
- .column.is-offset-6-fullhd {
- margin-left: 50%; }
- .column.is-7-fullhd {
- flex: none;
- width: 58.3333333333%; }
- .column.is-offset-7-fullhd {
- margin-left: 58.3333333333%; }
- .column.is-8-fullhd {
- flex: none;
- width: 66.6666666667%; }
- .column.is-offset-8-fullhd {
- margin-left: 66.6666666667%; }
- .column.is-9-fullhd {
- flex: none;
- width: 75%; }
- .column.is-offset-9-fullhd {
- margin-left: 75%; }
- .column.is-10-fullhd {
- flex: none;
- width: 83.3333333333%; }
- .column.is-offset-10-fullhd {
- margin-left: 83.3333333333%; }
- .column.is-11-fullhd {
- flex: none;
- width: 91.6666666667%; }
- .column.is-offset-11-fullhd {
- margin-left: 91.6666666667%; }
- .column.is-12-fullhd {
- flex: none;
- width: 100%; }
- .column.is-offset-12-fullhd {
- margin-left: 100%; } }
-.columns {
- margin-left: -0.75rem;
- margin-right: -0.75rem;
- margin-top: -0.75rem; }
- .columns:last-child {
- margin-bottom: -0.75rem; }
- .columns:not(:last-child) {
- margin-bottom: calc(1.5rem - 0.75rem); }
- .columns.is-centered {
- justify-content: center; }
- .columns.is-gapless {
- margin-left: 0;
- margin-right: 0;
- margin-top: 0; }
- .columns.is-gapless > .column {
- margin: 0;
- padding: 0 !important; }
- .columns.is-gapless:not(:last-child) {
- margin-bottom: 1.5rem; }
- .columns.is-gapless:last-child {
- margin-bottom: 0; }
- .columns.is-mobile {
- display: flex; }
- .columns.is-multiline {
- flex-wrap: wrap; }
- .columns.is-vcentered {
- align-items: center; }
- @media screen and (min-width: 769px), print {
- .columns:not(.is-desktop) {
- display: flex; } }
- @media screen and (min-width: 1056px) {
- .columns.is-desktop {
- display: flex; } }
-.columns.is-variable {
- --columnGap: 0.75rem;
- margin-left: calc(-1 * var(--columnGap));
- margin-right: calc(-1 * var(--columnGap)); }
- .columns.is-variable .column {
- padding-left: var(--columnGap);
- padding-right: var(--columnGap); }
- .columns.is-variable.is-0 {
- --columnGap: 0rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-0-mobile {
- --columnGap: 0rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-0-tablet {
- --columnGap: 0rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-0-tablet-only {
- --columnGap: 0rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-0-touch {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-0-desktop {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-0-desktop-only {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-0-widescreen {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-0-widescreen-only {
- --columnGap: 0rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-0-fullhd {
- --columnGap: 0rem; } }
- .columns.is-variable.is-1 {
- --columnGap: 0.25rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-1-mobile {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-1-tablet {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-1-tablet-only {
- --columnGap: 0.25rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-1-touch {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-1-desktop {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-1-desktop-only {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-1-widescreen {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-1-widescreen-only {
- --columnGap: 0.25rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-1-fullhd {
- --columnGap: 0.25rem; } }
- .columns.is-variable.is-2 {
- --columnGap: 0.5rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-2-mobile {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-2-tablet {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-2-tablet-only {
- --columnGap: 0.5rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-2-touch {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-2-desktop {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-2-desktop-only {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-2-widescreen {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-2-widescreen-only {
- --columnGap: 0.5rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-2-fullhd {
- --columnGap: 0.5rem; } }
- .columns.is-variable.is-3 {
- --columnGap: 0.75rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-3-mobile {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-3-tablet {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-3-tablet-only {
- --columnGap: 0.75rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-3-touch {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-3-desktop {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-3-desktop-only {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-3-widescreen {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-3-widescreen-only {
- --columnGap: 0.75rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-3-fullhd {
- --columnGap: 0.75rem; } }
- .columns.is-variable.is-4 {
- --columnGap: 1rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-4-mobile {
- --columnGap: 1rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-4-tablet {
- --columnGap: 1rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-4-tablet-only {
- --columnGap: 1rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-4-touch {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-4-desktop {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-4-desktop-only {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-4-widescreen {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-4-widescreen-only {
- --columnGap: 1rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-4-fullhd {
- --columnGap: 1rem; } }
- .columns.is-variable.is-5 {
- --columnGap: 1.25rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-5-mobile {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-5-tablet {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-5-tablet-only {
- --columnGap: 1.25rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-5-touch {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-5-desktop {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-5-desktop-only {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-5-widescreen {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-5-widescreen-only {
- --columnGap: 1.25rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-5-fullhd {
- --columnGap: 1.25rem; } }
- .columns.is-variable.is-6 {
- --columnGap: 1.5rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-6-mobile {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-6-tablet {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-6-tablet-only {
- --columnGap: 1.5rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-6-touch {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-6-desktop {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-6-desktop-only {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-6-widescreen {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-6-widescreen-only {
- --columnGap: 1.5rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-6-fullhd {
- --columnGap: 1.5rem; } }
- .columns.is-variable.is-7 {
- --columnGap: 1.75rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-7-mobile {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-7-tablet {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-7-tablet-only {
- --columnGap: 1.75rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-7-touch {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-7-desktop {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-7-desktop-only {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-7-widescreen {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-7-widescreen-only {
- --columnGap: 1.75rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-7-fullhd {
- --columnGap: 1.75rem; } }
- .columns.is-variable.is-8 {
- --columnGap: 2rem; }
- @media screen and (max-width: 768px) {
- .columns.is-variable.is-8-mobile {
- --columnGap: 2rem; } }
- @media screen and (min-width: 769px), print {
- .columns.is-variable.is-8-tablet {
- --columnGap: 2rem; } }
- @media screen and (min-width: 769px) and (max-width: 1055px) {
- .columns.is-variable.is-8-tablet-only {
- --columnGap: 2rem; } }
- @media screen and (max-width: 1055px) {
- .columns.is-variable.is-8-touch {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1056px) {
- .columns.is-variable.is-8-desktop {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1056px) and (max-width: 1215px) {
- .columns.is-variable.is-8-desktop-only {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1216px) {
- .columns.is-variable.is-8-widescreen {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1216px) and (max-width: 1407px) {
- .columns.is-variable.is-8-widescreen-only {
- --columnGap: 2rem; } }
- @media screen and (min-width: 1408px) {
- .columns.is-variable.is-8-fullhd {
- --columnGap: 2rem; } }
-.tile {
- align-items: stretch;
- display: block;
- flex-basis: 0;
- flex-grow: 1;
- flex-shrink: 1;
- min-height: min-content; }
- .tile.is-ancestor {
- margin-left: -0.75rem;
- margin-right: -0.75rem;
- margin-top: -0.75rem; }
- .tile.is-ancestor:last-child {
- margin-bottom: -0.75rem; }
- .tile.is-ancestor:not(:last-child) {
- margin-bottom: 0.75rem; }
- .tile.is-child {
- margin: 0 !important; }
- .tile.is-parent {
- padding: 0.75rem; }
- .tile.is-vertical {
- flex-direction: column; }
- .tile.is-vertical > .tile.is-child:not(:last-child) {
- margin-bottom: 1.5rem !important; }
- @media screen and (min-width: 769px), print {
- .tile:not(.is-child) {
- display: flex; }
- .tile.is-1 {
- flex: none;
- width: 8.3333333333%; }
- .tile.is-2 {
- flex: none;
- width: 16.6666666667%; }
- .tile.is-3 {
- flex: none;
- width: 25%; }
- .tile.is-4 {
- flex: none;
- width: 33.3333333333%; }
- .tile.is-5 {
- flex: none;
- width: 41.6666666667%; }
- .tile.is-6 {
- flex: none;
- width: 50%; }
- .tile.is-7 {
- flex: none;
- width: 58.3333333333%; }
- .tile.is-8 {
- flex: none;
- width: 66.6666666667%; }
- .tile.is-9 {
- flex: none;
- width: 75%; }
- .tile.is-10 {
- flex: none;
- width: 83.3333333333%; }
- .tile.is-11 {
- flex: none;
- width: 91.6666666667%; }
- .tile.is-12 {
- flex: none;
- width: 100%; } }
-.hero {
- align-items: stretch;
- display: flex;
- flex-direction: column;
- justify-content: space-between; }
- .hero .navbar {
- background: none; }
- .hero .tabs ul {
- border-bottom: none; }
- .hero.is-white {
- background-color: white;
- color: #0a0a0a; }
- .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-white strong {
- color: inherit; }
- .hero.is-white .title {
- color: #0a0a0a; }
- .hero.is-white .subtitle {
- color: rgba(10, 10, 10, 0.9); }
- .hero.is-white .subtitle a:not(.button),
- .hero.is-white .subtitle strong {
- color: #0a0a0a; }
- @media screen and (max-width: 1055px) {
- .hero.is-white .navbar-menu {
- background-color: white; } }
- .hero.is-white .navbar-item,
- .hero.is-white .navbar-link {
- color: rgba(10, 10, 10, 0.7); }
- .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active,
- .hero.is-white .navbar-link:hover,
- .hero.is-white .navbar-link.is-active {
- background-color: #f2f2f2;
- color: #0a0a0a; }
- .hero.is-white .tabs a {
- color: #0a0a0a;
- opacity: 0.9; }
- .hero.is-white .tabs a:hover {
- opacity: 1; }
- .hero.is-white .tabs li.is-active a {
- opacity: 1; }
- .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a {
- color: #0a0a0a; }
- .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover {
- background-color: #0a0a0a;
- border-color: #0a0a0a;
- color: white; }
- .hero.is-white.is-bold {
- background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-white.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } }
- .hero.is-black {
- background-color: #0a0a0a;
- color: white; }
- .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-black strong {
- color: inherit; }
- .hero.is-black .title {
- color: white; }
- .hero.is-black .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- .hero.is-black .subtitle a:not(.button),
- .hero.is-black .subtitle strong {
- color: white; }
- @media screen and (max-width: 1055px) {
- .hero.is-black .navbar-menu {
- background-color: #0a0a0a; } }
- .hero.is-black .navbar-item,
- .hero.is-black .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- .hero.is-black a.navbar-item:hover, .hero.is-black a.navbar-item.is-active,
- .hero.is-black .navbar-link:hover,
- .hero.is-black .navbar-link.is-active {
- background-color: black;
- color: white; }
- .hero.is-black .tabs a {
- color: white;
- opacity: 0.9; }
- .hero.is-black .tabs a:hover {
- opacity: 1; }
- .hero.is-black .tabs li.is-active a {
- opacity: 1; }
- .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a {
- color: white; }
- .hero.is-black .tabs.is-boxed a:hover, .hero.is-black .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-black .tabs.is-boxed li.is-active a, .hero.is-black .tabs.is-boxed li.is-active a:hover, .hero.is-black .tabs.is-toggle li.is-active a, .hero.is-black .tabs.is-toggle li.is-active a:hover {
- background-color: white;
- border-color: white;
- color: #0a0a0a; }
- .hero.is-black.is-bold {
- background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-black.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } }
- .hero.is-light {
- background-color: whitesmoke;
- color: #363636; }
- .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-light strong {
- color: inherit; }
- .hero.is-light .title {
- color: #363636; }
- .hero.is-light .subtitle {
- color: rgba(54, 54, 54, 0.9); }
- .hero.is-light .subtitle a:not(.button),
- .hero.is-light .subtitle strong {
- color: #363636; }
- @media screen and (max-width: 1055px) {
- .hero.is-light .navbar-menu {
- background-color: whitesmoke; } }
- .hero.is-light .navbar-item,
- .hero.is-light .navbar-link {
- color: rgba(54, 54, 54, 0.7); }
- .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active,
- .hero.is-light .navbar-link:hover,
- .hero.is-light .navbar-link.is-active {
- background-color: #e8e8e8;
- color: #363636; }
- .hero.is-light .tabs a {
- color: #363636;
- opacity: 0.9; }
- .hero.is-light .tabs a:hover {
- opacity: 1; }
- .hero.is-light .tabs li.is-active a {
- opacity: 1; }
- .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a {
- color: #363636; }
- .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover {
- background-color: #363636;
- border-color: #363636;
- color: whitesmoke; }
- .hero.is-light.is-bold {
- background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-light.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } }
- .hero.is-dark, .content kbd.hero {
- background-color: #363636;
- color: whitesmoke; }
- .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-dark strong,
- .content kbd.hero strong {
- color: inherit; }
- .hero.is-dark .title, .content kbd.hero .title {
- color: whitesmoke; }
- .hero.is-dark .subtitle, .content kbd.hero .subtitle {
- color: rgba(245, 245, 245, 0.9); }
- .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button),
- .hero.is-dark .subtitle strong,
- .content kbd.hero .subtitle strong {
- color: whitesmoke; }
- @media screen and (max-width: 1055px) {
- .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu {
- background-color: #363636; } }
- .hero.is-dark .navbar-item, .content kbd.hero .navbar-item,
- .hero.is-dark .navbar-link,
- .content kbd.hero .navbar-link {
- color: rgba(245, 245, 245, 0.7); }
- .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active,
- .hero.is-dark .navbar-link:hover,
- .content kbd.hero .navbar-link:hover,
- .hero.is-dark .navbar-link.is-active,
- .content kbd.hero .navbar-link.is-active {
- background-color: #292929;
- color: whitesmoke; }
- .hero.is-dark .tabs a, .content kbd.hero .tabs a {
- color: whitesmoke;
- opacity: 0.9; }
- .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover {
- opacity: 1; }
- .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a {
- opacity: 1; }
- .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a {
- color: whitesmoke; }
- .hero.is-dark .tabs.is-boxed a:hover, .content kbd.hero .tabs.is-boxed a:hover, .hero.is-dark .tabs.is-toggle a:hover, .content kbd.hero .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-dark .tabs.is-boxed li.is-active a, .content kbd.hero .tabs.is-boxed li.is-active a, .hero.is-dark .tabs.is-boxed li.is-active a:hover, .hero.is-dark .tabs.is-toggle li.is-active a, .content kbd.hero .tabs.is-toggle li.is-active a, .hero.is-dark .tabs.is-toggle li.is-active a:hover {
- background-color: whitesmoke;
- border-color: whitesmoke;
- color: #363636; }
- .hero.is-dark.is-bold, .content kbd.hero.is-bold {
- background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } }
- .hero.is-primary, .docstring > section > a.hero.docs-sourcelink {
- background-color: #4eb5de;
- color: #fff; }
- .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-primary strong,
- .docstring > section > a.hero.docs-sourcelink strong {
- color: inherit; }
- .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title {
- color: #fff; }
- .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button),
- .hero.is-primary .subtitle strong,
- .docstring > section > a.hero.docs-sourcelink .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu {
- background-color: #4eb5de; } }
- .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item,
- .hero.is-primary .navbar-link,
- .docstring > section > a.hero.docs-sourcelink .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active,
- .hero.is-primary .navbar-link:hover,
- .docstring > section > a.hero.docs-sourcelink .navbar-link:hover,
- .hero.is-primary .navbar-link.is-active,
- .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active {
- background-color: #39acda;
- color: #fff; }
- .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a {
- color: #fff;
- opacity: 0.9; }
- .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover {
- opacity: 1; }
- .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a {
- opacity: 1; }
- .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a {
- color: #fff; }
- .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #4eb5de; }
- .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink {
- background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu {
- background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } }
- .hero.is-link {
- background-color: #2e63b8;
- color: #fff; }
- .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-link strong {
- color: inherit; }
- .hero.is-link .title {
- color: #fff; }
- .hero.is-link .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- .hero.is-link .subtitle a:not(.button),
- .hero.is-link .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- .hero.is-link .navbar-menu {
- background-color: #2e63b8; } }
- .hero.is-link .navbar-item,
- .hero.is-link .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active,
- .hero.is-link .navbar-link:hover,
- .hero.is-link .navbar-link.is-active {
- background-color: #2958a4;
- color: #fff; }
- .hero.is-link .tabs a {
- color: #fff;
- opacity: 0.9; }
- .hero.is-link .tabs a:hover {
- opacity: 1; }
- .hero.is-link .tabs li.is-active a {
- opacity: 1; }
- .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a {
- color: #fff; }
- .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #2e63b8; }
- .hero.is-link.is-bold {
- background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-link.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } }
- .hero.is-info {
- background-color: #209cee;
- color: #fff; }
- .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-info strong {
- color: inherit; }
- .hero.is-info .title {
- color: #fff; }
- .hero.is-info .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- .hero.is-info .subtitle a:not(.button),
- .hero.is-info .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- .hero.is-info .navbar-menu {
- background-color: #209cee; } }
- .hero.is-info .navbar-item,
- .hero.is-info .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active,
- .hero.is-info .navbar-link:hover,
- .hero.is-info .navbar-link.is-active {
- background-color: #1190e3;
- color: #fff; }
- .hero.is-info .tabs a {
- color: #fff;
- opacity: 0.9; }
- .hero.is-info .tabs a:hover {
- opacity: 1; }
- .hero.is-info .tabs li.is-active a {
- opacity: 1; }
- .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a {
- color: #fff; }
- .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #209cee; }
- .hero.is-info.is-bold {
- background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-info.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } }
- .hero.is-success {
- background-color: #22c35b;
- color: #fff; }
- .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-success strong {
- color: inherit; }
- .hero.is-success .title {
- color: #fff; }
- .hero.is-success .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- .hero.is-success .subtitle a:not(.button),
- .hero.is-success .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- .hero.is-success .navbar-menu {
- background-color: #22c35b; } }
- .hero.is-success .navbar-item,
- .hero.is-success .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active,
- .hero.is-success .navbar-link:hover,
- .hero.is-success .navbar-link.is-active {
- background-color: #1ead51;
- color: #fff; }
- .hero.is-success .tabs a {
- color: #fff;
- opacity: 0.9; }
- .hero.is-success .tabs a:hover {
- opacity: 1; }
- .hero.is-success .tabs li.is-active a {
- opacity: 1; }
- .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a {
- color: #fff; }
- .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #22c35b; }
- .hero.is-success.is-bold {
- background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-success.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } }
- .hero.is-warning {
- background-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); }
- .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-warning strong {
- color: inherit; }
- .hero.is-warning .title {
- color: rgba(0, 0, 0, 0.7); }
- .hero.is-warning .subtitle {
- color: rgba(0, 0, 0, 0.9); }
- .hero.is-warning .subtitle a:not(.button),
- .hero.is-warning .subtitle strong {
- color: rgba(0, 0, 0, 0.7); }
- @media screen and (max-width: 1055px) {
- .hero.is-warning .navbar-menu {
- background-color: #ffdd57; } }
- .hero.is-warning .navbar-item,
- .hero.is-warning .navbar-link {
- color: rgba(0, 0, 0, 0.7); }
- .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active,
- .hero.is-warning .navbar-link:hover,
- .hero.is-warning .navbar-link.is-active {
- background-color: #ffd83e;
- color: rgba(0, 0, 0, 0.7); }
- .hero.is-warning .tabs a {
- color: rgba(0, 0, 0, 0.7);
- opacity: 0.9; }
- .hero.is-warning .tabs a:hover {
- opacity: 1; }
- .hero.is-warning .tabs li.is-active a {
- opacity: 1; }
- .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a {
- color: rgba(0, 0, 0, 0.7); }
- .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover {
- background-color: rgba(0, 0, 0, 0.7);
- border-color: rgba(0, 0, 0, 0.7);
- color: #ffdd57; }
- .hero.is-warning.is-bold {
- background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-warning.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } }
- .hero.is-danger {
- background-color: #da0b00;
- color: #fff; }
- .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),
- .hero.is-danger strong {
- color: inherit; }
- .hero.is-danger .title {
- color: #fff; }
- .hero.is-danger .subtitle {
- color: rgba(255, 255, 255, 0.9); }
- .hero.is-danger .subtitle a:not(.button),
- .hero.is-danger .subtitle strong {
- color: #fff; }
- @media screen and (max-width: 1055px) {
- .hero.is-danger .navbar-menu {
- background-color: #da0b00; } }
- .hero.is-danger .navbar-item,
- .hero.is-danger .navbar-link {
- color: rgba(255, 255, 255, 0.7); }
- .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active,
- .hero.is-danger .navbar-link:hover,
- .hero.is-danger .navbar-link.is-active {
- background-color: #c10a00;
- color: #fff; }
- .hero.is-danger .tabs a {
- color: #fff;
- opacity: 0.9; }
- .hero.is-danger .tabs a:hover {
- opacity: 1; }
- .hero.is-danger .tabs li.is-active a {
- opacity: 1; }
- .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a {
- color: #fff; }
- .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover {
- background-color: rgba(10, 10, 10, 0.1); }
- .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover {
- background-color: #fff;
- border-color: #fff;
- color: #da0b00; }
- .hero.is-danger.is-bold {
- background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); }
- @media screen and (max-width: 768px) {
- .hero.is-danger.is-bold .navbar-menu {
- background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } }
- .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body {
- padding-bottom: 1.5rem;
- padding-top: 1.5rem; }
- @media screen and (min-width: 769px), print {
- .hero.is-medium .hero-body {
- padding-bottom: 9rem;
- padding-top: 9rem; } }
- @media screen and (min-width: 769px), print {
- .hero.is-large .hero-body {
- padding-bottom: 18rem;
- padding-top: 18rem; } }
- .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body {
- align-items: center;
- display: flex; }
- .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container {
- flex-grow: 1;
- flex-shrink: 1; }
- .hero.is-halfheight {
- min-height: 50vh; }
- .hero.is-fullheight {
- min-height: 100vh; }
-
-.hero-video {
- overflow: hidden; }
- .hero-video video {
- left: 50%;
- min-height: 100%;
- min-width: 100%;
- position: absolute;
- top: 50%;
- transform: translate3d(-50%, -50%, 0); }
- .hero-video.is-transparent {
- opacity: 0.3; }
- @media screen and (max-width: 768px) {
- .hero-video {
- display: none; } }
-.hero-buttons {
- margin-top: 1.5rem; }
- @media screen and (max-width: 768px) {
- .hero-buttons .button {
- display: flex; }
- .hero-buttons .button:not(:last-child) {
- margin-bottom: 0.75rem; } }
- @media screen and (min-width: 769px), print {
- .hero-buttons {
- display: flex;
- justify-content: center; }
- .hero-buttons .button:not(:last-child) {
- margin-right: 1.5rem; } }
-.hero-head,
-.hero-foot {
- flex-grow: 0;
- flex-shrink: 0; }
-
-.hero-body {
- flex-grow: 1;
- flex-shrink: 0;
- padding: 3rem 1.5rem; }
-
-.section {
- padding: 3rem 1.5rem; }
- @media screen and (min-width: 1056px) {
- .section.is-medium {
- padding: 9rem 1.5rem; }
- .section.is-large {
- padding: 18rem 1.5rem; } }
-.footer {
- background-color: #fafafa;
- padding: 3rem 1.5rem 6rem; }
-
-h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited {
- color: #222222; }
-
-h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink {
- visibility: hidden;
- vertical-align: middle;
- margin-left: 0.5em;
- font-size: 0.7rem; }
- h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before {
- font-family: "Font Awesome 5 Free";
- font-weight: 900;
- content: "\f0c1"; }
-
-h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink {
- visibility: visible; }
-
-.docs-dark-only {
- display: none !important; }
-
-pre {
- position: relative;
- overflow: hidden; }
- pre code, pre code.hljs {
- padding: 0 0.75rem !important;
- overflow: auto;
- display: block; }
- pre code:first-of-type, pre code.hljs:first-of-type {
- padding-top: 0.5rem !important; }
- pre code:last-of-type, pre code.hljs:last-of-type {
- padding-bottom: 0.5rem !important; }
- pre .copy-button {
- opacity: 0.2;
- transition: opacity 0.2s;
- position: absolute;
- right: 0em;
- top: 0em;
- padding: 0.5em;
- width: 2.5em;
- height: 2.5em;
- background: transparent;
- border: none;
- font-family: "Font Awesome 5 Free";
- color: #222222;
- cursor: pointer;
- text-align: center; }
- pre .copy-button:focus, pre .copy-button:hover {
- opacity: 1;
- background: rgba(34, 34, 34, 0.1);
- color: #2e63b8; }
- pre .copy-button.success {
- color: #259a12;
- opacity: 1; }
- pre .copy-button.error {
- color: #cb3c33;
- opacity: 1; }
- pre:hover .copy-button {
- opacity: 1; }
-
-.admonition {
- background-color: #b5b5b5;
- border-style: solid;
- border-width: 1px;
- border-color: #363636;
- border-radius: 4px;
- font-size: 1rem; }
- .admonition strong {
- color: currentColor; }
- .admonition.is-small, #documenter .docs-sidebar form.docs-search > input.admonition {
- font-size: 0.75rem; }
- .admonition.is-medium {
- font-size: 1.25rem; }
- .admonition.is-large {
- font-size: 1.5rem; }
- .admonition.is-default {
- background-color: #b5b5b5;
- border-color: #363636; }
- .admonition.is-default > .admonition-header {
- background-color: #363636;
- color: #fff; }
- .admonition.is-default > .admonition-body {
- color: #fff; }
- .admonition.is-info {
- background-color: #def0fc;
- border-color: #209cee; }
- .admonition.is-info > .admonition-header {
- background-color: #209cee;
- color: #fff; }
- .admonition.is-info > .admonition-body {
- color: rgba(0, 0, 0, 0.7); }
- .admonition.is-success {
- background-color: #bdf4d1;
- border-color: #22c35b; }
- .admonition.is-success > .admonition-header {
- background-color: #22c35b;
- color: #fff; }
- .admonition.is-success > .admonition-body {
- color: rgba(0, 0, 0, 0.7); }
- .admonition.is-warning {
- background-color: #fff3c5;
- border-color: #ffdd57; }
- .admonition.is-warning > .admonition-header {
- background-color: #ffdd57;
- color: rgba(0, 0, 0, 0.7); }
- .admonition.is-warning > .admonition-body {
- color: rgba(0, 0, 0, 0.7); }
- .admonition.is-danger {
- background-color: #ffaba7;
- border-color: #da0b00; }
- .admonition.is-danger > .admonition-header {
- background-color: #da0b00;
- color: #fff; }
- .admonition.is-danger > .admonition-body {
- color: rgba(0, 0, 0, 0.7); }
- .admonition.is-compat {
- background-color: #bdeff5;
- border-color: #1db5c9; }
- .admonition.is-compat > .admonition-header {
- background-color: #1db5c9;
- color: #fff; }
- .admonition.is-compat > .admonition-body {
- color: rgba(0, 0, 0, 0.7); }
-
-.admonition-header {
- color: #fff;
- background-color: #363636;
- align-items: center;
- font-weight: 700;
- justify-content: space-between;
- line-height: 1.25;
- padding: 0.5rem 0.75rem;
- position: relative; }
- .admonition-header:before {
- font-family: "Font Awesome 5 Free";
- font-weight: 900;
- margin-right: 0.75rem;
- content: "\f06a"; }
-
-.admonition-body {
- color: #222222;
- padding: 0.5rem 0.75rem; }
- .admonition-body pre {
- background-color: whitesmoke; }
- .admonition-body code {
- background-color: rgba(0, 0, 0, 0.05); }
-
-.docstring {
- margin-bottom: 1em;
- background-color: transparent;
- border: 1px solid #dbdbdb;
- box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1);
- max-width: 100%; }
- .docstring > header {
- display: flex;
- flex-grow: 1;
- align-items: stretch;
- padding: 0.5rem 0.75rem;
- background-color: whitesmoke;
- box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1);
- box-shadow: none;
- border-bottom: 1px solid #dbdbdb; }
- .docstring > header code {
- background-color: transparent; }
- .docstring > header .docstring-binding {
- margin-right: 0.3em; }
- .docstring > header .docstring-category {
- margin-left: 0.3em; }
- .docstring > section {
- position: relative;
- padding: 0.75rem 0.75rem;
- border-bottom: 1px solid #dbdbdb; }
- .docstring > section:last-child {
- border-bottom: none; }
- .docstring > section > a.docs-sourcelink {
- transition: opacity 0.3s;
- opacity: 0;
- position: absolute;
- right: 0.375rem;
- bottom: 0.375rem; }
- .docstring > section > a.docs-sourcelink:focus {
- opacity: 1 !important; }
- .docstring:hover > section > a.docs-sourcelink {
- opacity: 0.2; }
- .docstring:focus-within > section > a.docs-sourcelink {
- opacity: 0.2; }
- .docstring > section:hover a.docs-sourcelink {
- opacity: 1; }
-
-.documenter-example-output {
- background-color: white; }
-
-.outdated-warning-overlay {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
- z-index: 999;
- background-color: #ffaba7;
- color: rgba(0, 0, 0, 0.7);
- border-bottom: 3px solid #da0b00;
- padding: 10px 35px;
- text-align: center;
- font-size: 15px; }
- .outdated-warning-overlay .outdated-warning-closer {
- position: absolute;
- top: calc(50% - 10px);
- right: 18px;
- cursor: pointer;
- width: 12px; }
- .outdated-warning-overlay a {
- color: #2e63b8; }
- .outdated-warning-overlay a:hover {
- color: #363636; }
-
-.content pre {
- border: 1px solid #dbdbdb; }
-
-.content code {
- font-weight: inherit; }
-
-.content a code {
- color: #2e63b8; }
-
-.content h1 code, .content h2 code, .content h3 code, .content h4 code, .content h5 code, .content h6 code {
- color: #222222; }
-
-.content table {
- display: block;
- width: initial;
- max-width: 100%;
- overflow-x: auto; }
-
-.content blockquote > ul:first-child, .content blockquote > ol:first-child, .content .admonition-body > ul:first-child, .content .admonition-body > ol:first-child {
- margin-top: 0; }
-
-pre, code {
- font-variant-ligatures: no-contextual; }
-
-.breadcrumb a.is-disabled {
- cursor: default;
- pointer-events: none; }
- .breadcrumb a.is-disabled, .breadcrumb a.is-disabled:hover {
- color: #222222; }
-
-.hljs {
- background: initial !important; }
-
-.katex .katex-mathml {
- top: 0;
- right: 0; }
-
-.katex-display, mjx-container, .MathJax_Display {
- margin: 0.5em 0 !important; }
-
-html {
- -moz-osx-font-smoothing: auto;
- -webkit-font-smoothing: auto; }
-
-li.no-marker {
- list-style: none; }
-
-/* This file contain the overall layout.
- *
- * The main container is
that is identified by id #documenter.
- */
-#documenter .docs-main > article {
- overflow-wrap: break-word; }
- #documenter .docs-main > article .math-container {
- overflow-x: auto;
- overflow-y: hidden; }
-
-@media screen and (min-width: 1056px) {
- #documenter .docs-main {
- max-width: 52rem;
- margin-left: 20rem;
- padding-right: 1rem; } }
-
-@media screen and (max-width: 1055px) {
- #documenter .docs-main {
- width: 100%; }
- #documenter .docs-main > article {
- max-width: 52rem;
- margin-left: auto;
- margin-right: auto;
- margin-bottom: 1rem;
- padding: 0 1rem; }
- #documenter .docs-main > header, #documenter .docs-main > nav {
- max-width: 100%;
- width: 100%;
- margin: 0; } }
-
-#documenter .docs-main header.docs-navbar {
- background-color: white;
- border-bottom: 1px solid #dbdbdb;
- z-index: 2;
- min-height: 4rem;
- margin-bottom: 1rem;
- display: flex; }
- #documenter .docs-main header.docs-navbar .breadcrumb {
- flex-grow: 1; }
- #documenter .docs-main header.docs-navbar .docs-right {
- display: flex;
- white-space: nowrap; }
- #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
- display: inline-block; }
- #documenter .docs-main header.docs-navbar .docs-right .docs-label {
- padding: 0;
- margin-left: 0.3em; }
- #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button {
- margin: auto 0 auto 1rem; }
- #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button {
- font-size: 1.5rem;
- margin: auto 0 auto 1rem; }
- #documenter .docs-main header.docs-navbar > * {
- margin: auto 0; }
- @media screen and (max-width: 1055px) {
- #documenter .docs-main header.docs-navbar {
- position: sticky;
- top: 0;
- padding: 0 1rem;
- /* For Headroom.js */
- transition-property: top, box-shadow;
- -webkit-transition-property: top, box-shadow;
- /* Safari */
- transition-duration: 0.3s;
- -webkit-transition-duration: 0.3s;
- /* Safari */ }
- #documenter .docs-main header.docs-navbar.headroom--not-top {
- box-shadow: 0.2rem 0rem 0.4rem #bbb;
- transition-duration: 0.7s;
- -webkit-transition-duration: 0.7s;
- /* Safari */ }
- #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom {
- top: -4.5rem;
- transition-duration: 0.7s;
- -webkit-transition-duration: 0.7s;
- /* Safari */ } }
-#documenter .docs-main section.footnotes {
- border-top: 1px solid #dbdbdb; }
- #documenter .docs-main section.footnotes li .tag:first-child, #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, #documenter .docs-main section.footnotes li .content kbd:first-child, .content #documenter .docs-main section.footnotes li kbd:first-child {
- margin-right: 1em;
- margin-bottom: 0.4em; }
-
-#documenter .docs-main .docs-footer {
- display: flex;
- flex-wrap: wrap;
- margin-left: 0;
- margin-right: 0;
- border-top: 1px solid #dbdbdb;
- padding-top: 1rem;
- padding-bottom: 1rem; }
- @media screen and (max-width: 1055px) {
- #documenter .docs-main .docs-footer {
- padding-left: 1rem;
- padding-right: 1rem; } }
- #documenter .docs-main .docs-footer .docs-footer-nextpage, #documenter .docs-main .docs-footer .docs-footer-prevpage {
- flex-grow: 1; }
- #documenter .docs-main .docs-footer .docs-footer-nextpage {
- text-align: right; }
- #documenter .docs-main .docs-footer .flexbox-break {
- flex-basis: 100%;
- height: 0; }
- #documenter .docs-main .docs-footer .footer-message {
- font-size: 0.8em;
- margin: 0.5em auto 0 auto;
- text-align: center; }
-
-#documenter .docs-sidebar {
- display: flex;
- flex-direction: column;
- color: #0a0a0a;
- background-color: whitesmoke;
- border-right: 1px solid #dbdbdb;
- padding: 0;
- flex: 0 0 18rem;
- z-index: 5;
- font-size: 1rem;
- position: fixed;
- left: -18rem;
- width: 18rem;
- height: 100%;
- transition: left 0.3s;
- /* Setting up a nicer theme style for the scrollbar */ }
- #documenter .docs-sidebar.visible {
- left: 0;
- box-shadow: 0.4rem 0rem 0.8rem #bbb; }
- @media screen and (min-width: 1056px) {
- #documenter .docs-sidebar.visible {
- box-shadow: none; } }
- @media screen and (min-width: 1056px) {
- #documenter .docs-sidebar {
- left: 0;
- top: 0; } }
- #documenter .docs-sidebar .docs-logo {
- margin-top: 1rem;
- padding: 0 1rem; }
- #documenter .docs-sidebar .docs-logo > img {
- max-height: 6rem;
- margin: auto; }
- #documenter .docs-sidebar .docs-package-name {
- flex-shrink: 0;
- font-size: 1.5rem;
- font-weight: 700;
- text-align: center;
- white-space: nowrap;
- overflow: hidden;
- padding: 0.5rem 0; }
- #documenter .docs-sidebar .docs-package-name .docs-autofit {
- max-width: 16.2rem; }
- #documenter .docs-sidebar .docs-package-name a, #documenter .docs-sidebar .docs-package-name a:hover {
- color: #0a0a0a; }
- #documenter .docs-sidebar .docs-version-selector {
- border-top: 1px solid #dbdbdb;
- display: none;
- padding: 0.5rem; }
- #documenter .docs-sidebar .docs-version-selector.visible {
- display: flex; }
- #documenter .docs-sidebar ul.docs-menu {
- flex-grow: 1;
- user-select: none;
- border-top: 1px solid #dbdbdb;
- padding-bottom: 1.5rem;
- /* Managing collapsible submenus */ }
- #documenter .docs-sidebar ul.docs-menu > li > .tocitem {
- font-weight: bold; }
- #documenter .docs-sidebar ul.docs-menu > li li {
- font-size: 0.95rem;
- margin-left: 1em;
- border-left: 1px solid #dbdbdb; }
- #documenter .docs-sidebar ul.docs-menu input.collapse-toggle {
- display: none; }
- #documenter .docs-sidebar ul.docs-menu ul.collapsed {
- display: none; }
- #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed {
- display: block; }
- #documenter .docs-sidebar ul.docs-menu label.tocitem {
- display: flex; }
- #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label {
- flex-grow: 2; }
- #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron {
- display: inline-block;
- font-style: normal;
- font-variant: normal;
- text-rendering: auto;
- line-height: 1;
- font-size: 0.75rem;
- margin-left: 1rem;
- margin-top: auto;
- margin-bottom: auto; }
- #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before {
- font-family: "Font Awesome 5 Free";
- font-weight: 900;
- content: "\f054"; }
- #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before {
- content: "\f078"; }
- #documenter .docs-sidebar ul.docs-menu .tocitem {
- display: block;
- padding: 0.5rem 0.5rem; }
- #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover {
- color: #0a0a0a;
- background: whitesmoke; }
- #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, #documenter .docs-sidebar ul.docs-menu label.tocitem:hover {
- color: #0a0a0a;
- background-color: #ebebeb; }
- #documenter .docs-sidebar ul.docs-menu li.is-active {
- border-top: 1px solid #dbdbdb;
- border-bottom: 1px solid #dbdbdb;
- background-color: white; }
- #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover {
- background-color: white;
- color: #0a0a0a; }
- #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover {
- background-color: #ebebeb;
- color: #0a0a0a; }
- #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child {
- border-top: none; }
- #documenter .docs-sidebar ul.docs-menu ul.internal {
- margin: 0 0.5rem 0.5rem;
- border-top: 1px solid #dbdbdb; }
- #documenter .docs-sidebar ul.docs-menu ul.internal li {
- font-size: 0.85rem;
- border-left: none;
- margin-left: 0;
- margin-top: 0.5rem; }
- #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem {
- width: 100%;
- padding: 0; }
- #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before {
- content: "⚬";
- margin-right: 0.4em; }
- #documenter .docs-sidebar form.docs-search {
- margin: auto;
- margin-top: 0.5rem;
- margin-bottom: 0.5rem; }
- #documenter .docs-sidebar form.docs-search > input {
- width: 14.4rem; }
- @media screen and (min-width: 1056px) {
- #documenter .docs-sidebar ul.docs-menu {
- overflow-y: auto;
- -webkit-overflow-scroll: touch; }
- #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar {
- width: .3rem;
- background: none; }
- #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb {
- border-radius: 5px 0px 0px 5px;
- background: #e0e0e0; }
- #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover {
- background: #cccccc; } }
- @media screen and (max-width: 1055px) {
- #documenter .docs-sidebar {
- overflow-y: auto;
- -webkit-overflow-scroll: touch; }
- #documenter .docs-sidebar::-webkit-scrollbar {
- width: .3rem;
- background: none; }
- #documenter .docs-sidebar::-webkit-scrollbar-thumb {
- border-radius: 5px 0px 0px 5px;
- background: #e0e0e0; }
- #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover {
- background: #cccccc; } }
-#documenter .docs-main #documenter-search-info {
- margin-bottom: 1rem; }
-
-#documenter .docs-main #documenter-search-results {
- list-style-type: circle;
- list-style-position: outside; }
- #documenter .docs-main #documenter-search-results li {
- margin-left: 2rem; }
- #documenter .docs-main #documenter-search-results .docs-highlight {
- background-color: yellow; }
-
-.ansi span.sgr1 {
- font-weight: bolder; }
-
-.ansi span.sgr2 {
- font-weight: lighter; }
-
-.ansi span.sgr3 {
- font-style: italic; }
-
-.ansi span.sgr4 {
- text-decoration: underline; }
-
-.ansi span.sgr7 {
- color: white;
- background-color: #222222; }
-
-.ansi span.sgr8 {
- color: transparent; }
- .ansi span.sgr8 span {
- color: transparent; }
-
-.ansi span.sgr9 {
- text-decoration: line-through; }
-
-.ansi span.sgr30 {
- color: #242424; }
-
-.ansi span.sgr31 {
- color: #a7201f; }
-
-.ansi span.sgr32 {
- color: #066f00; }
-
-.ansi span.sgr33 {
- color: #856b00; }
-
-.ansi span.sgr34 {
- color: #2149b0; }
-
-.ansi span.sgr35 {
- color: #7d4498; }
-
-.ansi span.sgr36 {
- color: #007989; }
-
-.ansi span.sgr37 {
- color: gray; }
-
-.ansi span.sgr40 {
- background-color: #242424; }
-
-.ansi span.sgr41 {
- background-color: #a7201f; }
-
-.ansi span.sgr42 {
- background-color: #066f00; }
-
-.ansi span.sgr43 {
- background-color: #856b00; }
-
-.ansi span.sgr44 {
- background-color: #2149b0; }
-
-.ansi span.sgr45 {
- background-color: #7d4498; }
-
-.ansi span.sgr46 {
- background-color: #007989; }
-
-.ansi span.sgr47 {
- background-color: gray; }
-
-.ansi span.sgr90 {
- color: #616161; }
-
-.ansi span.sgr91 {
- color: #cb3c33; }
-
-.ansi span.sgr92 {
- color: #0e8300; }
-
-.ansi span.sgr93 {
- color: #a98800; }
-
-.ansi span.sgr94 {
- color: #3c5dcd; }
-
-.ansi span.sgr95 {
- color: #9256af; }
-
-.ansi span.sgr96 {
- color: #008fa3; }
-
-.ansi span.sgr97 {
- color: whitesmoke; }
-
-.ansi span.sgr100 {
- background-color: #616161; }
-
-.ansi span.sgr101 {
- background-color: #cb3c33; }
-
-.ansi span.sgr102 {
- background-color: #0e8300; }
-
-.ansi span.sgr103 {
- background-color: #a98800; }
-
-.ansi span.sgr104 {
- background-color: #3c5dcd; }
-
-.ansi span.sgr105 {
- background-color: #9256af; }
-
-.ansi span.sgr106 {
- background-color: #008fa3; }
-
-.ansi span.sgr107 {
- background-color: whitesmoke; }
-
-code.language-julia-repl > span.hljs-meta {
- color: #066f00;
- font-weight: bolder; }
-
-/*!
+.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.pagination:not(:last-child),.message:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-primary-light{color:#eef8fc !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#c3e6f4 !important}.has-background-primary-light{background-color:#eef8fc !important}.has-text-primary-dark{color:#1a6d8e !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#228eb9 !important}.has-background-primary-dark{background-color:#1a6d8e !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-link-light{color:#eff3fb !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c6d6f1 !important}.has-background-link-light{background-color:#eff3fb !important}.has-text-link-dark{color:#3169c4 !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#5485d4 !important}.has-background-link-dark{background-color:#3169c4 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-info-light{color:#ecf7fe !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#bde2fa !important}.has-background-info-light{background-color:#ecf7fe !important}.has-text-info-dark{color:#0e72b4 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#1190e3 !important}.has-background-info-dark{background-color:#0e72b4 !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-success-light{color:#eefcf3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#c2f4d4 !important}.has-background-success-light{background-color:#eefcf3 !important}.has-text-success-dark{color:#198f43 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#21bb57 !important}.has-background-success-dark{background-color:#198f43 !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-warning-light{color:#fffbeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#fff1b8 !important}.has-background-warning-light{background-color:#fffbeb !important}.has-text-warning-dark{color:#947600 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#c79f00 !important}.has-background-warning-dark{background-color:#947600 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-danger-light{color:#ffeceb !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#ffbbb8 !important}.has-background-danger-light{background-color:#ffeceb !important}.has-text-danger-dark{color:#f50c00 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#ff3429 !important}.has-background-danger-dark{background-color:#f50c00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.is-underlined{text-decoration:underline !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#222}@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:#bbb;color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#222;cursor:pointer;justify-content:center;padding-bottom:calc(0.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#2e63b8;text-decoration:none}.button.is-ghost:hover,.button.is-ghost.is-hovered{color:#2e63b8;text-decoration:underline}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#fff}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:#363636;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light,.docstring>section>a.button.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.button.is-primary.is-light:hover,.docstring>section>a.button.is-light.docs-sourcelink:hover,.button.is-primary.is-light.is-hovered,.docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e3f3fa;border-color:transparent;color:#1a6d8e}.button.is-primary.is-light:active,.docstring>section>a.button.is-light.docs-sourcelink:active,.button.is-primary.is-light.is-active,.docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d8eff8;border-color:transparent;color:#1a6d8e}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:#2e63b8;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eff3fb;color:#3169c4}.button.is-link.is-light:hover,.button.is-link.is-light.is-hovered{background-color:#e4ecf8;border-color:transparent;color:#3169c4}.button.is-link.is-light:active,.button.is-link.is-light.is-active{background-color:#dae5f6;border-color:transparent;color:#3169c4}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:#209cee;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#ecf7fe;color:#0e72b4}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#e0f1fd;border-color:transparent;color:#0e72b4}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#d4ecfc;border-color:transparent;color:#0e72b4}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:#22c35b;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#eefcf3;color:#198f43}.button.is-success.is-light:hover,.button.is-success.is-light.is-hovered{background-color:#e3faeb;border-color:transparent;color:#198f43}.button.is-success.is-light:active,.button.is-success.is-light.is-active{background-color:#d8f8e3;border-color:transparent;color:#198f43}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:#ffdd57;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-warning.is-light{background-color:#fffbeb;color:#947600}.button.is-warning.is-light:hover,.button.is-warning.is-light.is-hovered{background-color:#fff8de;border-color:transparent;color:#947600}.button.is-warning.is-light:active,.button.is-warning.is-light.is-active{background-color:#fff6d1;border-color:transparent;color:#947600}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:#da0b00;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#ffeceb;color:#f50c00}.button.is-danger.is-light:hover,.button.is-danger.is-light.is-hovered{background-color:#ffe0de;border-color:transparent;color:#f50c00}.button.is-danger.is-light:active,.button.is-danger.is-light.is-active{background-color:#ffd3d1;border-color:transparent;color:#f50c00}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}.button.is-small:not(.is-rounded),#documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:2px}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}@media screen and (max-width: 768px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.65625rem}.button.is-responsive.is-medium{font-size:.75rem}.button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.75rem}.button.is-responsive.is-medium{font-size:1rem}.button.is-responsive.is-large{font-size:1.25rem}}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){.container{max-width:992px}}@media screen and (max-width: 1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-normal{font-size:1rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:flex}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}.image.is-fullwidth,#documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{right:.5rem;position:absolute;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#fff}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-primary.is-light,.docstring>section>a.notification.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-link.is-light{background-color:#eff3fb;color:#3169c4}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-info.is-light{background-color:#ecf7fe;color:#0e72b4}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-success.is-light{background-color:#eefcf3;color:#198f43}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-warning.is-light{background-color:#fffbeb;color:#947600}.notification.is-danger{background-color:#da0b00;color:#fff}.notification.is-danger.is-light{background-color:#ffeceb;color:#f50c00}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #ededed 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #ededed 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #ededed 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right, #222 30%, #ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#222}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#fff}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-primary.is-light:not(body),.content kbd.is-primary.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#eef8fc;color:#1a6d8e}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-link.is-light:not(body),.content kbd.is-link.is-light:not(body),.docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#eff3fb;color:#3169c4}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-info.is-light:not(body),.content kbd.is-info.is-light:not(body),.docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ecf7fe;color:#0e72b4}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-success.is-light:not(body),.content kbd.is-success.is-light:not(body),.docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#eefcf3;color:#198f43}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-warning.is-light:not(body),.content kbd.is-warning.is-light:not(body),.docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffbeb;color:#947600}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-danger.is-light:not(body),.content kbd.is-danger.is-light:not(body),.docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#ffeceb;color:#f50c00}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#222;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#222;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#222;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#222}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#707070}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#707070}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#707070}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#707070}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 0.0625em 0.125em rgba(10,10,10,0.05);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#222}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox,.radio input[disabled],.checkbox input[disabled]{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#222}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b !important;opacity:0.5}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:rgba(0,0,0,0.7)}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#fff}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-normal{font-size:1rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#222}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#222}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#222}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#222;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#222}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:#bbb;color:#222;max-width:100%;position:relative}.card-footer:first-child,.card-content:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-footer:last-child,.card-content:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:#bbb;padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#222;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#eef8fc}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1a6d8e}.message.is-link{background-color:#eff3fb}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#3169c4}.message.is-info{background-color:#ecf7fe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#0e72b4}.message.is-success{background-color:#eefcf3}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#198f43}.message.is-warning{background-color:#fffbeb}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#947600}.message.is-danger{background-color:#ffeceb}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#f50c00}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#fff}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#fff}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#fff}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#222;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#222;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#222;min-width:2.5em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-previous.is-disabled,.pagination-next[disabled],.pagination-next.is-disabled,.pagination-link[disabled],.pagination-link.is-disabled{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:#bbb;font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading,.content kbd.panel .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active,.content kbd.panel .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon,.content kbd.panel .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading,.docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#4eb5de;color:#fff}.panel.is-primary .panel-tabs a.is-active,.docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#4eb5de}.panel.is-primary .panel-block.is-active .panel-icon,.docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#4eb5de}.panel.is-link .panel-heading{background-color:#2e63b8;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#2e63b8}.panel.is-link .panel-block.is-active .panel-icon{color:#2e63b8}.panel.is-info .panel-heading{background-color:#209cee;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#209cee}.panel.is-info .panel-block.is-active .panel-icon{color:#209cee}.panel.is-success .panel-heading{background-color:#22c35b;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#22c35b}.panel.is-success .panel-block.is-active .panel-icon{color:#22c35b}.panel.is-warning .panel-heading{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffdd57}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffdd57}.panel.is-danger .panel-heading{background-color:#da0b00;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#da0b00}.panel.is-danger .panel-block.is-active .panel-icon{color:#da0b00}.panel-tabs:not(:last-child),.panel-block:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#222;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none;width:unset}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>.column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>.column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>.column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>.column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none;width:unset}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.33333337%}.column.is-offset-1-mobile{margin-left:8.33333337%}.column.is-2-mobile{flex:none;width:16.66666674%}.column.is-offset-2-mobile{margin-left:16.66666674%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333337%}.column.is-offset-4-mobile{margin-left:33.33333337%}.column.is-5-mobile{flex:none;width:41.66666674%}.column.is-offset-5-mobile{margin-left:41.66666674%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333337%}.column.is-offset-7-mobile{margin-left:58.33333337%}.column.is-8-mobile{flex:none;width:66.66666674%}.column.is-offset-8-mobile{margin-left:66.66666674%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333337%}.column.is-offset-10-mobile{margin-left:83.33333337%}.column.is-11-mobile{flex:none;width:91.66666674%}.column.is-offset-11-mobile{margin-left:91.66666674%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none;width:unset}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333337%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333337%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66666674%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66666674%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333337%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333337%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66666674%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66666674%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333337%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333337%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66666674%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66666674%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333337%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333337%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66666674%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66666674%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none;width:unset}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.33333337%}.column.is-offset-1-touch{margin-left:8.33333337%}.column.is-2-touch{flex:none;width:16.66666674%}.column.is-offset-2-touch{margin-left:16.66666674%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333337%}.column.is-offset-4-touch{margin-left:33.33333337%}.column.is-5-touch{flex:none;width:41.66666674%}.column.is-offset-5-touch{margin-left:41.66666674%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333337%}.column.is-offset-7-touch{margin-left:58.33333337%}.column.is-8-touch{flex:none;width:66.66666674%}.column.is-offset-8-touch{margin-left:66.66666674%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333337%}.column.is-offset-10-touch{margin-left:83.33333337%}.column.is-11-touch{flex:none;width:91.66666674%}.column.is-offset-11-touch{margin-left:91.66666674%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none;width:unset}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.33333337%}.column.is-offset-1-desktop{margin-left:8.33333337%}.column.is-2-desktop{flex:none;width:16.66666674%}.column.is-offset-2-desktop{margin-left:16.66666674%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333337%}.column.is-offset-4-desktop{margin-left:33.33333337%}.column.is-5-desktop{flex:none;width:41.66666674%}.column.is-offset-5-desktop{margin-left:41.66666674%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333337%}.column.is-offset-7-desktop{margin-left:58.33333337%}.column.is-8-desktop{flex:none;width:66.66666674%}.column.is-offset-8-desktop{margin-left:66.66666674%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333337%}.column.is-offset-10-desktop{margin-left:83.33333337%}.column.is-11-desktop{flex:none;width:91.66666674%}.column.is-offset-11-desktop{margin-left:91.66666674%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none;width:unset}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.33333337%}.column.is-offset-1-widescreen{margin-left:8.33333337%}.column.is-2-widescreen{flex:none;width:16.66666674%}.column.is-offset-2-widescreen{margin-left:16.66666674%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333337%}.column.is-offset-4-widescreen{margin-left:33.33333337%}.column.is-5-widescreen{flex:none;width:41.66666674%}.column.is-offset-5-widescreen{margin-left:41.66666674%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333337%}.column.is-offset-7-widescreen{margin-left:58.33333337%}.column.is-8-widescreen{flex:none;width:66.66666674%}.column.is-offset-8-widescreen{margin-left:66.66666674%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333337%}.column.is-offset-10-widescreen{margin-left:83.33333337%}.column.is-11-widescreen{flex:none;width:91.66666674%}.column.is-offset-11-widescreen{margin-left:91.66666674%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none;width:unset}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.33333337%}.column.is-offset-1-fullhd{margin-left:8.33333337%}.column.is-2-fullhd{flex:none;width:16.66666674%}.column.is-offset-2-fullhd{margin-left:16.66666674%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333337%}.column.is-offset-4-fullhd{margin-left:33.33333337%}.column.is-5-fullhd{flex:none;width:41.66666674%}.column.is-offset-5-fullhd{margin-left:41.66666674%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333337%}.column.is-offset-7-fullhd{margin-left:58.33333337%}.column.is-8-fullhd{flex:none;width:66.66666674%}.column.is-offset-8-fullhd{margin-left:66.66666674%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333337%}.column.is-offset-10-fullhd{margin-left:83.33333337%}.column.is-11-fullhd{flex:none;width:91.66666674%}.column.is-offset-11-fullhd{margin-left:91.66666674%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333337%}.tile.is-2{flex:none;width:16.66666674%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333337%}.tile.is-5{flex:none;width:41.66666674%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333337%}.tile.is-8{flex:none;width:66.66666674%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333337%}.tile.is-11{flex:none;width:91.66666674%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,0.7)}.hero.is-light .subtitle{color:rgba(0,0,0,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#fff}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#fff}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#fff;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{color:#363636 !important;opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#4eb5de !important;opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{color:#2e63b8 !important;opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{color:#209cee !important;opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{color:#22c35b !important;opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#ffdd57 !important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{color:#da0b00 !important;opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 6 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}details.admonition.is-details>.admonition-header{list-style:none}details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}#documenter .docs-sidebar #documenter-search-query{color:#707070;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(0,0,0,0.6);box-shadow:0 2px 0 1px rgba(0,0,0,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}.search-min-width-50{min-width:50%}.search-min-height-100{min-height:100%}.search-modal-card-body{max-height:calc(100vh - 15rem)}.search-result-link{border-radius:0.7em;transition:all 300ms}.search-result-link:hover,.search-result-link:focus{background-color:rgba(0,128,128,0.1)}.search-result-link .property-search-result-badge,.search-result-link .search-filter{transition:all 300ms}.property-search-result-badge,.search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}.search-result-link:hover .property-search-result-badge,.search-result-link:hover .search-filter,.search-result-link:focus .property-search-result-badge,.search-result-link:focus .search-filter{color:#f1f5f9;background-color:#333}.search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}.search-filter:hover,.search-filter:focus{color:#333}.search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}.search-filter-selected:hover,.search-filter-selected:focus{color:#f5f5f5}.search-result-highlight{background-color:#ffdd57;color:black}.search-divider{border-bottom:1px solid #dbdbdb}.search-result-title{width:85%;color:#333}.search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}#search-modal .modal-card-body::-webkit-scrollbar,#search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}#search-modal .modal-card-body::-webkit-scrollbar-thumb,#search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}#search-modal .modal-card-body::-webkit-scrollbar-track,#search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}.w-100{width:100%}.gap-2{gap:0.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*!
Theme: Default
Description: Original highlight.js style
Author: (c) Ivan Sagalaev
@@ -7644,95 +6,4 @@ code.language-julia-repl > span.hljs-meta {
Website: https://highlightjs.org/
License: see project LICENSE
Touched: 2021
-*/
-/*
-This is left on purpose making default.css the single file that can be lifted
-as-is from the repository directly without the need for a build step
-
-Typically this "required" baseline CSS is added by `makestuff.js` during build.
-*/
-pre code.hljs {
- display: block;
- overflow-x: auto; }
-
-code.hljs {
- padding: 3px 5px; }
-
-/* end baseline CSS */
-.hljs {
- background: #F0F0F0;
- color: #444; }
-
-/* Base color: saturation 0; */
-.hljs-subst {
- /* default */ }
-
-/* purposely ignored */
-.hljs-comment {
- color: #888888; }
-
-.hljs-tag,
-.hljs-punctuation {
- color: #444a; }
-
-.hljs-tag .hljs-name,
-.hljs-tag .hljs-attr {
- color: #444; }
-
-.hljs-keyword,
-.hljs-attribute,
-.hljs-selector-tag,
-.hljs-meta .hljs-keyword,
-.hljs-doctag,
-.hljs-name {
- font-weight: bold; }
-
-/* User color: hue: 0 */
-.hljs-type,
-.hljs-string,
-.hljs-number,
-.hljs-selector-id,
-.hljs-selector-class,
-.hljs-quote,
-.hljs-template-tag,
-.hljs-deletion {
- color: #880000; }
-
-.hljs-title,
-.hljs-section {
- color: #880000;
- font-weight: bold; }
-
-.hljs-regexp,
-.hljs-symbol,
-.hljs-variable,
-.hljs-template-variable,
-.hljs-link,
-.hljs-selector-attr,
-.hljs-operator,
-.hljs-selector-pseudo {
- color: #BC6060; }
-
-/* Language color: hue: 90; */
-.hljs-literal {
- color: #78A960; }
-
-.hljs-built_in,
-.hljs-bullet,
-.hljs-code,
-.hljs-addition {
- color: #397300; }
-
-/* Meta color: hue: 200 */
-.hljs-meta {
- color: #1f7199; }
-
-.hljs-meta .hljs-string {
- color: #4d99bf; }
-
-/* Misc effects */
-.hljs-emphasis {
- font-style: italic; }
-
-.hljs-strong {
- font-weight: bold; }
+*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#F3F3F3;color:#444}.hljs-comment{color:#697070}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#ab5656}.hljs-literal{color:#695}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold}
diff --git a/previews/PR237/assets/themeswap.js b/previews/PR237/assets/themeswap.js
index c58e993e3..9f5eebe6a 100644
--- a/previews/PR237/assets/themeswap.js
+++ b/previews/PR237/assets/themeswap.js
@@ -1,20 +1,17 @@
// Small function to quickly swap out themes. Gets put into the tag..
function set_theme_from_local_storage() {
- // Intialize the theme to null, which means default
+ // Initialize the theme to null, which means default
var theme = null;
// If the browser supports the localstorage and is not disabled then try to get the
// documenter theme
- if(window.localStorage != null) {
+ if (window.localStorage != null) {
// Get the user-picked theme from localStorage. May be `null`, which means the default
// theme.
- theme = window.localStorage.getItem("documenter-theme");
+ theme = window.localStorage.getItem("documenter-theme");
}
- // Check if the browser supports user color preference
- var darkPreference = false;
// Check if the users preference is for dark color scheme
- if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) {
- darkPreference = true;
- }
+ var darkPreference =
+ window.matchMedia("(prefers-color-scheme: dark)").matches === true;
// Initialize a few variables for the loop:
//
// - active: will contain the index of the theme that should be active. Note that there
@@ -24,43 +21,64 @@ function set_theme_from_local_storage() {
//
// - disabled: style sheets that should be disabled (i.e. all the theme style sheets
// that are not the currently active theme)
- var active = null; var disabled = []; var darkTheme = null;
+ var active = null;
+ var disabled = [];
+ var primaryLightTheme = null;
+ var primaryDarkTheme = null;
for (var i = 0; i < document.styleSheets.length; i++) {
var ss = document.styleSheets[i];
// The tag of each style sheet is expected to have a data-theme-name attribute
// which must contain the name of the theme. The names in localStorage much match this.
var themename = ss.ownerNode.getAttribute("data-theme-name");
// attribute not set => non-theme stylesheet => ignore
- if(themename === null) continue;
+ if (themename === null) continue;
// To distinguish the default (primary) theme, it needs to have the data-theme-primary
// attribute set.
- var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null);
- // Check if the theme is primary dark theme
- var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null);
- // If ss is for dark theme then set the value of darkTheme to the name of the theme
- if(isDarkTheme) darkTheme = themename;
+ if (ss.ownerNode.getAttribute("data-theme-primary") !== null) {
+ primaryLightTheme = themename;
+ }
+ // Check if the theme is primary dark theme so that we could store its name in darkTheme
+ if (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null) {
+ primaryDarkTheme = themename;
+ }
// If we find a matching theme (and it's not the default), we'll set active to non-null
- if(themename === theme) active = i;
+ if (themename === theme) active = i;
// Store the style sheets of inactive themes so that we could disable them
- if(themename !== theme) disabled.push(ss);
+ if (themename !== theme) disabled.push(ss);
}
- if(active !== null) {
+ var activeTheme = null;
+ if (active !== null) {
// If we did find an active theme, we'll (1) add the theme--$(theme) class to
- document.getElementsByTagName('html')[0].className = "theme--" + theme;
- // and (2) disable all the other theme stylesheets
- disabled.forEach(function(ss){
- ss.disabled = true;
- });
+ document.getElementsByTagName("html")[0].className = "theme--" + theme;
+ activeTheme = theme;
+ } else {
+ // If we did _not_ find an active theme, then we need to fall back to the primary theme
+ // which can either be dark or light, depending on the user's OS preference.
+ var activeTheme = darkPreference ? primaryDarkTheme : primaryLightTheme;
+ // In case it somehow happens that the relevant primary theme was not found in the
+ // preceding loop, we abort without doing anything.
+ if (activeTheme === null) {
+ console.error("Unable to determine primary theme.");
+ return;
+ }
+ // When switching to the primary light theme, then we must not have a class name
+ // for the tag. That's only for non-primary or the primary dark theme.
+ if (darkPreference) {
+ document.getElementsByTagName("html")[0].className =
+ "theme--" + activeTheme;
+ } else {
+ document.getElementsByTagName("html")[0].className = "";
+ }
}
- else if(darkTheme !== null && darkPreference === true) {
- // If we did find an active theme, we'll (1) add the theme--$(theme) class to
- document.getElementsByTagName('html')[0].className = "theme--" + darkTheme;
- // and (2) disable all the other theme stylesheets
- disabled.forEach(function(ss){
- if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) {
- ss.disabled = true;
- }
- });
+ for (var i = 0; i < document.styleSheets.length; i++) {
+ var ss = document.styleSheets[i];
+ // The tag of each style sheet is expected to have a data-theme-name attribute
+ // which must contain the name of the theme. The names in localStorage much match this.
+ var themename = ss.ownerNode.getAttribute("data-theme-name");
+ // attribute not set => non-theme stylesheet => ignore
+ if (themename === null) continue;
+ // we'll disable all the stylesheets, except for the active one
+ ss.disabled = !(themename == activeTheme);
}
}
set_theme_from_local_storage();
diff --git a/previews/PR237/assets/warner.js b/previews/PR237/assets/warner.js
index 5531c8851..3f6f5d008 100644
--- a/previews/PR237/assets/warner.js
+++ b/previews/PR237/assets/warner.js
@@ -1,49 +1,52 @@
-function maybeAddWarning () {
- // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE
- // in siteinfo.js.
- // If either of these are undefined something went horribly wrong, so we abort.
- if (
- window.DOCUMENTER_NEWEST === undefined ||
- window.DOCUMENTER_CURRENT_VERSION === undefined ||
- window.DOCUMENTER_STABLE === undefined
- ) {
- return
- };
+function maybeAddWarning() {
+ // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE
+ // in siteinfo.js.
+ // If either of these are undefined something went horribly wrong, so we abort.
+ if (
+ window.DOCUMENTER_NEWEST === undefined ||
+ window.DOCUMENTER_CURRENT_VERSION === undefined ||
+ window.DOCUMENTER_STABLE === undefined
+ ) {
+ return;
+ }
- // Current version is not a version number, so we can't tell if it's the newest version. Abort.
- if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) {
- return
- };
+ // Current version is not a version number, so we can't tell if it's the newest version. Abort.
+ if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) {
+ return;
+ }
- // Current version is newest version, so no need to add a warning.
- if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) {
- return
- };
+ // Current version is newest version, so no need to add a warning.
+ if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) {
+ return;
+ }
- // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs.
- if (document.body.querySelector('meta[name="robots"]') === null) {
- const meta = document.createElement('meta');
- meta.name = 'robots';
- meta.content = 'noindex';
+ // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs.
+ if (document.body.querySelector('meta[name="robots"]') === null) {
+ const meta = document.createElement("meta");
+ meta.name = "robots";
+ meta.content = "noindex";
- document.getElementsByTagName('head')[0].appendChild(meta);
- };
+ document.getElementsByTagName("head")[0].appendChild(meta);
+ }
- const div = document.createElement('div');
- div.classList.add('outdated-warning-overlay');
- const closer = document.createElement('button');
- closer.classList.add('outdated-warning-closer', 'delete');
- closer.addEventListener('click', function () {
- document.body.removeChild(div);
- });
- const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE;
- div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.Click here to go to the documentation for the latest stable release. ';
- div.appendChild(closer);
- document.body.appendChild(div);
-};
+ const div = document.createElement("div");
+ div.classList.add("outdated-warning-overlay");
+ const closer = document.createElement("button");
+ closer.classList.add("outdated-warning-closer", "delete");
+ closer.addEventListener("click", function () {
+ document.body.removeChild(div);
+ });
+ const href = window.documenterBaseURL + "/../" + window.DOCUMENTER_STABLE;
+ div.innerHTML =
+ 'This documentation is not for the latest stable release, but for either the development version or an older release.Click here to go to the documentation for the latest stable release. ';
+ div.appendChild(closer);
+ document.body.appendChild(div);
+}
-if (document.readyState === 'loading') {
- document.addEventListener('DOMContentLoaded', maybeAddWarning);
+if (document.readyState === "loading") {
+ document.addEventListener("DOMContentLoaded", maybeAddWarning);
} else {
- maybeAddWarning();
-};
+ maybeAddWarning();
+}
diff --git a/previews/PR237/benchmarks/lotkavolterra/index.html b/previews/PR237/benchmarks/lotkavolterra/index.html
index dd4019f35..908477345 100644
--- a/previews/PR237/benchmarks/lotkavolterra/index.html
+++ b/previews/PR237/benchmarks/lotkavolterra/index.html
@@ -1,5 +1,5 @@
-Non-stiff ODE: Lotka-Volterra · ProbNumDiffEq.jl Adapted from SciMLBenchmarks.jl .
using LinearAlgebra, Statistics, InteractiveUtils
+Non-stiff ODE: Lotka-Volterra · ProbNumDiffEq.jl Adapted from SciMLBenchmarks.jl .
using LinearAlgebra, Statistics, InteractiveUtils
using DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Plots
using ProbNumDiffEq
@@ -182,4 +182,4 @@
Threads: 12 on 12 virtual cores
Environment:
JULIA_NUM_THREADS = auto
- JULIA_STACKTRACE_MINIMAL = true
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+ JULIA_STACKTRACE_MINIMAL = true
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/benchmarks/multi-language-wrappers/index.html b/previews/PR237/benchmarks/multi-language-wrappers/index.html
index 035dac311..06eb79124 100644
--- a/previews/PR237/benchmarks/multi-language-wrappers/index.html
+++ b/previews/PR237/benchmarks/multi-language-wrappers/index.html
@@ -1,5 +1,5 @@
-Multi-Language Wrapper Benchmark · ProbNumDiffEq.jl Adapted from SciMLBenchmarks.jl multi-language wrapper benchmark .
# Imports
+Multi-Language Wrapper Benchmark · ProbNumDiffEq.jl Adapted from SciMLBenchmarks.jl multi-language wrapper benchmark .
# Imports
using LinearAlgebra, Statistics, InteractiveUtils
using StaticArrays, DiffEqDevTools, ParameterizedFunctions, Plots, SciMLBase, OrdinaryDiffEq
using ODEInterface, ODEInterfaceDiffEq, Sundials, SciPyDiffEq, deSolveDiffEq, MATLABDiffEq, LSODA
@@ -273,4 +273,4 @@
Threads: 12 on 12 virtual cores
Environment:
JULIA_NUM_THREADS = auto
- JULIA_STACKTRACE_MINIMAL = true
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+ JULIA_STACKTRACE_MINIMAL = true
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/benchmarks/rober/index.html b/previews/PR237/benchmarks/rober/index.html
index 51ebdc4a6..d2314ecd3 100644
--- a/previews/PR237/benchmarks/rober/index.html
+++ b/previews/PR237/benchmarks/rober/index.html
@@ -1,5 +1,5 @@
-DAE: ROBER · ProbNumDiffEq.jl Adapted from SciMLBenchmarks.jl .
using LinearAlgebra, Statistics, InteractiveUtils
+DAE: ROBER · ProbNumDiffEq.jl Adapted from SciMLBenchmarks.jl .
using LinearAlgebra, Statistics, InteractiveUtils
using DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Sundials, Plots
using ModelingToolkit
using ProbNumDiffEq
@@ -67,4 +67,4 @@
Threads: 12 on 12 virtual cores
Environment:
JULIA_NUM_THREADS = auto
- JULIA_STACKTRACE_MINIMAL = true
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+ JULIA_STACKTRACE_MINIMAL = true
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/benchmarks/vanderpol/index.html b/previews/PR237/benchmarks/vanderpol/index.html
index 1a01e2ff1..332f2b346 100644
--- a/previews/PR237/benchmarks/vanderpol/index.html
+++ b/previews/PR237/benchmarks/vanderpol/index.html
@@ -1,5 +1,5 @@
-Stiff ODE: Van der Pol · ProbNumDiffEq.jl using LinearAlgebra, Statistics, InteractiveUtils
+Stiff ODE: Van der Pol · ProbNumDiffEq.jl using LinearAlgebra, Statistics, InteractiveUtils
using DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Plots
using ProbNumDiffEq
@@ -100,4 +100,4 @@
Threads: 12 on 12 virtual cores
Environment:
JULIA_NUM_THREADS = auto
- JULIA_STACKTRACE_MINIMAL = true
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+ JULIA_STACKTRACE_MINIMAL = true
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/diffusions/index.html b/previews/PR237/diffusions/index.html
index 02701a5d9..a9fd2173a 100644
--- a/previews/PR237/diffusions/index.html
+++ b/previews/PR237/diffusions/index.html
@@ -1,8 +1,13 @@
-Diffusion models and calibration · ProbNumDiffEq.jl The notion of "diffusion" and "calibration" relates to the prior part of the model.
We model the ODE solution $y(t)$ with a Gauss–Markov prior. More precisely, let
\[\begin{aligned}
+
Diffusion models and calibration · ProbNumDiffEq.jl The notion of "diffusion" and "calibration" relates to the prior part of the model.
We model the ODE solution $y(t)$ with a Gauss–Markov prior. More precisely, let
\[\begin{aligned}
Y(t) = \left[ Y^{(0)}(t), Y^{(1)}(t), \dots Y^{(q)}(t) \right],
\end{aligned}\]
be the solution to the SDE
\[\begin{aligned}
\text{d} Y^{(i)}(t) &= Y^{(i+1)}(t) \ \text{d}t, \qquad i = 0, \dots, q-1, \\
\text{d} Y^{(q)}(t) &= \textcolor{#389826}{A} Y(t) \ \text{d}t + \textcolor{#4063D8}{\Gamma} \ \text{d}W(t), \\
Y(0) &\sim \textcolor{purple}{ \mathcal{N} \left( \mu_0, \Sigma_0 \right) }.
-\end{aligned}\]
Then $Y^{(i)}(t)$ models the $i$ -th derivative of $y(t)$ . In this section, we consider choices relating to the "diffusion" $\textcolor{#4063D8}{\Gamma}$ . If you're more interested in the drift matrix $\textcolor{#389826}{A}$ check out the Priors section, and for info on the initial distribution $\textcolor{purple}{ \mathcal{N} \left( \mu_0, \Sigma_0 \right) }$ check out the Initialization section.
We call $\textcolor{#4063D8}{\Gamma}$ the "diffusion" parameter. Since it is typically not known we need to estimate it; this is called "calibration" .
There are a few different choices for how to model and estimate $\textcolor{#4063D8}{\Gamma}$ :
FixedDiffusion
assumes an isotropic, time-fixed $\textcolor{#4063D8}{\Gamma} = \sigma \cdot I_d$ ,DynamicDiffusion
assumes an isotropic, time-varying $\textcolor{#4063D8}{\Gamma}(t) = \sigma(t) \cdot I_d$ (recommended ),FixedMVDiffusion
assumes a diagonal, time-fixed $\textcolor{#4063D8}{\Gamma} = \operatorname{diag}(\sigma_1, \dots, \sigma_d)$ ,DynamicMVDiffusion
assumes a diagonal, time-varying $\textcolor{#4063D8}{\Gamma}(t) = \operatorname{diag}(\sigma_1(t), \dots, \sigma_d(t))$ .Or more compactly:
For more details on diffusions and calibration, check out this paper [1] .
DynamicDiffusion()
Time-varying, isotropic diffusion, which is quasi-maximum-likelihood-estimated at each step.
This is the recommended diffusion when using adaptive step-size selection, and in particular also when solving stiff systems.
source FixedDiffusion(; initial_diffusion=1.0, calibrate=true)
Time-fixed, isotropic diffusion, which is (optionally) quasi-maximum-likelihood-estimated.
This is the recommended diffusion when using fixed steps.
By default with calibrate=true
, all covariances are re-scaled at the end of the solve with the MLE diffusion. Set calibrate=false
to skip this step, e.g. when setting the initial_diffusion
and then estimating the diffusion outside of the solver (e.g. with Fenrir.jl ).
source DynamicMVDiffusion()
Time-varying, diagonal diffusion, which is quasi-maximum-likelihood-estimated at each step.
Only works with the EK0
!
A multi-variate version of DynamicDiffusion
, where instead of an isotropic matrix, a diagonal matrix is estimated. This can be helpful to get more expressive posterior covariances when using the EK0
, since the individual dimensions can be adjusted separately.
See also [1] .
source FixedMVDiffusion(; initial_diffusion=1.0, calibrate=true)
Time-fixed, diagonal diffusion, which is quasi-maximum-likelihood-estimated at each step.
Only works with the EK0
!
A multi-variate version of FixedDiffusion
, where instead of an isotropic matrix, a diagonal matrix is estimated. This can be helpful to get more expressive posterior covariances when using the EK0
, since the individual dimensions can be adjusted separately.
See also [1] .
source [1] N. Bosch, P. Hennig, F. Tronarp: Calibrated Adaptive Probabilistic ODE Solvers (2021) (link )
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+\end{aligned}\]Then $Y^{(i)}(t)$ models the $i$ -th derivative of $y(t)$ . In this section, we consider choices relating to the "diffusion" $\textcolor{#4063D8}{\Gamma}$ . If you're more interested in the drift matrix $\textcolor{#389826}{A}$ check out the Priors section, and for info on the initial distribution $\textcolor{purple}{ \mathcal{N} \left( \mu_0, \Sigma_0 \right) }$ check out the Initialization section.
We call $\textcolor{#4063D8}{\Gamma}$ the "diffusion" parameter. Since it is typically not known we need to estimate it; this is called "calibration" .
There are a few different choices for how to model and estimate $\textcolor{#4063D8}{\Gamma}$ :
FixedDiffusion
assumes an isotropic, time-fixed $\textcolor{#4063D8}{\Gamma} = \sigma \cdot I_d$ ,DynamicDiffusion
assumes an isotropic, time-varying $\textcolor{#4063D8}{\Gamma}(t) = \sigma(t) \cdot I_d$ (recommended ),FixedMVDiffusion
assumes a diagonal, time-fixed $\textcolor{#4063D8}{\Gamma} = \operatorname{diag}(\sigma_1, \dots, \sigma_d)$ ,DynamicMVDiffusion
assumes a diagonal, time-varying $\textcolor{#4063D8}{\Gamma}(t) = \operatorname{diag}(\sigma_1(t), \dots, \sigma_d(t))$ .Or more compactly:
For more details on diffusions and calibration, check out this paper [6] .
DynamicDiffusion()
Time-varying, isotropic diffusion, which is quasi-maximum-likelihood-estimated at each step.
This is the recommended diffusion when using adaptive step-size selection, and in particular also when solving stiff systems.
source FixedDiffusion(; initial_diffusion=1.0, calibrate=true)
Time-fixed, isotropic diffusion, which is (optionally) quasi-maximum-likelihood-estimated.
This is the recommended diffusion when using fixed steps.
By default with calibrate=true
, all covariances are re-scaled at the end of the solve with the MLE diffusion. Set calibrate=false
to skip this step, e.g. when setting the initial_diffusion
and then estimating the diffusion outside of the solver (e.g. with Fenrir.jl ).
source DynamicMVDiffusion()
Time-varying, diagonal diffusion, which is quasi-maximum-likelihood-estimated at each step.
Only works with the EK0
!
A multi-variate version of DynamicDiffusion
, where instead of an isotropic matrix, a diagonal matrix is estimated. This can be helpful to get more expressive posterior covariances when using the EK0
, since the individual dimensions can be adjusted separately.
References
[6] Bosch et al, "Calibrated Adaptive Probabilistic ODE Solvers", AISTATS (2021)source FixedMVDiffusion(; initial_diffusion=1.0, calibrate=true)
Time-fixed, diagonal diffusion, which is quasi-maximum-likelihood-estimated at each step.
Only works with the EK0
!
A multi-variate version of FixedDiffusion
, where instead of an isotropic matrix, a diagonal matrix is estimated. This can be helpful to get more expressive posterior covariances when using the EK0
, since the individual dimensions can be adjusted separately.
References
[6] Bosch et al, "Calibrated Adaptive Probabilistic ODE Solvers", AISTATS (2021)source [6]
+
+N. Bosch, P. Hennig and F. Tronarp.
Calibrated Adaptive Probabilistic ODE Solvers . In: Proceedings of The 24th International Conference on Artificial
+ Intelligence and Statistics, Proceedings of Machine Learning Research, 3466–3474, PMLR (2021).
+
+
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/fenrir/index.html b/previews/PR237/fenrir/index.html
deleted file mode 100644
index 6157afd94..000000000
--- a/previews/PR237/fenrir/index.html
+++ /dev/null
@@ -1,314 +0,0 @@
-
-Parameter Inference · ProbNumDiffEq.jl using LinearAlgebra
-using OrdinaryDiffEq, ProbNumDiffEq, Plots
-using Fenrir
-using Optimization, OptimizationOptimJL
-stack(x) = copy(reduce(hcat, x)') # convenient
Let's assume we have an initial value problem (IVP)
\[\begin{aligned}
-\dot{y} &= f_\theta(y, t), \qquad y(t_0) = y_0,
-\end{aligned}\]
which we observe through a set $\mathcal{D} = \{u(t_n)\}_{n=1}^N$ of noisy data points
\[\begin{aligned}
-u(t_n) = H y(t_n) + v_n, \qquad v_n \sim \mathcal{N}(0, R).
-\end{aligned}\]
The question of interest is: How can we compute the marginal likelihood $p(\mathcal{D} \mid \theta)$ ? Short answer: We can't. It's intractable, because computing the true IVP solution exactly $y(t)$ is intractable. What we can do however is compute an approximate marginal likelihood. This is what Fenrir.jl provides. For details, check out the paper .
Let's assume that the true underlying dynamics are given by a FitzHugh-Nagumo model
function f(du, u, p, t)
- a, b, c = p
- du[1] = c*(u[1] - u[1]^3/3 + u[2])
- du[2] = -(1/c)*(u[1] - a - b*u[2])
-end
-u0 = [-1.0, 1.0]
-tspan = (0.0, 20.0)
-p = (0.2, 0.2, 3.0)
-true_prob = ODEProblem(f, u0, tspan, p)
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
-timespan: (0.0, 20.0)
-u0: 2-element Vector{Float64}:
- -1.0
- 1.0
from which we generate some artificial noisy data
true_sol = solve(true_prob, Vern9(), abstol=1e-10, reltol=1e-10)
-
-times = 1:0.5:20
-observation_noise_var = 1e-1
-odedata = [true_sol(t) .+ sqrt(observation_noise_var) * randn(length(u0)) for t in times]
-
-plot(true_sol, color=:black, linestyle=:dash, label=["True Solution" ""])
-scatter!(times, stack(odedata), markersize=2, markerstrokewidth=0.1, color=1, label=["Noisy Data" ""])
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Our goal is then to recover the true parameter p
(and thus also the true trajectoy plotted above) the noisy data.
To do parameter inference - be it maximum-likelihod, maximum a posteriori, or full Bayesian inference with MCMC - we need to evaluate the likelihood of given a parameter estimate $\theta_\text{est}$ . This is exactly what Fenrir.jl's fenrir_nll
provides:
p_est = (0.1, 0.1, 2.0)
-prob = remake(true_prob, p=p_est)
-data = (t=times, u=odedata)
-κ² = 1e10
-nll, _, _ = fenrir_nll(prob, data, observation_noise_var, κ²; dt=1e-1)
-nll
258.2038632717274
This is the negative marginal log-likelihood of the parameter p_est
. You can use it as any other NLL: Optimize it to compute maximum-likelihood estimates or MAPs, or plug it into MCMC to sample from the posterior. In our paper we compute MLEs by pairing Fenrir with Optimization.jl and ForwardDiff.jl . Let's quickly explore how to do this next.
To compute a maximum-likelihood estimate (MLE), we just need to maximize $\theta \to p(\mathcal{D} \mid \theta)$ - that is, minimize the nll
from above. We use Optimization.jl for this. First, define a loss function and create an OptimizationProblem
function loss(x, _)
- ode_params = x[begin:end-1]
- prob = remake(true_prob, p=ode_params)
- κ² = exp(x[end]) # the diffusion parameter of the EK1
- return fenrir_nll(prob, data, observation_noise_var, κ²; dt=1e-1)
-end
-
-fun = OptimizationFunction(loss, Optimization.AutoForwardDiff())
-optprob = OptimizationProblem(
- fun, [p_est..., 1e0];
- lb=[0.0, 0.0, 0.0, -10], ub=[1.0, 1.0, 5.0, 20] # lower and upper bounds
-)
OptimizationProblem. In-place: true
-u0: 4-element Vector{Float64}:
- 0.1
- 0.1
- 2.0
- 1.0
Then, just solve
it! Here we use LBFGS:
optsol = solve(optprob, LBFGS())
-p_mle = optsol.u[1:3]
3-element Vector{Float64}:
- 0.2193482282030116
- 0.10191370670130714
- 3.0004860902642467
Success! The computed MLE is quite close to the true parameter which we used to generate the data. As a final step, let's plot the true solution, the data, and the result of the MLE:
plot(true_sol, color=:black, linestyle=:dash, label=["True Solution" ""])
-scatter!(times, stack(odedata), markersize=2, markerstrokewidth=0.1, color=1, label=["Noisy Data" ""])
-mle_sol = solve(remake(true_prob, p=p_mle), EK1())
-plot!(mle_sol, color=3, label=["MLE-parameter Solution" ""])
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Looks good!
[1] F. Tronarp, N. Bosch, P. Hennig: Fenrir: Fenrir: Physics-Enhanced Regression for Initial Value Problems (2022)
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
diff --git a/previews/PR237/filtering/index.html b/previews/PR237/filtering/index.html
index d4a822cb3..99b5b213c 100644
--- a/previews/PR237/filtering/index.html
+++ b/previews/PR237/filtering/index.html
@@ -1,16 +1,16 @@
-Filtering and Smoothing · ProbNumDiffEq.jl predict(x::Gaussian, A::AbstractMatrix, Q::AbstractMatrix)
Prediction step in Kalman filtering for linear dynamics models.
Given a Gaussian $x = \mathcal{N}(μ, Σ)$ , compute and return $\mathcal{N}(A μ, A Σ A^T + Q)$ .
See also the non-allocating square-root version predict!
.
source predict!(x_out, x_curr, Ah, Qh, cachemat)
In-place and square-root implementation of predict
which saves the result into x_out
.
Only works with PSDMatrices.PSDMatrix
types as Ah
, Qh
, and in the covariances of x_curr
and x_out
(both of type Gaussian
). To prevent allocations, a cache matrix cachemat
of size $D \times 2D$ (where $D \times D$ is the size of Ah
and Qh
) needs to be passed.
See also: predict
.
source update(x, measurement, H)
Update step in Kalman filtering for linear dynamics models.
Given a Gaussian $x = \mathcal{N}(μ, Σ)$ and a measurement $z = \mathcal{N}(\hat{z}, S)$ , with $S = H Σ H^T$ , compute
\[\begin{aligned}
+
Filtering and Smoothing · ProbNumDiffEq.jl predict(x::Gaussian, A::AbstractMatrix, Q::AbstractMatrix)
Prediction step in Kalman filtering for linear dynamics models.
Given a Gaussian $x = \mathcal{N}(μ, Σ)$ , compute and return $\mathcal{N}(A μ, A Σ A^T + Q)$ .
See also the non-allocating square-root version predict!
.
source predict!(x_out, x_curr, Ah, Qh, cachemat)
In-place and square-root implementation of predict
which saves the result into x_out
.
Only works with PSDMatrices.PSDMatrix
types as Ah
, Qh
, and in the covariances of x_curr
and x_out
(both of type Gaussian
). To prevent allocations, a cache matrix cachemat
of size $D \times 2D$ (where $D \times D$ is the size of Ah
and Qh
) needs to be passed.
See also: predict
.
source update(x, measurement, H)
Update step in Kalman filtering for linear dynamics models.
Given a Gaussian $x = \mathcal{N}(μ, Σ)$ and a measurement $z = \mathcal{N}(\hat{z}, S)$ , with $S = H Σ H^T$ , compute
\[\begin{aligned}
K &= Σ^P H^T S^{-1}, \\
μ^F &= μ + K (0 - \hat{z}), \\
Σ^F &= Σ - K S K^T,
-\end{aligned}\]
and return an updated state \mathcal{N}(μ^F, Σ^F)
. Note that this assumes zero-measurements. When called with ProbNumDiffEq.SquarerootMatrix
type arguments it performs the update in Joseph / square-root form.
For better performance, we recommend to use the non-allocating update!
.
source update!(x_out, x_pred, measurement, H, K_cache, M_cache, S_cache)
In-place and square-root implementation of update
which saves the result into x_out
.
Implemented in Joseph Form to retain the PSDMatrix
covariances:
\[\begin{aligned}
+\end{aligned}\]
and return an updated state \mathcal{N}(μ^F, Σ^F)
. Note that this assumes zero-measurements. When called with ProbNumDiffEq.SquarerootMatrix
type arguments it performs the update in Joseph / square-root form.
For better performance, we recommend to use the non-allocating update!
.
source update!(x_out, x_pred, measurement, H, K_cache, M_cache, S_cache)
In-place and square-root implementation of update
which saves the result into x_out
.
Implemented in Joseph Form to retain the PSDMatrix
covariances:
\[\begin{aligned}
K &= Σ^P H^T S^{-1}, \\
μ^F &= μ + K (0 - \hat{z}), \\
\sqrt{Σ}^F &= (I - KH) \sqrt(Σ),
-\end{aligned}\]
where $\sqrt{M}$ denotes the left square-root of a matrix M, i.e. $M = \sqrt{M} \sqrt{M}^T$ .
To prevent allocations, write into caches K_cache
and M_cache
, both of size D × D
, and S_cache
of same type as measurement.Σ
.
See also: update
.
source smooth(x_curr, x_next_smoothed, A, Q)
Update step of the Kalman smoother, aka. Rauch-Tung-Striebel smoother, for linear dynamics models.
Given Gaussians $x_n = \mathcal{N}(μ_{n}, Σ_{n})$ and $x_{n+1} = \mathcal{N}(μ_{n+1}^S, Σ_{n+1}^S)$ , compute
\[\begin{aligned}
+\end{aligned}\]
where $\sqrt{M}$ denotes the left square-root of a matrix M, i.e. $M = \sqrt{M} \sqrt{M}^T$ .
To prevent allocations, write into caches K_cache
and M_cache
, both of size D × D
, and S_cache
of same type as measurement.Σ
.
See also: update
.
source smooth(x_curr, x_next_smoothed, A, Q)
Update step of the Kalman smoother, aka. Rauch-Tung-Striebel smoother, for linear dynamics models.
Given Gaussians $x_n = \mathcal{N}(μ_{n}, Σ_{n})$ and $x_{n+1} = \mathcal{N}(μ_{n+1}^S, Σ_{n+1}^S)$ , compute
\[\begin{aligned}
μ_{n+1}^P &= A μ_n^F, \\
P_{n+1}^P &= A Σ_n^F A + Q, \\
G &= Σ_n^S A^T (Σ_{n+1}^P)^{-1}, \\
μ_n^S &= μ_n^F + G (μ_{n+1}^S - μ_{n+1}^P), \\
Σ_n^S &= (I - G A) Σ_n^F (I - G A)^T + G Q G^T + G Σ_{n+1}^S G^T,
-\end{aligned}\]
and return a smoothed state \mathcal{N}(μ_n^S, Σ_n^S)
. When called with ProbNumDiffEq.SquarerootMatrix
type arguments it performs the update in Joseph / square-root form.
For better performance, we recommend to use the non-allocating smooth!
.
source smooth!(x_curr, x_next, Ah, Qh, cache, diffusion=1)
In-place and square-root implementation of smooth
which overwrites x_curr
.
Implemented in Joseph form to preserve square-root structure. It requires access to the solvers cache
to prevent allocations.
See also: smooth
.
source
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+\end{aligned}\]
and return a smoothed state \mathcal{N}(μ_n^S, Σ_n^S)
. When called with ProbNumDiffEq.SquarerootMatrix
type arguments it performs the update in Joseph / square-root form.
For better performance, we recommend to use the non-allocating smooth!
.
source smooth!(x_curr, x_next, Ah, Qh, cache, diffusion=1)
In-place and square-root implementation of smooth
which overwrites x_curr
.
Implemented in Joseph form to preserve square-root structure. It requires access to the solvers cache
to prevent allocations.
See also: smooth
.
source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/getting_started/index.html b/previews/PR237/getting_started/index.html
deleted file mode 100644
index 0f5e6a35e..000000000
--- a/previews/PR237/getting_started/index.html
+++ /dev/null
@@ -1,250 +0,0 @@
-
-Getting Started · ProbNumDiffEq.jl In this tutorial we solve a simple non-linear ordinary differential equation (ODE) with the probabilistic numerical ODE solvers implemented in this package.
If you never used DifferentialEquations.jl, check out their "Getting Started with Differential Equations in Julia" tutorial . It explains how to define and solve ODE problems and how to analyze the solution, so it's a great starting point. Most of ProbNumDiffEq.jl works exaclty as you would expect from DifferentialEquations.jl – just with some added uncertainties and related functionality on top!
In this tutorial, we consider a Fitzhugh-Nagumo model described by an ODE of the form
\[\begin{aligned}
-\dot{y}_1 &= c (y_1 - \frac{y_1^3}{3} + y_2) \\
-\dot{y}_2 &= -\frac{1}{c} (y_1 - a - b y_2)
-\end{aligned}\]
on a time span $t \in [0, T]$ , with initial value $y(0) = y_0$ . In the following, we
define the problem with explicit choices of initial values, integration domains, and parameters, solve the problem with our ODE filters, and visualize the results and the corresponding uncertainties. using ProbNumDiffEq, Plots
-
-function fitz(du, u, p, t)
- a, b, c = p
- du[1] = c * (u[1] - u[1]^3 / 3 + u[2])
- du[2] = -(1 / c) * (u[1] - a - b * u[2])
-end
-u0 = [-1.0; 1.0]
-tspan = (0.0, 20.0)
-p = (0.2, 0.2, 3.0)
-prob = ODEProblem(fitz, u0, tspan, p)
-
-sol = solve(prob, EK1())
-plot(sol)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-First, import ProbNumDiffEq.jl
using ProbNumDiffEq
Then, set up the ODEProblem
exactly as you would in DifferentialEquations.jl. Define the vector field
function fitz(du, u, p, t)
- a, b, c = p
- du[1] = c * (u[1] - u[1]^3 / 3 + u[2])
- du[2] = -(1 / c) * (u[1] - a - b * u[2])
-end
and then the ODEProblem
, with initial value u0
, time span tspan
, and parameters p
u0 = [-1.0; 1.0]
-tspan = (0.0, 20.0)
-p = (0.2, 0.2, 3.0)
-prob = ODEProblem(fitz, u0, tspan, p)
To solve the ODE we just use DifferentialEquations.jl's solve
interface, together with one of the algorithms implemented in this package. For now, let's use EK1
:
sol = solve(prob, EK1())
retcode: Success
-Interpolation: ODE Filter Posterior
-t: 267-element Vector{Float64}:
- 0.0
- 0.021276864853851562
- 0.05530062522770621
- 0.09069833974374658
- 0.13926827781702378
- 0.18486670656185625
- 0.24179366397911012
- 0.29051816272523345
- 0.3490769287679599
- 0.39571551758025386
- ⋮
- 19.52620471671648
- 19.57118993725592
- 19.618145281565827
- 19.669683561096146
- 19.72660662373306
- 19.789272758467693
- 19.860208126620186
- 19.94055004101715
- 20.0
-u: 267-element Vector{Vector{Float64}}:
- [-1.0, 1.0]
- [-0.978397898660792, 1.0098599972789337]
- [-0.9424079091803093, 1.0253304289278915]
- [-0.9028542905882085, 1.0410170752594412]
- [-0.8445349615757095, 1.0618117231749669]
- [-0.7847703259504633, 1.0804970332988895]
- [-0.7018976697192764, 1.1025562993298474]
- [-0.6220689201271808, 1.120179077132381]
- [-0.5125846235780992, 1.1395948416743367]
- [-0.4123024260246016, 1.1534759756505177]
- ⋮
- [2.0826740294562978, 0.9061101524201414]
- [2.078744560756929, 0.8805858429639564]
- [2.073202127513052, 0.8539368332415667]
- [2.0660462633712124, 0.824700271608408]
- [2.057329129463756, 0.7924433159689622]
- [2.0471229128144746, 0.7569883434598085]
- [2.035086153414764, 0.7169394922557271]
- [2.0210436519484176, 0.6717007174965183]
- [2.0104405118668915, 0.6383145073764349]
That's it! we just computed a probabilistic numerical ODE solution!
Let's plot the result with Plots.jl .
using Plots
-plot(sol)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Looks good! Looks like the EK1
managed to solve the Fitzhugh-Nagumo problem quite well.
To learn more about plotting ODE solutions, check out the plotting tutorial for DifferentialEquations.jl + Plots.jl provided here . Most of that works exactly as expected with ProbNumDiffEq.jl.
The plot above looks like a standard ODE solution – but it's not! The numerical errors are just so small that we can't see them in the plot, and the probabilistic error estimates are too. We can visualize them by plotting the errors and error estimates directly:
using OrdinaryDiffEq, Statistics
-reference = solve(prob, Vern9(), abstol=1e-9, reltol=1e-9, saveat=sol.t)
-errors = reduce(hcat, mean.(sol.pu) .- reference.u)'
-error_estimates = reduce(hcat, std.(sol.pu))'
-plot(sol.t, errors, label="error", color=[1 2], xlabel="t", ylabel="err")
-plot!(sol.t, zero(errors), ribbon=3error_estimates, label="error estimate",
- color=[1 2], alpha=0.2)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-The solution object returned by ProbNumDiffEq.jl mostly behaves just like any other ODESolution in DifferentialEquations.jl – with some added uncertainties and related functionality on top. So, sol
can be indexed
julia> sol[1]
2-element Vector{Float64}:
- -1.0
- 1.0
julia> sol[end]
2-element Vector{Float64}:
- 2.0104405118668915
- 0.6383145073764349
and has fields sol.t
and sol.u
which store the time points and mean estimates:
julia> sol.t[end]
20.0
julia> sol.u[end]
2-element Vector{Float64}:
- 2.0104405118668915
- 0.6383145073764349
But since sol
is a probabilistic numerical ODE solution, it contains a Gaussian distributions over solution values. The marginals of this posterior are stored in sol.pu
:
julia> sol.pu[end]
Gaussian{Vector{Float64},PSDMatrix{Float64, Matrix{Float64}}}([2.0104405118668915, 0.6383145073764349], 2x2 PSDMatrix{Float64, Matrix{Float64}}; R=[4.819328867067389e-5 0.0001500862816541403; -4.209242496334452e-5 -0.00013099898185081014; 4.6624624650994785e-7 6.695624542120659e-6; -9.34063581893802e-8 5.806477585391347e-8; 1.3698832861281912e-6 4.548663507958517e-6; -1.6958383599884084e-7 -5.775663746256311e-6; 0.0 0.0; 0.0 0.0])
You can compute means, covariances, and standard deviations via Statistics.jl:
julia> using Statistics
julia> mean(sol.pu[5])
2-element Vector{Float64}:
- -0.8445349615757095
- 1.0618117231749669
julia> cov(sol.pu[5])
2x2 PSDMatrix{Float64, Matrix{Float64}}
- Right square root: R=8×2 Matrix{Float64}:
- -2.8014e-6 -1.24815e-7
- 0.0 2.74772e-6
- 0.0 -2.32934e-21
- 0.0 -8.8012e-22
- 0.0 1.65932e-19
- 0.0 0.0
- 0.0 0.0
- 0.0 0.0
julia> std(sol.pu[5])
2-element Vector{Float64}:
- 2.8014003609811094e-6
- 2.7505533924662915e-6
Probabilistic numerical ODE solvers approximate the posterior distribution
\[p \Big( y(t) ~\big|~ y(0) = y_0, \{ \dot{y}(t_i) = f_\theta(y(t_i), t_i) \} \Big),\]
which describes a posterior not just for the discrete steps but for any $t$ in the continuous space $t \in [0, T]$ ; in classic ODE solvers, this is also known as "interpolation" or "dense output". The probabilistic solutions returned by our solvers can be interpolated as usual by treating them as functions, but they return Gaussian distributions
julia> sol(0.45)
Gaussian{Vector{Float64},PSDMatrix{Float64, Matrix{Float64}}}([-0.2773821283086793, 1.1675659430627094], 2x2 PSDMatrix{Float64, Matrix{Float64}}; R=[-3.208354407822495e-5 -4.78996984535617e-6; 0.0 1.926478845667932e-5; 0.0 1.4605790175623882e-5; 0.0 1.0839739026001365e-6; 0.0 5.6069326352075e-7; 0.0 0.0; 0.0 0.0; 0.0 0.0])
julia> mean(sol(0.45))
2-element Vector{Float64}:
- -0.2773821283086793
- 1.1675659430627094
Check out one of the other tutorials:
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
diff --git a/previews/PR237/implementation/index.html b/previews/PR237/implementation/index.html
index 16db9393c..a2870ade1 100644
--- a/previews/PR237/implementation/index.html
+++ b/previews/PR237/implementation/index.html
@@ -1,2 +1,2 @@
-Implementation via OrdinaryDiffEq.jl · ProbNumDiffEq.jl ProbNumDiffEq.jl builds directly on OrdinaryDiffEq.jl to benefit from its iterator interface, flexible step-size control, and efficient Jacobian calculations. But, this requires extending non-public APIs. This page is meant to provide an overview on which parts exactly ProbNumDiffEq.jl builds on.
For more discussion on the pros and cons of building on OrdinaryDiffEq.jl, see this thread on discourse .
ProbNumDiffEq.jl shares most of OrdinaryDiffEq.jl's implementation. In particular:
OrdinaryDiffEq.__init
builds the cache and the integrator, and calls OrdinaryDiffEq.initialize!
OrdinaryDiffEq.solve!
implements the actual iterator structure, withOrdinaryDiffEq.loopheader!
OrdinaryDiffEq.perform_step!
OrdinaryDiffEq.loopfooter!
OrdinaryDiffEq.postamble!
ProbNumDiffEq.jl builds around this structure and overloads some of the parts:
Algorithms: EK0/EK1 <: AbstractEK <: OrdinaryDiffEq.OrdinaryDiffEqAdaptiveAlgorithm
./src/algorithms.jl
provides the algorithms themselves./src/alg_utils.jl
implements many traits (e.g. relating to autodiff, implicitness, step-size control)Cache: EKCache <: AbstractODEFilterCache <: OrdinaryDiffEq.OrdinaryDiffEqCache
./src/caches.jl
implements the cache and its main constructor: OrdinaryDiffEq.alg_cache
Initialization and perform_step!
: via OrdinaryDiffEq.initialize!
and OrdinaryDiffEq.perform_step!
. Implemented in ./src/perform_step.jl
.Custom postamble by overloading OrdinaryDiffEq.postamble!
(which should always call OrdinaryDiffEq._postamble!
). This is where we do the "smoothing" of the solution. Implemented in ./src/integrator_utils.jl
. Custom saving by overloading OrdinaryDiffEq.savevalues!
(which should always call OrdinaryDiffEq._savevalues!
). Implemented in ./src/integrator_utils.jl
.DiffEqBase.__init
is currently overloaded to transform OOP problems into IIP problems (in ./src/solve.jl
).The solution object: ProbODESolution <: AbstractProbODESolution <: DiffEqBase.AbstractODESolution
./src/solution.jl
implements the main parts. Note that the main constructor DiffEqBase.build_solution
is called by OrdinaryDiffEq.__init
- so OrdinaryDiffEq.jl has control over its inputs.There is also MeanProbODESolution <: DiffEqBase.AbstractODESolution
: It allows handling the mean of a probabilistic ODE solution the same way one would handle any "standard" ODE solution - e.g. it is compatible with DiffEqDevTools.appxtrue
. AbstractODEFilterPosterior <: DiffEqBase.AbstractDiffEqInterpolation
is the current interpolant, but it does not actually fully handle the interpolation right now. This part might be subject to change soon.Plot recipe in ./src/solution_plotting.jl
Sampling in ./src/solution_sampling.jl
DiffEqBase.prepare_alg(::EK1{0})
; closely follows a similar function implemented in OrdinaryDiffEq.jl ./src/alg_utils.jl
this also required DiffEqBase.remake(::EK1)
DiffEqDevTools.appxtrue
is overloaded to work with ProbODESolution
(by just doing mean(sol)
). This also enables DiffEqDevTools.WorkPrecision
to work out of th box.
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+Implementation via OrdinaryDiffEq.jl · ProbNumDiffEq.jl ProbNumDiffEq.jl builds directly on OrdinaryDiffEq.jl to benefit from its iterator interface, flexible step-size control, and efficient Jacobian calculations. But, this requires extending non-public APIs. This page is meant to provide an overview on which parts exactly ProbNumDiffEq.jl builds on.
For more discussion on the pros and cons of building on OrdinaryDiffEq.jl, see this thread on discourse .
ProbNumDiffEq.jl shares most of OrdinaryDiffEq.jl's implementation. In particular:
OrdinaryDiffEq.__init
builds the cache and the integrator, and calls OrdinaryDiffEq.initialize!
OrdinaryDiffEq.solve!
implements the actual iterator structure, withOrdinaryDiffEq.loopheader!
OrdinaryDiffEq.perform_step!
OrdinaryDiffEq.loopfooter!
OrdinaryDiffEq.postamble!
ProbNumDiffEq.jl builds around this structure and overloads some of the parts:
Algorithms: EK0/EK1 <: AbstractEK <: OrdinaryDiffEq.OrdinaryDiffEqAdaptiveAlgorithm
./src/algorithms.jl
provides the algorithms themselves./src/alg_utils.jl
implements many traits (e.g. relating to autodiff, implicitness, step-size control)Cache: EKCache <: AbstractODEFilterCache <: OrdinaryDiffEq.OrdinaryDiffEqCache
./src/caches.jl
implements the cache and its main constructor: OrdinaryDiffEq.alg_cache
Initialization and perform_step!
: via OrdinaryDiffEq.initialize!
and OrdinaryDiffEq.perform_step!
. Implemented in ./src/perform_step.jl
.Custom postamble by overloading OrdinaryDiffEq.postamble!
(which should always call OrdinaryDiffEq._postamble!
). This is where we do the "smoothing" of the solution. Implemented in ./src/integrator_utils.jl
. Custom saving by overloading OrdinaryDiffEq.savevalues!
(which should always call OrdinaryDiffEq._savevalues!
). Implemented in ./src/integrator_utils.jl
.DiffEqBase.__init
is currently overloaded to transform OOP problems into IIP problems (in ./src/solve.jl
).The solution object: ProbODESolution <: AbstractProbODESolution <: DiffEqBase.AbstractODESolution
./src/solution.jl
implements the main parts. Note that the main constructor DiffEqBase.build_solution
is called by OrdinaryDiffEq.__init
- so OrdinaryDiffEq.jl has control over its inputs.There is also MeanProbODESolution <: DiffEqBase.AbstractODESolution
: It allows handling the mean of a probabilistic ODE solution the same way one would handle any "standard" ODE solution - e.g. it is compatible with DiffEqDevTools.appxtrue
. AbstractODEFilterPosterior <: DiffEqBase.AbstractDiffEqInterpolation
is the current interpolant, but it does not actually fully handle the interpolation right now. This part might be subject to change soon.Plot recipe in ./src/solution_plotting.jl
Sampling in ./src/solution_sampling.jl
DiffEqBase.prepare_alg(::EK1{0})
; closely follows a similar function implemented in OrdinaryDiffEq.jl ./src/alg_utils.jl
this also required DiffEqBase.remake(::EK1)
DiffEqDevTools.appxtrue
is overloaded to work with ProbODESolution
(by just doing mean(sol)
). This also enables DiffEqDevTools.WorkPrecision
to work out of th box.
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/index.html b/previews/PR237/index.html
index cc86fceac..77192edea 100644
--- a/previews/PR237/index.html
+++ b/previews/PR237/index.html
@@ -1,3 +1,3 @@
-Home · ProbNumDiffEq.jl
ProbNumDiffEq.jl provides probabilistic numerical solvers to the DifferentialEquations.jl ecosystem. The implemented ODE filters solve differential equations via Bayesian filtering and smoothing and compute not just a single point estimate of the true solution, but a posterior distribution that contains an estimate of its numerical approximation error.
For a short intro video, check out our poster presentation at JuliaCon2021 .
For more probabilistic numerics check out the ProbNum Python package. It implements probabilistic ODE solvers, but also probabilistic linear solvers, Bayesian quadrature, and many filtering and smoothing implementations.
Run Julia, enter ]
to bring up Julia's package manager, and add the ProbNumDiffEq.jl package:
julia> ]
-(v1.8) pkg> add ProbNumDiffEq
For a quick introduction check out the "Solving ODEs with Probabilistic Numerics " tutorial.
Two extended Kalman filtering-based probabilistic solvers: the explicit EK0
and semi-implicit EK1
. Adaptive step-size selection (by default with PI control) On-line uncertainty calibration, for multiple different measurement models Dense output Sampling from the solution Callback support Convenient plotting through a Plots.jl recipe Automatic differentiation via ForwardDiff.jl Supports arbitrary precision numbers via BigFloats.jl Specialized solvers for second-order ODEs (demo will be added) Compatible with DAEs in mass-matrix ODE form (demo will be added) N. Bosch, F. Tronarp, P. Hennig: Pick-and-Mix Information Operators for Probabilistic ODE Solvers (2022) N. Krämer, N. Bosch, J. Schmidt, P. Hennig: Probabilistic ODE Solutions in Millions of Dimensions (2021) N. Bosch, P. Hennig, F. Tronarp: Calibrated Adaptive Probabilistic ODE Solvers (2021) F. Tronarp, S. Särkkä, and P. Hennig: Bayesian ODE Solvers: The Maximum A Posteriori Estimate (2021) N. Krämer, P. Hennig: Stable Implementation of Probabilistic ODE Solvers (2020) H. Kersting, T. J. Sullivan, and P. Hennig: Convergence Rates of Gaussian Ode Filters (2020) F. Tronarp, H. Kersting, S. Särkkä, and P. Hennig: Probabilistic Solutions To Ordinary Differential Equations As Non-Linear Bayesian Filtering: A New Perspective (2019) M. Schober, S. Särkkä, and P. Hennig: A Probabilistic Model for the Numerical Solution of Initial Value Problems (2018) A much more detailed list of references, not only on ODE filters but on probabilistic numerics in general, can be found on the probabilistic-numerics.org homepage .
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+Home · ProbNumDiffEq.jl
ProbNumDiffEq.jl provides probabilistic numerical solvers to the DifferentialEquations.jl ecosystem. The implemented ODE filters solve differential equations via Bayesian filtering and smoothing and compute not just a single point estimate of the true solution, but a posterior distribution that contains an estimate of its numerical approximation error.
For a short intro video, check out our poster presentation at JuliaCon2021 .
Run Julia, enter ]
to bring up Julia's package manager, and add the ProbNumDiffEq.jl package:
julia> ]
+(v1.9) pkg> add ProbNumDiffEq
For a quick introduction check out the "Solving ODEs with Probabilistic Numerics " tutorial.
probdiffeq : Fast and feature-rich filtering-based probabilistic ODE solvers in JAX.ProbNum : Probabilistic numerics in Python. It has not only probabilistic ODE solvers, but also probabilistic linear solvers, Bayesian quadrature, and many filtering and smoothing implementations.Fenrir.jl : Parameter-inference in ODEs with probabilistic ODE solvers. This package builds on ProbNumDiffEq.jl to provide a negative marginal log-likelihood function, which can then be used with an optimizer or with MCMC for parameter inference.
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/initialization/index.html b/previews/PR237/initialization/index.html
index b073fbfad..3b121557a 100644
--- a/previews/PR237/initialization/index.html
+++ b/previews/PR237/initialization/index.html
@@ -1,5 +1,5 @@
-Initialization · ProbNumDiffEq.jl The notion of "initialization" relates to the prior part of the model.
We model the ODE solution $y(t)$ with a Gauss–Markov prior. More precisely, let
\[\begin{aligned}
+
Initialization · ProbNumDiffEq.jl The notion of "initialization" relates to the prior part of the model.
We model the ODE solution $y(t)$ with a Gauss–Markov prior. More precisely, let
\[\begin{aligned}
Y(t) = \left[ Y^{(0)}(t), Y^{(1)}(t), \dots Y^{(q)}(t) \right],
\end{aligned}\]
be the solution to the SDE
\[\begin{aligned}
\text{d} Y^{(i)}(t) &= Y^{(i+1)}(t) \ \text{d}t, \qquad i = 0, \dots, q-1 \\
@@ -11,4 +11,12 @@
\end{aligned}\]
It is clear that this contains quite some information for $Y(0)$ : The initial value $y_0$ and the vector field $f$ imply
\[\begin{aligned}
Y^{(0)}(0) &= y_0, \\
Y^{(1)}(0) &= f(y_0, 0).
-\end{aligned}\]
And it turns out that we can also compute higher-order derivatives of $y$ with the chain rule, which we can use to initialize $Y^{(i)}(0)$ . This, done efficiently with Taylor-mode autodiff by using TaylorIntegration.jl , is what TaylorModeInit
does. See also [1] .
In the vast majority of cases, just stick to the exact Taylor-mode initialization TaylorModeInit
!
TaylorModeInit()
Exact initialization via Taylor-mode automatic differentiation.
This is the recommended initialization method!
It uses TaylorIntegration.jl to efficiently compute the higher-order derivatives of the solution at the initial value, via Taylor-mode automatic differentiation.
In some special cases it can happen that TaylorIntegration.jl is incompatible with the given problem (typically because the problem definition does not allow for elements of type Taylor
). If this happens, try ClassicSolverInit
.
References
[1] N. Krämer, P. Hennig: Stable Implementation of Probabilistic ODE Solvers (2020)
source ClassicSolverInit(; alg=OrdinaryDiffEq.Tsit5(), init_on_ddu=false)
Initialization via regression on a few steps of a classic ODE solver.
In a nutshell, instead of specifying $\mu_0$ exactly and setting $\Sigma_0=0$ (which is what TaylorModeInit
does), use a classic ODE solver to compute a few steps of the solution, and then regress on the computed values (by running a smoother) to compute $\mu_0$ and $\Sigma_0$ as the mean and covariance of the smoothing posterior at time 0. See also [2] .
The initial value and derivative are set directly from the given initial value problem; optionally the second derivative can also be set via automatic differentiation by setting init_on_ddu=true
.
Arguments
alg
: The solver to be used. Can be any solver from OrdinaryDiffEq.jl.init_on_ddu
: If true
, the second derivative is also initialized exactly via automatic differentiation with ForwardDiff.jl.References
[2] M. Schober, S. Särkkä, and P. Hennig: A Probabilistic Model for the Numerical Solution of Initial Value Problems (2018)
source [1] N. Krämer, P. Hennig: Stable Implementation of Probabilistic ODE Solvers (2020) (link ) [2] M. Schober, S. Särkkä, and P. Hennig: A Probabilistic Model for the Numerical Solution of Initial Value Problems (2018) (link )
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+\end{aligned}\]It turns out that we can also compute higher-order derivatives of $y$ with the chain rule, and then use these to better initialize $Y^{(i)}(0)$ . This, done efficiently with Taylor-mode autodiff by using TaylorIntegration.jl , is what TaylorModeInit
does. See also [1] .
In the vast majority of cases, just stick to the exact Taylor-mode initialization TaylorModeInit
!
TaylorModeInit()
Exact initialization via Taylor-mode automatic differentiation.
This is the recommended initialization method!
It uses TaylorIntegration.jl to efficiently compute the higher-order derivatives of the solution at the initial value, via Taylor-mode automatic differentiation.
In some special cases it can happen that TaylorIntegration.jl is incompatible with the given problem (typically because the problem definition does not allow for elements of type Taylor
). If this happens, try ClassicSolverInit
.
References
[4] Krämer et al, "Stable Implementation of Probabilistic ODE Solvers" (2020)source ClassicSolverInit(; alg=OrdinaryDiffEq.Tsit5(), init_on_ddu=false)
Initialization via regression on a few steps of a classic ODE solver.
In a nutshell, instead of specifying $\mu_0$ exactly and setting $\Sigma_0=0$ (which is what TaylorModeInit
does), use a classic ODE solver to compute a few steps of the solution, and then regress on the computed values (by running a smoother) to compute $\mu_0$ and $\Sigma_0$ as the mean and covariance of the smoothing posterior at time 0. See also [2] .
The initial value and derivative are set directly from the given initial value problem; optionally the second derivative can also be set via automatic differentiation by setting init_on_ddu=true
.
Arguments
alg
: The solver to be used. Can be any solver from OrdinaryDiffEq.jl.init_on_ddu
: If true
, the second derivative is also initialized exactly via automatic differentiation with ForwardDiff.jl.References
[4] Krämer et al, "Stable Implementation of Probabilistic ODE Solvers" (2020)[5] Schober et al, "A probabilistic model for the numerical solution of initial value problems", Statistics and Computing (2019)source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/priors/index.html b/previews/PR237/priors/index.html
index e07d1194d..5251338e1 100644
--- a/previews/PR237/priors/index.html
+++ b/previews/PR237/priors/index.html
@@ -1,19 +1,19 @@
-Priors · ProbNumDiffEq.jl We model the ODE solution $y(t)$ with a Gauss–Markov prior. More precisely, let
\[\begin{aligned}
+
Priors · ProbNumDiffEq.jl We model the ODE solution $y(t)$ with a Gauss–Markov prior. More precisely, let
\[\begin{aligned}
Y(t) = \left[ Y^{(0)}(t), Y^{(1)}(t), \dots Y^{(q)}(t) \right],
\end{aligned}\]
be the solution to the SDE
\[\begin{aligned}
\text{d} Y^{(i)}(t) &= Y^{(i+1)}(t) \ \text{d}t, \qquad i = 0, \dots, q-1, \\
\text{d} Y^{(q)}(t) &= \textcolor{#389826}{A} Y(t) \ \text{d}t + \textcolor{#4063D8}{\Gamma} \ \text{d}W(t), \\
Y(0) &\sim \textcolor{purple}{ \mathcal{N} \left( \mu_0, \Sigma_0 \right) }.
-\end{aligned}\]
Then $Y^{(i)}(t)$ models the $i$ -th derivative of $y(t)$ . In this section, we consider choices relating to the drift matrix $\textcolor{#389826}{A}$ . If you're more interested in the diffusion $\textcolor{#4063D8}{\Gamma}$ check out the Diffusion models and calibration section, and for info on the initial distribution $\textcolor{purple}{ \mathcal{N} \left( \mu_0, \Sigma_0 \right) }$ check out the Initialization section.
If you're unsure which prior to use, just stick to the integrated Wiener process prior IWP
! This is also the default choice for all solvers. The other priors are rather experimental / niche at the time of writing.
IWP([wiener_process_dimension::Integer,] num_derivatives::Integer)
Integrated Wiener process.
This is the recommended prior! It is the most well-tested prior, both in this package and in the probabilistic numerics literature in general (see the references ). It is also the prior that has the most efficient implementation.
The IWP can be created without specifying the dimension of the Wiener process, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage.
In math
\[\begin{aligned}
+\end{aligned}\]
Then $Y^{(i)}(t)$ models the $i$ -th derivative of $y(t)$ . In this section, we consider choices relating to the drift matrix $\textcolor{#389826}{A}$ . If you're more interested in the diffusion $\textcolor{#4063D8}{\Gamma}$ check out the Diffusion models and calibration section, and for info on the initial distribution $\textcolor{purple}{ \mathcal{N} \left( \mu_0, \Sigma_0 \right) }$ check out the Initialization section.
If you're unsure which prior to use, just stick to the integrated Wiener process prior IWP
! This is also the default choice for all solvers. The other priors are rather experimental / niche at the time of writing.
IWP([wiener_process_dimension::Integer,] num_derivatives::Integer)
Integrated Wiener process.
This is the recommended prior! It is the most well-tested prior, both in this package and in the probabilistic numerics literature in general (see the references ). It is also the prior that has the most efficient implementation.
The IWP can be created without specifying the dimension of the Wiener process, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage.
In math
\[\begin{aligned}
\text{d} Y^{(i)}(t) &= Y^{(i+1)}(t) \ \text{d}t, \qquad i = 0, \dots, q-1 \\
\text{d} Y^{(q)}(t) &= \Gamma \ \text{d}W(t).
-\end{aligned}\]
Examples
julia> solve(prob, EK1(prior=IWP(2)))
source IOUP([wiener_process_dimension::Integer,]
+\end{aligned}\]Examples
julia> solve(prob, EK1(prior=IWP(2)))
source IOUP([wiener_process_dimension::Integer,]
num_derivatives::Integer,
rate_parameter::Union{Number,AbstractVector,AbstractMatrix})
Integrated Ornstein–Uhlenbeck process.
As with the IWP
, the IOUP can be created without specifying its dimension, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage. The rate parameter however always needs to be specified.
In math
\[\begin{aligned}
\text{d} Y^{(i)}(t) &= Y^{(i+1)}(t) \ \text{d}t, \qquad i = 0, \dots, q-1 \\
\text{d} Y^{(q)}(t) &= L Y^{(q)}(t) \ \text{d}t + \Gamma \ \text{d}W(t),
-\end{aligned}\]
where $L$ is the rate_parameter
.
Examples
julia> solve(prob, EK1(prior=IOUP(2, -1)))
source Matern([wiener_process_dimension::Integer,]
+\end{aligned}\]where $L$ is the rate_parameter
.
Examples
julia> solve(prob, EK1(prior=IOUP(2, -1)))
source Matern([wiener_process_dimension::Integer,]
num_derivatives::Integer,
lengthscale::Number)
Matern process.
As with the IWP
, the Matern can be created without specifying its dimension, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage. The lengthscale parameter however always needs to be specified.
In math
\[\begin{aligned}
\text{d} Y^{(i)}(t) &= Y^{(i+1)}(t) \ \text{d}t, \qquad i = 0, \dots, q-1 \\
@@ -21,4 +21,4 @@
\begin{pmatrix} q+1 \\ j \end{pmatrix}
\left( \frac{\sqrt{2q - 1}}{l} \right)^{q-j}
Y^{(j)}(t) \right) \ \text{d}t + \Gamma \ \text{d}W(t).
-\end{aligned}\]
where $l$ is the lengthscale
.
Examples
julia> solve(prob, EK1(prior=Matern(2, 1)))
source
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+\end{aligned}\]
where $l$ is the lengthscale
.
Examples
julia> solve(prob, EK1(prior=Matern(2, 1)))
source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/references/index.html b/previews/PR237/references/index.html
new file mode 100644
index 000000000..ee5ccd68b
--- /dev/null
+++ b/previews/PR237/references/index.html
@@ -0,0 +1,48 @@
+
+References · ProbNumDiffEq.jl [1]
+
+
+ [2]
+
+
+ [3]
+
+
+ [4]
+
+
+ [5]
+
+
+ [6]
+
+N. Bosch, P. Hennig and F. Tronarp.
Calibrated Adaptive Probabilistic ODE Solvers . In: Proceedings of The 24th International Conference on Artificial
+ Intelligence and Statistics, Proceedings of Machine Learning Research, 3466–3474, PMLR (2021).
+ [7]
+
+
+ [8]
+
+
+ [9]
+
+
+ [10]
+
+
+ [11]
+
+
+ [12]
+
+
+
+
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/refs.bib b/previews/PR237/refs.bib
new file mode 100644
index 000000000..136453adc
--- /dev/null
+++ b/previews/PR237/refs.bib
@@ -0,0 +1,172 @@
+@misc{bosch23expint,
+ title = {Probabilistic Exponential Integrators},
+ author = {Nathanael Bosch and Philipp Hennig and Filip Tronarp},
+ year = 2023,
+ eprint = {2305.14978},
+ archivePrefix ={arXiv},
+ primaryClass = {math.NA}
+}
+
+@InProceedings{krämer21highdim,
+ title = {Probabilistic {ODE} Solutions in Millions of Dimensions},
+ author = {Krämer, Nicholas and Bosch, Nathanael and Schmidt, Jonathan
+ and Hennig, Philipp},
+ booktitle = {Proceedings of the 39th International Conference on Machine
+ Learning},
+ pages = {11634--11649},
+ year = 2022,
+ editor = {Chaudhuri, Kamalika and Jegelka, Stefanie and Song, Le and
+ Szepesvari, Csaba and Niu, Gang and Sabato, Sivan},
+ volume = 162,
+ series = {Proceedings of Machine Learning Research},
+ month = {17--23 Jul},
+ publisher = {PMLR},
+ pdf = {https://proceedings.mlr.press/v162/kramer22b/kramer22b.pdf},
+ url = {https://proceedings.mlr.press/v162/kramer22b.html},
+}
+
+@InProceedings{bosch22pickandmix,
+ title = {Pick-and-Mix Information Operators for Probabilistic {ODE}
+ Solvers},
+ author = {Bosch, Nathanael and Tronarp, Filip and Hennig, Philipp},
+ booktitle = {Proceedings of The 25th International Conference on Artificial
+ Intelligence and Statistics},
+ pages = {10015--10027},
+ year = 2022,
+ editor = {Camps-Valls, Gustau and Ruiz, Francisco J. R. and Valera,
+ Isabel},
+ volume = 151,
+ series = {Proceedings of Machine Learning Research},
+ month = {28--30 Mar},
+ publisher = {PMLR},
+ pdf = {https://proceedings.mlr.press/v151/bosch22a/bosch22a.pdf},
+ url = {https://proceedings.mlr.press/v151/bosch22a.html},
+}
+
+@InProceedings{bosch20capos,
+ title = {Calibrated Adaptive Probabilistic {ODE} Solvers},
+ author = {Bosch, Nathanael and Hennig, Philipp and Tronarp, Filip},
+ booktitle = {Proceedings of The 24th International Conference on Artificial
+ Intelligence and Statistics},
+ pages = {3466--3474},
+ year = 2021,
+ editor = {Banerjee, Arindam and Fukumizu, Kenji},
+ volume = 130,
+ series = {Proceedings of Machine Learning Research},
+ month = {13--15 Apr},
+ publisher = {PMLR},
+ pdf = {http://proceedings.mlr.press/v130/bosch21a/bosch21a.pdf},
+ url = {http://proceedings.mlr.press/v130/bosch21a.html},
+}
+
+@article{tronarp20bayes,
+ author = {Tronarp, Filip and Särkkä, Simo and Hennig, Philipp},
+ title = {Bayesian {ODE} solvers: the maximum a posteriori estimate},
+ journal = {Statistics and Computing},
+ year = 2021,
+ month = {Mar},
+ day = 03,
+ volume = 31,
+ number = 3,
+ pages = 23,
+ issn = {1573-1375},
+ doi = {10.1007/s11222-021-09993-7},
+ url = {https://doi.org/10.1007/s11222-021-09993-7}
+}
+
+@article{tronarp18probsol,
+ author = {Filip Tronarp and Hans Kersting and Simo Särkkä and Philipp
+ Hennig},
+ title = {Probabilistic solutions to ordinary differential equations as
+ nonlinear {B}ayesian filtering: a new perspective},
+ year = 2019,
+ volume = 29,
+ number = 6,
+ pages = {1297-1315},
+ doi = {10.1007/s11222-019-09900-1},
+ url = {https://doi.org/10.1007/s11222-019-09900-1},
+ journal = {Statistics and Computing},
+}
+
+@article{kraemer20stableimplementation,
+ author = {Krämer, Nicholas and Hennig, Philipp},
+ title = {Stable Implementation of Probabilistic {ODE} Solvers},
+ journal = {CoRR},
+ year = 2020,
+ url = {http://arxiv.org/abs/2012.10106v1},
+ archivePrefix ={arXiv},
+ eprint = {2012.10106},
+ primaryClass = {stat.ML},
+}
+
+@article{kersting18convergencerates,
+ author = {Kersting, Hans and Sullivan, T. J. and Hennig, Philipp},
+ title = {Convergence rates of {G}aussian {ODE} filters},
+ journal = {Statistics and Computing},
+ year = 2020,
+ month = {Nov},
+ day = 01,
+ volume = 30,
+ number = 6,
+ pages = {1791-1816},
+ issn = {1573-1375},
+ doi = {10.1007/s11222-020-09972-4},
+ url = {https://doi.org/10.1007/s11222-020-09972-4}
+}
+
+@article{schober16probivp,
+ author = "Schober, Michael and Särkkä, Simo and Hennig, Philipp",
+ title = "A probabilistic model for the numerical solution of initial
+ value problems",
+ journal = "Statistics and Computing",
+ year = 2019,
+ month = "Jan",
+ day = 01,
+ volume = 29,
+ number = 1,
+ pages = "99--122",
+ issn = "1573-1375",
+ doi = "10.1007/s11222-017-9798-7",
+ url = "https://doi.org/10.1007/s11222-017-9798-7"
+}
+
+@InProceedings{tronarp22fenrir,
+ title = {Fenrir: Physics-Enhanced Regression for Initial Value
+ Problems},
+ author = {Tronarp, Filip and Bosch, Nathanael and Hennig, Philipp},
+ booktitle = {Proceedings of the 39th International Conference on Machine
+ Learning},
+ pages = {21776--21794},
+ year = 2022,
+ editor = {Chaudhuri, Kamalika and Jegelka, Stefanie and Song, Le and
+ Szepesvari, Csaba and Niu, Gang and Sabato, Sivan},
+ volume = 162,
+ series = {Proceedings of Machine Learning Research},
+ month = {17--23 Jul},
+ publisher = {PMLR},
+ pdf = {https://proceedings.mlr.press/v162/tronarp22a/tronarp22a.pdf},
+ url = {https://proceedings.mlr.press/v162/tronarp22a.html},
+}
+
+@inproceedings{kersting16active,
+ author = {Kersting, Hans and Hennig, Philipp},
+ title = {Active Uncertainty Calibration in Bayesian ODE Solvers},
+ year = 2016,
+ isbn = 9780996643115,
+ publisher = {AUAI Press},
+ booktitle = {Proceedings of the Thirty-Second Conference on Uncertainty in
+ Artificial Intelligence},
+ pages = {309–318},
+ numpages = 10,
+ series = {UAI'16},
+ url = {http://www.auai.org/uai2016/proceedings/papers/163.pdf},
+}
+
+@book{hennig22probnum,
+ place = {Cambridge},
+ title = {Probabilistic Numerics: Computation as Machine Learning},
+ DOI = {10.1017/9781316681411},
+ publisher = {Cambridge University Press},
+ author = {Hennig, Philipp and Osborne, Michael A. and Kersting, Hans P.},
+ year = 2022,
+}
diff --git a/previews/PR237/search/index.html b/previews/PR237/search/index.html
deleted file mode 100644
index 62441005f..000000000
--- a/previews/PR237/search/index.html
+++ /dev/null
@@ -1,2 +0,0 @@
-
-Search · ProbNumDiffEq.jl
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
diff --git a/previews/PR237/search_index.js b/previews/PR237/search_index.js
index a70798753..75cdbce2e 100644
--- a/previews/PR237/search_index.js
+++ b/previews/PR237/search_index.js
@@ -1,3 +1,3 @@
var documenterSearchIndex = {"docs":
-[{"location":"benchmarks/vanderpol/#Van-der-Pol-benchmark","page":"Stiff ODE: Van der Pol","title":"Van der Pol benchmark","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"using LinearAlgebra, Statistics, InteractiveUtils\nusing DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Plots\nusing ProbNumDiffEq\n\n# Plotting theme\ntheme(:dao;\n markerstrokewidth=0.5,\n legend=:outertopright,\n bottom_margin=5Plots.mm,\n size = (1000, 400),\n)","category":"page"},{"location":"benchmarks/vanderpol/#Van-der-Pol-problem-definition","page":"Stiff ODE: Van der Pol","title":"Van der Pol problem definition","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"function vanderpol!(du, u, p, t)\n du[1] = u[2]\n du[2] = p[1] * ((1 - u[1]^2) * u[2] - u[1])\nend\np = [1e5]\ntspan = (0.0, 6.3)\nu0 = [2.0, 0.0]\nprob = ODEProblem(vanderpol!, u0, tspan, p)\n\ntest_sol = solve(prob, RadauIIA5(), abstol=1/10^14, reltol=1/10^14, dense=false)\nplot(test_sol, title=\"Van der Pol Solution\", legend=false, ylims=(-2.5, 2.5))","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"(Image: )","category":"page"},{"location":"benchmarks/vanderpol/#EK1-accross-orders","page":"Stiff ODE: Van der Pol","title":"EK1 accross orders","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1($order)\" => Dict(:alg => EK1(order=order, smooth=DENSE))\n for order in 2:6\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (6:13)\nreltols = 1.0 ./ 10.0 .^ (3:10)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"(Image: )","category":"page"},{"location":"benchmarks/vanderpol/#Solving-the-first-vs-second-order-ODE","page":"Stiff ODE: Van der Pol","title":"Solving the first- vs second-order ODE","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"function vanderpol2!(ddu, du, u, p, t)\n ddu[1] = p[1] * ((1 - u[1]^2) * du[1] - u[1])\nend\np = [1e5]\ntspan = (0.0, 6.3)\nu0 = [2.0]\ndu0 = [0.0]\nprob2 = SecondOrderODEProblem(vanderpol2!, du0, u0, tspan, p)\n\ntest_sol2 = solve(prob2, RadauIIA5(), abstol=1/10^14, reltol=1/10^14, dense=false)\nplot(test_sol2, title=\"Van der Pol Solution (2nd order)\", legend=false, ylims=(-2.5, 2.5))","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"(Image: )","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1(2) 1st order\" => Dict(:alg => EK1(order=2, smooth=DENSE))\n \"EK1(3) 1st order\" => Dict(:alg => EK1(order=3, smooth=DENSE))\n \"EK1(4) 1st order\" => Dict(:alg => EK1(order=4, smooth=DENSE))\n \"EK1(5) 1st order\" => Dict(:alg => EK1(order=5, smooth=DENSE))\n \"EK1(3) 2nd order\" => Dict(:prob_choice => 2, :alg => EK1(order=3, smooth=DENSE))\n \"EK1(4) 2nd order\" => Dict(:prob_choice => 2, :alg => EK1(order=4, smooth=DENSE))\n \"EK1(5) 2nd order\" => Dict(:prob_choice => 2, :alg => EK1(order=5, smooth=DENSE))\n \"EK1(5) 2nd order\" => Dict(:prob_choice => 2, :alg => EK1(order=6, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (6:13)\nreltols = 1.0 ./ 10.0 .^ (3:10)\n\nwp = WorkPrecisionSet(\n [prob, prob2], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = [test_sol, test_sol2],\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, color=[1 1 1 1 2 2 2 2], xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"(Image: )","category":"page"},{"location":"benchmarks/vanderpol/#Conclusion","page":"Stiff ODE: Van der Pol","title":"Conclusion","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"Use the EK1 to solve stiff problems, with orders leq 6 depending on the error tolerance.\nWhen the problem is actually a second-order ODE, as is the case for the Van der Pol system here, solve it as a second-order ODE.","category":"page"},{"location":"benchmarks/vanderpol/#Appendix","page":"Stiff ODE: Van der Pol","title":"Appendix","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"Computer information:","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"InteractiveUtils.versioninfo()","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"Julia Version 1.8.5\nCommit 17cfb8e65ea (2023-01-08 06:45 UTC)\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)\n Threads: 12 on 12 virtual cores\nEnvironment:\n JULIA_NUM_THREADS = auto\n JULIA_STACKTRACE_MINIMAL = true","category":"page"},{"location":"dynamical_odes/#Second-Order-ODEs-and-Energy-Preservation","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"In this tutorial we consider an energy-preserving, physical dynamical system, given by a second-order ODE.","category":"page"},{"location":"dynamical_odes/#TL;DR:","page":"Second Order ODEs and Energy Preservation","title":"TL;DR:","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"To efficiently solve second-order ODEs, just define the problem as a SecondOrderODEProblem.\nTo preserve constant quantities, use the ManifoldUpdate callback; same syntax as DiffEqCallback.jl's ManifoldProjection.","category":"page"},{"location":"dynamical_odes/#Simulating-the-Hénon-Heiles-system","page":"Second Order ODEs and Energy Preservation","title":"Simulating the Hénon-Heiles system","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"The Hénon-Heiles model describes the motion of a star around a galactic center, restricted to a plane. It is given by a second-order ODE","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"beginaligned\nddotx = - x - 2 x y \nddoty = y^2 - y - x^2\nendaligned","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Our goal is to numerically simulate this system on a time span t in 0 T, starting with initial values x(0)=0, y(0) = 01, dotx(0) = 05, doty(0) = 0.","category":"page"},{"location":"dynamical_odes/#Transforming-the-problem-into-a-first-order-ODE","page":"Second Order ODEs and Energy Preservation","title":"Transforming the problem into a first-order ODE","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"A very common approach is to first transform the problem into a first-order ODE by introducing a new variable","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"u = dxdyxy","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"to obtain","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"beginaligned\ndotu_1(t) = - u_3 - 2 u_3 u_4 \ndotu_2(t) = u_4^2 - u_4 - u_4^2 \ndotu_3(t) = u_1 \ndotu_4(t) = u_2\nendaligned","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"This first-order ODE can then be solved using any conventional ODE solver - including our EK1:","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"using ProbNumDiffEq, Plots\n\nfunction Hénon_Heiles(du, u, p, t)\n du[1] = -u[3] - 2 * u[3] * u[4]\n du[2] = u[4]^2 - u[4] - u[3]^2\n du[3] = u[1]\n du[4] = u[2]\nend\nu0, du0 = [0.0, 0.1], [0.5, 0.0]\ntspan = (0.0, 100.0)\nprob = ODEProblem(Hénon_Heiles, [du0; u0], tspan)\nsol = solve(prob, EK1());\nplot(sol, vars=(3, 4)) # where `vars=(3,4)` is used to plot x agains y","category":"page"},{"location":"dynamical_odes/#Solving-the-second-order-ODE-directly","page":"Second Order ODEs and Energy Preservation","title":"Solving the second-order ODE directly","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Instead of first transforming the problem, we can also solve it directly as a second-order ODE, by defining it as a SecondOrderODEProblem.","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"note: Note\nThe SecondOrderODEProblem type is not defined in ProbNumDiffEq.jl but is provided by SciMLBase.jl. For more information, check out the DifferentialEquations.jl documentation on Dynamical, Hamiltonian and 2nd Order ODE Problems.","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"function Hénon_Heiles2(ddu, du, u, p, t)\n ddu[1] = -u[1] - 2 * u[1] * u[2]\n ddu[2] = u[2]^2 - u[2] - u[1]^2\nend\nprob2 = SecondOrderODEProblem(Hénon_Heiles2, du0, u0, tspan)\nsol2 = solve(prob2, EK1());\nplot(sol2, vars=(3, 4))","category":"page"},{"location":"dynamical_odes/#Benchmark:-Solving-second-order-ODEs-is-*faster*","page":"Second Order ODEs and Energy Preservation","title":"Benchmark: Solving second order ODEs is faster","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Solving second-order ODEs is not just a matter of convenience - in fact, SciMLBase's SecondOrderODEProblem is neatly designed in such a way that all the classic solvers from OrdinaryDiffEq.jl can handle it by solving the corresponding first-order ODE. But, transforming the ODE to first order increases the dimensionality of the problem, and comes therefore at increased computational cost; this also motivates classic specialized solvers for second-order ODEs.","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"The probabilistic numerical solvers from ProbNumDiffEq.jl have the same internal state representation for first and second order ODEs; all that changes is the measurement model [1]. As a result, we can use the EK1 both for first and second order ODEs, but it automatically specializes on the latter to provide a 2x performance boost:","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"julia> @btime solve(prob, EK1(order=3), adaptive=false, dt=1e-2);\n 766.312 ms (400362 allocations: 173.38 MiB)\n\njulia> @btime solve(prob2, EK1(order=4), adaptive=false, dt=1e-2);\n 388.301 ms (510676 allocations: 102.78 MiB)","category":"page"},{"location":"dynamical_odes/#Energy-preservation","page":"Second Order ODEs and Energy Preservation","title":"Energy preservation","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"In addition to the ODE given above, we know that the solution of the Hénon-Heiles model has to preserve energy over time. The total energy can be expressed as the sum of the potential and kinetic energies, given by","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"beginaligned\noperatornamePotentialEnergy(xy) = frac12 left( x^2 + y^2 + 2 x^2 y - frac2y^33 right) \noperatornameKineticEnergy(dotx doty) = frac12 left( dotx^2 + doty^2 right)\nendaligned","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"In code:","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"PotentialEnergy(x, y) = 1 // 2 * (x^2 + y^2 + 2x^2 * y - 2 // 3 * y^3)\nKineticEnergy(dx, dy) = 1 // 2 * (dx^2 + dy^2)\nE(dx, dy, x, y) = PotentialEnergy(x, y) + KineticEnergy(dx, dy)\nE(u) = E(u...); # convenient shorthand","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"So, let's have a look at how the total energy changes over time when we numerically simulate the Hénon-Heiles model over a long period of time: Standard solve","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"longprob = remake(prob2, tspan=(0.0, 1e3))\nlongsol = solve(longprob, EK1(smooth=false), dense=false)\nplot(longsol.t, E.(longsol.u))","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"It visibly loses energy over time, from an initial 0.12967 to a final 0.12899. Let's fix this to get a physically more meaningful solution.","category":"page"},{"location":"dynamical_odes/#Energy-preservation-with-the-ManifoldUpdate-callback","page":"Second Order ODEs and Energy Preservation","title":"Energy preservation with the ManifoldUpdate callback","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"In the language of ODE filters, preserving energy over time amounts to just another measurement model [1]. The most convenient way of updating on this additional zero measurement with ProbNumDiffEq.jl is with the ManifoldUpdate callback.","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"note: Note\nThe ManifoldUpdate callback can be thought of a probabilistic counterpart to the ManifoldProjection callback provided by DiffEqCallbacks.jl.","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"To do so, first define a (vector-valued) residual function, here chosen to be the difference between the current energy and the initial energy, and build a ManifoldUpdate callback","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"residual(u) = [E(u) - E(du0..., u0...)]\ncb = ManifoldUpdate(residual)","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Then, solve the ODE with this callback","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"longsol_preserving = solve(longprob, EK1(smooth=false), dense=false, callback=cb)\nplot(longsol.t, E.(longsol.u))\nplot!(longsol_preserving.t, E.(longsol_preserving.u))","category":"page"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Voilà! With the ManifoldUpdate callback we could preserve the energy over time and obtain a more truthful probabilistic numerical long-term simulation of the Hénon-Heiles model.","category":"page"},{"location":"dynamical_odes/#References","page":"Second Order ODEs and Energy Preservation","title":"References","text":"","category":"section"},{"location":"dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"[1] N. Bosch, F. Tronarp, P. Hennig: Pick-and-Mix Information Operators for Probabilistic ODE Solvers (2022)","category":"page"},{"location":"benchmarks/rober/#ROBER-benchmark","page":"DAE: ROBER","title":"ROBER benchmark","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"Adapted from SciMLBenchmarks.jl.","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"using LinearAlgebra, Statistics, InteractiveUtils\nusing DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Sundials, Plots\nusing ModelingToolkit\nusing ProbNumDiffEq\n\n# Plotting theme\ntheme(:dao;\n markerstrokewidth=0.5,\n legend=:outertopright,\n bottom_margin=5Plots.mm,\n size = (1000, 400),\n)","category":"page"},{"location":"benchmarks/rober/#ROBER-problem-definition","page":"DAE: ROBER","title":"ROBER problem definition","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"@variables t y₁(t)=1.0 y₂(t)=0.0 y₃(t)=0.0\n@parameters k₁=0.04 k₂=3e7 k₃=1e4\nD = Differential(t)\neqs = [\n D(y₁) ~ -k₁*y₁ + k₃*y₂*y₃\n D(y₂) ~ k₁*y₁ - k₃*y₂*y₃ - k₂*y₂^2\n 0 ~ y₁ + y₂ + y₃ - 1\n]\n@named sys = ODESystem(eqs)\nmmprob = ODEProblem(sys,[],(0.0,1e5))\ndaeprob = DAEProblem(sys,[D(y₁)=>-0.04, D(y₂)=>0.04, D(y₃)=>0.0],[],(0.0,1e5)) # can't handle this yet\nodaeprob = ODAEProblem(structural_simplify(sys),[],(0.0,1e5)) # can't handle this yet\n\nref_sol = solve(daeprob,IDA(),abstol=1/10^14,reltol=1/10^14,dense=false)\nplot(ref_sol, vars=[y₁,y₂,y₃], title=\"ROBER Solution\", legend=false, ylims=(0, 1))","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"(Image: )","category":"page"},{"location":"benchmarks/rober/#EK1-accross-orders","page":"DAE: ROBER","title":"EK1 accross orders","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1($order)\" => Dict(:alg => EK1(order=order, smooth=DENSE))\n for order in 2:6\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\n# works:\n# abstols = 1.0 ./ 10.0 .^ (4:10)\n# reltols = 1.0 ./ 10.0 .^ (1:7)\n# test:\nabstols = 1.0 ./ 10.0 .^ (4:9)\nreltols = 1.0 ./ 10.0 .^ (1:6)\n\nwp = WorkPrecisionSet(\n mmprob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = ref_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ (-16:1:5),\n xlims = (2e-15, 3e-7), ylims = (1e-2, 6e-1))","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"(Image: )","category":"page"},{"location":"benchmarks/rober/#Conclusion","page":"DAE: ROBER","title":"Conclusion","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"The EK1 can solve mass-matrix DAEs! But it only really works well for low errors.\nOrder 3 seems to work well here. But the order-to-error-tolerance heuristic should in principle still hold: lower tolerance level rightarrow higher order.","category":"page"},{"location":"benchmarks/rober/#Appendix","page":"DAE: ROBER","title":"Appendix","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"Computer information:","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"InteractiveUtils.versioninfo()","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"Julia Version 1.8.5\nCommit 17cfb8e65ea (2023-01-08 06:45 UTC)\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)\n Threads: 12 on 12 virtual cores\nEnvironment:\n JULIA_NUM_THREADS = auto\n JULIA_STACKTRACE_MINIMAL = true","category":"page"},{"location":"fenrir/#Parameter-Inference-with-ProbNumDiffEq.jl-and-Fenrir.jl","page":"Parameter Inference","title":"Parameter Inference with ProbNumDiffEq.jl and Fenrir.jl","text":"","category":"section"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"note: Note\nThis is mostly just a copy from the tutorial included in the Fenrir.jl documentation, so have a look there too!","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"using LinearAlgebra\nusing OrdinaryDiffEq, ProbNumDiffEq, Plots\nusing Fenrir\nusing Optimization, OptimizationOptimJL\nstack(x) = copy(reduce(hcat, x)') # convenient\nnothing # hide","category":"page"},{"location":"fenrir/#The-parameter-inference-problem-in-general","page":"Parameter Inference","title":"The parameter inference problem in general","text":"","category":"section"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Let's assume we have an initial value problem (IVP)","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"beginaligned\ndoty = f_theta(y t) qquad y(t_0) = y_0\nendaligned","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"which we observe through a set mathcalD = u(t_n)_n=1^N of noisy data points","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"beginaligned\nu(t_n) = H y(t_n) + v_n qquad v_n sim mathcalN(0 R)\nendaligned","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"The question of interest is: How can we compute the marginal likelihood p(mathcalD mid theta)? Short answer: We can't. It's intractable, because computing the true IVP solution exactly y(t) is intractable. What we can do however is compute an approximate marginal likelihood. This is what Fenrir.jl provides. For details, check out the paper.","category":"page"},{"location":"fenrir/#The-specific-problem,-in-code","page":"Parameter Inference","title":"The specific problem, in code","text":"","category":"section"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Let's assume that the true underlying dynamics are given by a FitzHugh-Nagumo model","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"function f(du, u, p, t)\n a, b, c = p\n du[1] = c*(u[1] - u[1]^3/3 + u[2])\n du[2] = -(1/c)*(u[1] - a - b*u[2])\nend\nu0 = [-1.0, 1.0]\ntspan = (0.0, 20.0)\np = (0.2, 0.2, 3.0)\ntrue_prob = ODEProblem(f, u0, tspan, p)","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"from which we generate some artificial noisy data","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"true_sol = solve(true_prob, Vern9(), abstol=1e-10, reltol=1e-10)\n\ntimes = 1:0.5:20\nobservation_noise_var = 1e-1\nodedata = [true_sol(t) .+ sqrt(observation_noise_var) * randn(length(u0)) for t in times]\n\nplot(true_sol, color=:black, linestyle=:dash, label=[\"True Solution\" \"\"])\nscatter!(times, stack(odedata), markersize=2, markerstrokewidth=0.1, color=1, label=[\"Noisy Data\" \"\"])","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Our goal is then to recover the true parameter p (and thus also the true trajectoy plotted above) the noisy data.","category":"page"},{"location":"fenrir/#Computing-the-negative-log-likelihood","page":"Parameter Inference","title":"Computing the negative log-likelihood","text":"","category":"section"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"To do parameter inference - be it maximum-likelihod, maximum a posteriori, or full Bayesian inference with MCMC - we need to evaluate the likelihood of given a parameter estimate theta_textest. This is exactly what Fenrir.jl's fenrir_nll provides:","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"p_est = (0.1, 0.1, 2.0)\nprob = remake(true_prob, p=p_est)\ndata = (t=times, u=odedata)\nκ² = 1e10\nnll, _, _ = fenrir_nll(prob, data, observation_noise_var, κ²; dt=1e-1)\nnll","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"This is the negative marginal log-likelihood of the parameter p_est. You can use it as any other NLL: Optimize it to compute maximum-likelihood estimates or MAPs, or plug it into MCMC to sample from the posterior. In our paper we compute MLEs by pairing Fenrir with Optimization.jl and ForwardDiff.jl. Let's quickly explore how to do this next.","category":"page"},{"location":"fenrir/#Maximum-likelihood-parameter-inference","page":"Parameter Inference","title":"Maximum-likelihood parameter inference","text":"","category":"section"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"To compute a maximum-likelihood estimate (MLE), we just need to maximize theta to p(mathcalD mid theta) - that is, minimize the nll from above. We use Optimization.jl for this. First, define a loss function and create an OptimizationProblem","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"function loss(x, _)\n ode_params = x[begin:end-1]\n prob = remake(true_prob, p=ode_params)\n κ² = exp(x[end]) # the diffusion parameter of the EK1\n return fenrir_nll(prob, data, observation_noise_var, κ²; dt=1e-1)\nend\n\nfun = OptimizationFunction(loss, Optimization.AutoForwardDiff())\noptprob = OptimizationProblem(\n fun, [p_est..., 1e0];\n lb=[0.0, 0.0, 0.0, -10], ub=[1.0, 1.0, 5.0, 20] # lower and upper bounds\n)","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Then, just solve it! Here we use LBFGS:","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"optsol = solve(optprob, LBFGS())\np_mle = optsol.u[1:3]\np_mle # hide","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Success! The computed MLE is quite close to the true parameter which we used to generate the data. As a final step, let's plot the true solution, the data, and the result of the MLE:","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"plot(true_sol, color=:black, linestyle=:dash, label=[\"True Solution\" \"\"])\nscatter!(times, stack(odedata), markersize=2, markerstrokewidth=0.1, color=1, label=[\"Noisy Data\" \"\"])\nmle_sol = solve(remake(true_prob, p=p_mle), EK1())\nplot!(mle_sol, color=3, label=[\"MLE-parameter Solution\" \"\"])","category":"page"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Looks good!","category":"page"},{"location":"fenrir/#Reference","page":"Parameter Inference","title":"Reference","text":"","category":"section"},{"location":"fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"[1] F. Tronarp, N. Bosch, P. Hennig: Fenrir: Fenrir: Physics-Enhanced Regression for Initial Value Problems (2022)","category":"page"},{"location":"filtering/#Gaussian-Filtering-and-Smoothing","page":"Filtering and Smoothing","title":"Gaussian Filtering and Smoothing","text":"","category":"section"},{"location":"filtering/#Predict","page":"Filtering and Smoothing","title":"Predict","text":"","category":"section"},{"location":"filtering/","page":"Filtering and Smoothing","title":"Filtering and Smoothing","text":"ProbNumDiffEq.predict\nProbNumDiffEq.predict!","category":"page"},{"location":"filtering/#ProbNumDiffEq.predict","page":"Filtering and Smoothing","title":"ProbNumDiffEq.predict","text":"predict(x::Gaussian, A::AbstractMatrix, Q::AbstractMatrix)\n\nPrediction step in Kalman filtering for linear dynamics models.\n\nGiven a Gaussian x = mathcalN(μ Σ), compute and return mathcalN(A μ A Σ A^T + Q).\n\nSee also the non-allocating square-root version predict!.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#ProbNumDiffEq.predict!","page":"Filtering and Smoothing","title":"ProbNumDiffEq.predict!","text":"predict!(x_out, x_curr, Ah, Qh, cachemat)\n\nIn-place and square-root implementation of predict which saves the result into x_out.\n\nOnly works with PSDMatrices.PSDMatrix types as Ah, Qh, and in the covariances of x_curr and x_out (both of type Gaussian). To prevent allocations, a cache matrix cachemat of size D times 2D (where D times D is the size of Ah and Qh) needs to be passed.\n\nSee also: predict.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#Update","page":"Filtering and Smoothing","title":"Update","text":"","category":"section"},{"location":"filtering/","page":"Filtering and Smoothing","title":"Filtering and Smoothing","text":"ProbNumDiffEq.update\nProbNumDiffEq.update!","category":"page"},{"location":"filtering/#ProbNumDiffEq.update","page":"Filtering and Smoothing","title":"ProbNumDiffEq.update","text":"update(x, measurement, H)\n\nUpdate step in Kalman filtering for linear dynamics models.\n\nGiven a Gaussian x = mathcalN(μ Σ) and a measurement z = mathcalN(hatz S), with S = H Σ H^T, compute\n\nbeginaligned\nK = Σ^P H^T S^-1 \nμ^F = μ + K (0 - hatz) \nΣ^F = Σ - K S K^T\nendaligned\n\nand return an updated state \\mathcal{N}(μ^F, Σ^F). Note that this assumes zero-measurements. When called with ProbNumDiffEq.SquarerootMatrix type arguments it performs the update in Joseph / square-root form.\n\nFor better performance, we recommend to use the non-allocating update!.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#ProbNumDiffEq.update!","page":"Filtering and Smoothing","title":"ProbNumDiffEq.update!","text":"update!(x_out, x_pred, measurement, H, K_cache, M_cache, S_cache)\n\nIn-place and square-root implementation of update which saves the result into x_out.\n\nImplemented in Joseph Form to retain the PSDMatrix covariances:\n\nbeginaligned\nK = Σ^P H^T S^-1 \nμ^F = μ + K (0 - hatz) \nsqrtΣ^F = (I - KH) sqrt(Σ)\nendaligned\n\nwhere sqrtM denotes the left square-root of a matrix M, i.e. M = sqrtM sqrtM^T.\n\nTo prevent allocations, write into caches K_cache and M_cache, both of size D × D, and S_cache of same type as measurement.Σ.\n\nSee also: update.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#Smooth","page":"Filtering and Smoothing","title":"Smooth","text":"","category":"section"},{"location":"filtering/","page":"Filtering and Smoothing","title":"Filtering and Smoothing","text":"ProbNumDiffEq.smooth\nProbNumDiffEq.smooth!","category":"page"},{"location":"filtering/#ProbNumDiffEq.smooth","page":"Filtering and Smoothing","title":"ProbNumDiffEq.smooth","text":"smooth(x_curr, x_next_smoothed, A, Q)\n\nUpdate step of the Kalman smoother, aka. Rauch-Tung-Striebel smoother, for linear dynamics models.\n\nGiven Gaussians x_n = mathcalN(μ_n Σ_n) and x_n+1 = mathcalN(μ_n+1^S Σ_n+1^S), compute\n\nbeginaligned\nμ_n+1^P = A μ_n^F \nP_n+1^P = A Σ_n^F A + Q \nG = Σ_n^S A^T (Σ_n+1^P)^-1 \nμ_n^S = μ_n^F + G (μ_n+1^S - μ_n+1^P) \nΣ_n^S = (I - G A) Σ_n^F (I - G A)^T + G Q G^T + G Σ_n+1^S G^T\nendaligned\n\nand return a smoothed state \\mathcal{N}(μ_n^S, Σ_n^S). When called with ProbNumDiffEq.SquarerootMatrix type arguments it performs the update in Joseph / square-root form.\n\nFor better performance, we recommend to use the non-allocating smooth!.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#ProbNumDiffEq.smooth!","page":"Filtering and Smoothing","title":"ProbNumDiffEq.smooth!","text":"smooth!(x_curr, x_next, Ah, Qh, cache, diffusion=1)\n\nIn-place and square-root implementation of smooth which overwrites x_curr.\n\nImplemented in Joseph form to preserve square-root structure. It requires access to the solvers cache to prevent allocations.\n\nSee also: smooth.\n\n\n\n\n\n","category":"function"},{"location":"solvers/#Solvers","page":"Solvers","title":"Solvers","text":"","category":"section"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"ProbNumDiffEq.jl provides two solvers: the EK1 and the EK0. Both based on extended Kalman filtering and smoothing, but the latter relies on evaluating the Jacobian of the vector field. For the best results, use the EK1.","category":"page"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"All solvers are compatible with DAEs in mass-matrix ODE form. They also specialize on second-order ODEs: If the problem is of type SecondOrderODEProblem, it solves the second-order problem directly; this is more efficient than solving the transformed first-order problem and provides more meaningful posteriors [1].","category":"page"},{"location":"solvers/#API","page":"Solvers","title":"API","text":"","category":"section"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"EK1\nEK0","category":"page"},{"location":"solvers/#ProbNumDiffEq.EK1","page":"Solvers","title":"ProbNumDiffEq.EK1","text":"EK1(; order=3,\n smooth=true,\n prior=IWP(order),\n diffusionmodel=DynamicDiffusion(),\n initialization=TaylorModeInit(),\n kwargs...)\n\nGaussian ODE filter with first-order vector field linearization.\n\nArguments\n\norder::Integer: Order of the integrated Wiener process (IWP) prior.\nsmooth::Bool: Turn smoothing on/off; smoothing is required for dense output.\nprior::AbstractODEFilterPrior: Prior to be used by the ODE filter. By default, uses a 3-times integrated Wiener process prior IWP(3). See also: Priors.\ndiffusionmodel::ProbNumDiffEq.AbstractDiffusion: See Diffusion models and calibration.\ninitialization::ProbNumDiffEq.InitializationScheme: See Initialization.\n\nSome additional kwargs relating to implicit solvers are supported; check out DifferentialEquations.jl's Extra Options page. Right now, we support autodiff, chunk_size, and diff_type. In particular, autodiff=false can come in handy to use finite differences instead of ForwardDiff.jl to compute Jacobians.\n\nExamples\n\njulia> solve(prob, EK1())\n\nReferences\n\n\n\n\n\n","category":"type"},{"location":"solvers/#ProbNumDiffEq.EK0","page":"Solvers","title":"ProbNumDiffEq.EK0","text":"EK0(; order=3,\n smooth=true,\n prior=IWP(order),\n diffusionmodel=DynamicDiffusion(),\n initialization=TaylorModeInit())\n\nGaussian ODE filter with zeroth-order vector field linearization.\n\nArguments\n\norder::Integer: Order of the integrated Wiener process (IWP) prior.\nsmooth::Bool: Turn smoothing on/off; smoothing is required for dense output.\nprior::AbstractODEFilterPrior: Prior to be used by the ODE filter. By default, uses a 3-times integrated Wiener process prior IWP(3). See also: Priors.\ndiffusionmodel::ProbNumDiffEq.AbstractDiffusion: See Diffusion models and calibration.\ninitialization::ProbNumDiffEq.InitializationScheme: See Initialization.\n\nExamples\n\njulia> solve(prob, EK0())\n\nReferences\n\n\n\n\n\n","category":"type"},{"location":"solvers/#solversrefs","page":"Solvers","title":"References","text":"","category":"section"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"[1] N. Bosch, F. Tronarp, P. Hennig: Pick-and-Mix Information Operators for Probabilistic ODE Solvers (2022) (link)","category":"page"},{"location":"dae/#Solving-DAEs-with-Probabilistic-Numerics","page":"Differential Algebraic Equations","title":"Solving DAEs with Probabilistic Numerics","text":"","category":"section"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"ProbNumDiffEq.jl provides probabilistic numerical solvers for differential algebraic equations (DAEs). Currently, we recommend using the semi-implicit EK1 algorithm.","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"note: Note\nFor a more general tutorial on DAEs check out the DifferentialEquations.jl DAE tutorial.","category":"page"},{"location":"dae/#Solving-mass-matrix-DAEs-with-the-EK1","page":"Differential Algebraic Equations","title":"Solving mass-matrix DAEs with the EK1","text":"","category":"section"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"First, define the DAE (here the ROBER problem) as an ODE problem with singular mass matrix:","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"using ProbNumDiffEq, Plots, LinearAlgebra, OrdinaryDiffEq, ModelingToolkit\n\nfunction rober(du, u, p, t)\n y₁, y₂, y₃ = u\n k₁, k₂, k₃ = p\n du[1] = -k₁ * y₁ + k₃ * y₂ * y₃\n du[2] = k₁ * y₁ - k₃ * y₂ * y₃ - k₂ * y₂^2\n du[3] = y₁ + y₂ + y₃ - 1\n nothing\nend\nM = [1 0 0\n 0 1 0\n 0 0 0]\nf = ODEFunction(rober, mass_matrix=M)\nprob_mm = ODEProblem(f, [1.0, 0.0, 0.0], (0.0, 1e5), (0.04, 3e7, 1e4))","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"We can solve this problem directly with the EK1:","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"sol = solve(prob_mm, EK1(), reltol=1e-8, abstol=1e-8)\nplot(\n sol,\n xscale=:log10,\n tspan=(1e-6, 1e5),\n layout=(3, 1),\n legend=false,\n ylabel=[\"u₁(t)\" \"u₂(t)\" \"u₃(t)\"],\n xlabel=[\"\" \"\" \"t\"],\n denseplot=false,\n)","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Looks good!","category":"page"},{"location":"dae/#Solving-an-Index-3-DAE-directly","page":"Differential Algebraic Equations","title":"Solving an Index-3 DAE directly","text":"","category":"section"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"The following is based on the \"Automatic Index Reduction of DAEs\" tutorial by ModelingToolkit.jl, which demonstrates how the classic Rodas4 solver fails to solve a DAE due to the fact that it is of index 3; which is why ModelingToolkit's automatic index reduction is so useful.","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"It turns out that our probabilistic numerical solvers can directly solve the index-3 DAE!","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"First, define the pendulum problem as in the tutorial:","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"function pendulum!(du, u, p, t)\n x, dx, y, dy, T = u\n g, L = p\n du[1] = dx\n du[2] = T * x\n du[3] = dy\n du[4] = T * y - g\n du[5] = x^2 + y^2 - L^2\nend\npendulum_fun! = ODEFunction(pendulum!, mass_matrix=Diagonal([1, 1, 1, 1, 0]))\nu0 = [1.0, 0, 0, 0, 0];\np = [9.8, 1];\ntspan = (0, 5.0);\npendulum_prob = ODEProblem(pendulum_fun!, u0, tspan, p)","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"We can try to solve it directly with one of the classic mass-matrix DAE solvers from OrdinaryDiffEq.jl:","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"solve(pendulum_prob, Rodas4())","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"It does not work! This is because of the index of the DAE; see e.g. this explenation from the tutorial.","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Does this also hold for the EK1 solver? Let's find out:","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"sol = solve(pendulum_prob, EK1())","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Nope! The EK1 is able to solve the index-3 DAE directly. Pretty cool!","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"plot(sol)","category":"page"},{"location":"dae/#Is-index-reduction-still-worth-it?","page":"Differential Algebraic Equations","title":"Is index-reduction still worth it?","text":"","category":"section"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"The point of the \"Automatic Index Reduction of DAEs\" tutorial is to demonstrate ModelingToolkit's utility for automatic index reduction, which enables the classic implicit Runge-Kutta solvers such as Rodas5 to solve this DAE. Let's see if that still helps in this context here.","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"First, modelingtoolkitize the problem:","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"traced_sys = modelingtoolkitize(pendulum_prob)","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"(how cool is this latex output ?!?)","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Next, lower the DAE index and simplify it with MTK's dae_index_lowering and structural_simplify:","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"simplified_sys = structural_simplify(dae_index_lowering(traced_sys))","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Let's build two different ODE problems, and check how well we can solve each:","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"prob_index3 = ODEProblem(traced_sys, Pair[], tspan)\nprob_index1 = ODEProblem(simplified_sys, Pair[], tspan)\n\nsol3 = solve(prob_index3, EK1())\nsol1 = solve(prob_index1, EK1())\n\ntruesol = solve(prob_index1, Rodas4(), abstol=1e-10, reltol=1e-10)\n\nsol1_final_error = norm(sol1.u[end] - truesol.u[end])\nsol1_f_evals = sol1.stats.nf\nsol3_final_error = norm(sol3.u[end] - truesol.u[end])\nsol3_f_evals = sol3.stats.nf\n@info \"Results\" sol1_final_error sol1_f_evals sol3_final_error sol3_f_evals","category":"page"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"The error for the index-1 DAE solve is much lower. So it seems that, even if the index-3 DAE could also be solved directly, index lowering might still be beneficial when solving DAEs with the EK1!","category":"page"},{"location":"dae/#References","page":"Differential Algebraic Equations","title":"References","text":"","category":"section"},{"location":"dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"[1] N. Bosch, F. Tronarp, P. Hennig: Pick-and-Mix Information Operators for Probabilistic ODE Solvers (2022) (link)","category":"page"},{"location":"benchmarks/lotkavolterra/#Lotka-Volterra-benchmark","page":"Non-stiff ODE: Lotka-Volterra","title":"Lotka-Volterra benchmark","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"Adapted from SciMLBenchmarks.jl.","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"using LinearAlgebra, Statistics, InteractiveUtils\nusing DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Plots\nusing ProbNumDiffEq\n\n# Plotting theme\ntheme(:dao;\n markerstrokewidth=0.5,\n legend=:outertopright,\n bottom_margin=5Plots.mm,\n size = (1000, 400),\n)","category":"page"},{"location":"benchmarks/lotkavolterra/#Lotka-Volterra-problem-definition","page":"Non-stiff ODE: Lotka-Volterra","title":"Lotka-Volterra problem definition","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"f = @ode_def LotkaVolterra begin\n dx = a*x - b*x*y\n dy = -c*y + d*x*y\nend a b c d\np = [1.5, 1, 3, 1]\ntspan = (0.0, 10.0)\nu0 = [1.0, 1.0]\nprob = ODEProblem{true, SciMLBase.FullSpecialize}(f, u0, tspan, p)\n\ntest_sol = solve(prob, Vern7(), abstol=1/10^14, reltol=1/10^14, dense=false)\nplot(test_sol, title=\"Lotka-Volterra Solution\", legend=false)","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#EK0-accross-orders","page":"Non-stiff ODE: Lotka-Volterra","title":"EK0 accross orders","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK0(order=$order)\" => Dict(:alg => EK0(order=order, smooth=DENSE))\n for order in 1:7\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:13)\nreltols = 1.0 ./ 10.0 .^ (1:10)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#EK1-accross-orders","page":"Non-stiff ODE: Lotka-Volterra","title":"EK1 accross orders","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1(order=$order)\" => Dict(:alg => EK1(order=order, smooth=DENSE))\n for order in 1:7\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:13)\nreltols = 1.0 ./ 10.0 .^ (1:10)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#EK0-vs.-EK1","page":"Non-stiff ODE: Lotka-Volterra","title":"EK0 vs. EK1","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK0(order=2)\" => Dict(:alg => EK0(order=2, smooth=DENSE))\n \"EK0(order=3)\" => Dict(:alg => EK0(order=3, smooth=DENSE))\n \"EK0(order=4)\" => Dict(:alg => EK0(order=4, smooth=DENSE))\n \"EK0(order=5)\" => Dict(:alg => EK0(order=5, smooth=DENSE))\n \"EK1(order=2)\" => Dict(:alg => EK1(order=2, smooth=DENSE))\n \"EK1(order=3)\" => Dict(:alg => EK1(order=3, smooth=DENSE))\n \"EK1(order=4)\" => Dict(:alg => EK1(order=4, smooth=DENSE))\n \"EK1(order=5)\" => Dict(:alg => EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:14)\nreltols = 1.0 ./ 10.0 .^ (1:11)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, color=[1 1 1 1 2 2 2 2], xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#DynamicDiffusion-vs-FixedDiffusion","page":"Non-stiff ODE: Lotka-Volterra","title":"DynamicDiffusion vs FixedDiffusion","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1(2) dynamic\" => Dict(:alg => EK1(order=2, smooth=DENSE, diffusionmodel=DynamicDiffusion()))\n \"EK1(3) dynamic\" => Dict(:alg => EK1(order=3, smooth=DENSE, diffusionmodel=DynamicDiffusion()))\n \"EK1(5) dynamic\" => Dict(:alg => EK1(order=5, smooth=DENSE, diffusionmodel=DynamicDiffusion()))\n \"EK1(2) fixed\" => Dict(:alg => EK1(order=2, smooth=DENSE, diffusionmodel=FixedDiffusion()))\n \"EK1(3) fixed\" => Dict(:alg => EK1(order=3, smooth=DENSE, diffusionmodel=FixedDiffusion()))\n \"EK1(5) fixed\" => Dict(:alg => EK1(order=5, smooth=DENSE, diffusionmodel=FixedDiffusion()))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:15)\nreltols = 1.0 ./ 10.0 .^ (1:12)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, color=[2 2 2 3 3 3], xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#TaylorModeInit-vs-ClassicSolverInit","page":"Non-stiff ODE: Lotka-Volterra","title":"TaylorModeInit vs ClassicSolverInit","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1(2) TaylorInit\" => Dict(:alg => EK1(order=2, smooth=DENSE, initialization=TaylorModeInit()))\n \"EK1(3) TaylorInit\" => Dict(:alg => EK1(order=3, smooth=DENSE, initialization=TaylorModeInit()))\n \"EK1(5) TaylorInit\" => Dict(:alg => EK1(order=5, smooth=DENSE, initialization=TaylorModeInit()))\n \"EK1(2) Tsit5Init\" => Dict(:alg => EK1(order=2, smooth=DENSE, initialization=ClassicSolverInit()))\n \"EK1(3) Tsit5Init\" => Dict(:alg => EK1(order=3, smooth=DENSE, initialization=ClassicSolverInit()))\n \"EK1(5) Tsit5Init\" => Dict(:alg => EK1(order=5, smooth=DENSE, initialization=ClassicSolverInit()))\n \"EK1(2) Tsit5Init+ddu\" => Dict(:alg => EK1(order=2, smooth=DENSE, initialization=ClassicSolverInit(init_on_ddu=true)))\n \"EK1(3) Tsit5Init+ddu\" => Dict(:alg => EK1(order=3, smooth=DENSE, initialization=ClassicSolverInit(init_on_ddu=true)))\n \"EK1(5) Tsit5Init+ddu\" => Dict(:alg => EK1(order=5, smooth=DENSE, initialization=ClassicSolverInit(init_on_ddu=true)))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:15)\nreltols = 1.0 ./ 10.0 .^ (1:12)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, color=[2 2 2 4 4 4 5 5 5], xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#Conclusion","page":"Non-stiff ODE: Lotka-Volterra","title":"Conclusion","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"Use the EK1! It seems to be strictly better than the EK0 here. Though note that by using ParameterizedFunctions.jl, the Jacobian of the vector field is available analytically.\nOrders behave as in classic solvers: Use low order for low accuracy, medium order for medium accuracy, high order for high accuracy.\nMost likely, the default choice of diffusionmodel=DynamicDiffusion and initialization=TaylorModeInit are fine.","category":"page"},{"location":"benchmarks/lotkavolterra/#Appendix","page":"Non-stiff ODE: Lotka-Volterra","title":"Appendix","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"Computer information:","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"InteractiveUtils.versioninfo()","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"Julia Version 1.8.5\nCommit 17cfb8e65ea (2023-01-08 06:45 UTC)\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)\n Threads: 12 on 12 virtual cores\nEnvironment:\n JULIA_NUM_THREADS = auto\n JULIA_STACKTRACE_MINIMAL = true","category":"page"},{"location":"initialization/#Initialization","page":"Initialization","title":"Initialization","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"The notion of \"initialization\" relates to the prior part of the model.","category":"page"},{"location":"initialization/#Background:-The-prior","page":"Initialization","title":"Background: The prior","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"We model the ODE solution y(t) with a Gauss–Markov prior. More precisely, let","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"beginaligned\nY(t) = left Y^(0)(t) Y^(1)(t) dots Y^(q)(t) right\nendaligned","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"be the solution to the SDE","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"beginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = textcolor389826A Y(t) textdt + textcolor4063D8Gamma textdW(t) \nY(0) sim textcolor9558B2 mathcalN left( mu_0 Sigma_0 right) \nendaligned","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"Then Y^(i)(t) models the i-th derivative of y(t). In this section, we consider the initial distribution textcolorpurple mathcalN left( mu_0 Sigma_0 right) . If you're more interested in the drift matrix textcolor389826A check out the Priors section, and for more info on the diffusion textcolor4063D8Gamma check out the Diffusion models and calibration section.","category":"page"},{"location":"initialization/#Setting-the-initial-distribution","page":"Initialization","title":"Setting the initial distribution","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"Let's assume an initial value problem of the form","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"beginaligned\ndoty(t) = f(y(t) t) qquad 0 T \ny(0) = y_0\nendaligned","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"It is clear that this contains quite some information for Y(0): The initial value y_0 and the vector field f imply","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"beginaligned\nY^(0)(0) = y_0 \nY^(1)(0) = f(y_0 0)\nendaligned","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"And it turns out that we can also compute higher-order derivatives of y with the chain rule, which we can use to initialize Y^(i)(0). This, done efficiently with Taylor-mode autodiff by using TaylorIntegration.jl, is what TaylorModeInit does. See also [1].","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"In the vast majority of cases, just stick to the exact Taylor-mode initialization TaylorModeInit!","category":"page"},{"location":"initialization/#API","page":"Initialization","title":"API","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"TaylorModeInit\nClassicSolverInit","category":"page"},{"location":"initialization/#ProbNumDiffEq.TaylorModeInit","page":"Initialization","title":"ProbNumDiffEq.TaylorModeInit","text":"TaylorModeInit()\n\nExact initialization via Taylor-mode automatic differentiation.\n\nThis is the recommended initialization method!\n\nIt uses TaylorIntegration.jl to efficiently compute the higher-order derivatives of the solution at the initial value, via Taylor-mode automatic differentiation.\n\nIn some special cases it can happen that TaylorIntegration.jl is incompatible with the given problem (typically because the problem definition does not allow for elements of type Taylor). If this happens, try ClassicSolverInit.\n\nReferences\n\n[1] N. Krämer, P. Hennig: Stable Implementation of Probabilistic ODE Solvers (2020)\n\n\n\n\n\n","category":"type"},{"location":"initialization/#ProbNumDiffEq.ClassicSolverInit","page":"Initialization","title":"ProbNumDiffEq.ClassicSolverInit","text":"ClassicSolverInit(; alg=OrdinaryDiffEq.Tsit5(), init_on_ddu=false)\n\nInitialization via regression on a few steps of a classic ODE solver.\n\nIn a nutshell, instead of specifying mu_0 exactly and setting Sigma_0=0 (which is what TaylorModeInit does), use a classic ODE solver to compute a few steps of the solution, and then regress on the computed values (by running a smoother) to compute mu_0 and Sigma_0 as the mean and covariance of the smoothing posterior at time 0. See also [2].\n\nThe initial value and derivative are set directly from the given initial value problem; optionally the second derivative can also be set via automatic differentiation by setting init_on_ddu=true.\n\nArguments\n\nalg: The solver to be used. Can be any solver from OrdinaryDiffEq.jl.\ninit_on_ddu: If true, the second derivative is also initialized exactly via automatic differentiation with ForwardDiff.jl.\n\nReferences\n\n[2] M. Schober, S. Särkkä, and P. Hennig: A Probabilistic Model for the Numerical Solution of Initial Value Problems (2018)\n\n\n\n\n\n","category":"type"},{"location":"initialization/#initrefs","page":"Initialization","title":"References","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"[1] N. Krämer, P. Hennig: Stable Implementation of Probabilistic ODE Solvers (2020) (link) [2] M. Schober, S. Särkkä, and P. Hennig: A Probabilistic Model for the Numerical Solution of Initial Value Problems (2018) (link)","category":"page"},{"location":"diffusions/#Diffusion-models-and-calibration","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"The notion of \"diffusion\" and \"calibration\" relates to the prior part of the model.","category":"page"},{"location":"diffusions/#Background:-The-prior","page":"Diffusion models and calibration","title":"Background: The prior","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"We model the ODE solution y(t) with a Gauss–Markov prior. More precisely, let","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"beginaligned\nY(t) = left Y^(0)(t) Y^(1)(t) dots Y^(q)(t) right\nendaligned","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"be the solution to the SDE","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"beginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = textcolor389826A Y(t) textdt + textcolor4063D8Gamma textdW(t) \nY(0) sim textcolorpurple mathcalN left( mu_0 Sigma_0 right) \nendaligned","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"Then Y^(i)(t) models the i-th derivative of y(t). In this section, we consider choices relating to the \"diffusion\" textcolor4063D8Gamma. If you're more interested in the drift matrix textcolor389826A check out the Priors section, and for info on the initial distribution textcolorpurple mathcalN left( mu_0 Sigma_0 right) check out the Initialization section.","category":"page"},{"location":"diffusions/#Diffusion-and-calibration","page":"Diffusion models and calibration","title":"Diffusion and calibration","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"We call textcolor4063D8Gamma the \"diffusion\" parameter. Since it is typically not known we need to estimate it; this is called \"calibration\".","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"There are a few different choices for how to model and estimate textcolor4063D8Gamma:","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"FixedDiffusion assumes an isotropic, time-fixed textcolor4063D8Gamma = sigma cdot I_d,\nDynamicDiffusion assumes an isotropic, time-varying textcolor4063D8Gamma(t) = sigma(t) cdot I_d (recommended),\nFixedMVDiffusion assumes a diagonal, time-fixed textcolor4063D8Gamma = operatornamediag(sigma_1 dots sigma_d),\nDynamicMVDiffusion assumes a diagonal, time-varying textcolor4063D8Gamma(t) = operatornamediag(sigma_1(t) dots sigma_d(t)).","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"Or more compactly:","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":" Isotropic: Diagonal (only for the EK0)\nTime-varying DynamicDiffusion DynamicMVDiffusion\nTime-fixed FixedDiffusion FixedMVDiffusion","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"For more details on diffusions and calibration, check out this paper [1].","category":"page"},{"location":"diffusions/#API","page":"Diffusion models and calibration","title":"API","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"DynamicDiffusion\nFixedDiffusion\nDynamicMVDiffusion\nFixedMVDiffusion","category":"page"},{"location":"diffusions/#ProbNumDiffEq.DynamicDiffusion","page":"Diffusion models and calibration","title":"ProbNumDiffEq.DynamicDiffusion","text":"DynamicDiffusion()\n\nTime-varying, isotropic diffusion, which is quasi-maximum-likelihood-estimated at each step.\n\nThis is the recommended diffusion when using adaptive step-size selection, and in particular also when solving stiff systems.\n\n\n\n\n\n","category":"type"},{"location":"diffusions/#ProbNumDiffEq.FixedDiffusion","page":"Diffusion models and calibration","title":"ProbNumDiffEq.FixedDiffusion","text":"FixedDiffusion(; initial_diffusion=1.0, calibrate=true)\n\nTime-fixed, isotropic diffusion, which is (optionally) quasi-maximum-likelihood-estimated.\n\nThis is the recommended diffusion when using fixed steps.\n\nBy default with calibrate=true, all covariances are re-scaled at the end of the solve with the MLE diffusion. Set calibrate=false to skip this step, e.g. when setting the initial_diffusion and then estimating the diffusion outside of the solver (e.g. with Fenrir.jl).\n\n\n\n\n\n","category":"type"},{"location":"diffusions/#ProbNumDiffEq.DynamicMVDiffusion","page":"Diffusion models and calibration","title":"ProbNumDiffEq.DynamicMVDiffusion","text":"DynamicMVDiffusion()\n\nTime-varying, diagonal diffusion, which is quasi-maximum-likelihood-estimated at each step.\n\nOnly works with the EK0!\n\nA multi-variate version of DynamicDiffusion, where instead of an isotropic matrix, a diagonal matrix is estimated. This can be helpful to get more expressive posterior covariances when using the EK0, since the individual dimensions can be adjusted separately.\n\nSee also [1].\n\n\n\n\n\n","category":"type"},{"location":"diffusions/#ProbNumDiffEq.FixedMVDiffusion","page":"Diffusion models and calibration","title":"ProbNumDiffEq.FixedMVDiffusion","text":"FixedMVDiffusion(; initial_diffusion=1.0, calibrate=true)\n\nTime-fixed, diagonal diffusion, which is quasi-maximum-likelihood-estimated at each step.\n\nOnly works with the EK0!\n\nA multi-variate version of FixedDiffusion, where instead of an isotropic matrix, a diagonal matrix is estimated. This can be helpful to get more expressive posterior covariances when using the EK0, since the individual dimensions can be adjusted separately.\n\nSee also [1].\n\n\n\n\n\n","category":"type"},{"location":"diffusions/#diffusionrefs","page":"Diffusion models and calibration","title":"References","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"[1] N. Bosch, P. Hennig, F. Tronarp: Calibrated Adaptive Probabilistic ODE Solvers (2021) (link)","category":"page"},{"location":"priors/#Priors","page":"Priors","title":"Priors","text":"","category":"section"},{"location":"priors/","page":"Priors","title":"Priors","text":"We model the ODE solution y(t) with a Gauss–Markov prior. More precisely, let","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"beginaligned\nY(t) = left Y^(0)(t) Y^(1)(t) dots Y^(q)(t) right\nendaligned","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"be the solution to the SDE","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"beginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = textcolor389826A Y(t) textdt + textcolor4063D8Gamma textdW(t) \nY(0) sim textcolorpurple mathcalN left( mu_0 Sigma_0 right) \nendaligned","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"Then Y^(i)(t) models the i-th derivative of y(t). In this section, we consider choices relating to the drift matrix textcolor389826A. If you're more interested in the diffusion textcolor4063D8Gamma check out the Diffusion models and calibration section, and for info on the initial distribution textcolorpurple mathcalN left( mu_0 Sigma_0 right) check out the Initialization section.","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"If you're unsure which prior to use, just stick to the integrated Wiener process prior IWP! This is also the default choice for all solvers. The other priors are rather experimental / niche at the time of writing.","category":"page"},{"location":"priors/#API","page":"Priors","title":"API","text":"","category":"section"},{"location":"priors/","page":"Priors","title":"Priors","text":"IWP\nIOUP\nMatern","category":"page"},{"location":"priors/#ProbNumDiffEq.IWP","page":"Priors","title":"ProbNumDiffEq.IWP","text":"IWP([wiener_process_dimension::Integer,] num_derivatives::Integer)\n\nIntegrated Wiener process.\n\nThis is the recommended prior! It is the most well-tested prior, both in this package and in the probabilistic numerics literature in general (see the references). It is also the prior that has the most efficient implementation.\n\nThe IWP can be created without specifying the dimension of the Wiener process, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage.\n\nIn math\n\nbeginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = Gamma textdW(t)\nendaligned\n\nExamples\n\njulia> solve(prob, EK1(prior=IWP(2)))\n\n\n\n\n\n","category":"type"},{"location":"priors/#ProbNumDiffEq.IOUP","page":"Priors","title":"ProbNumDiffEq.IOUP","text":"IOUP([wiener_process_dimension::Integer,]\n num_derivatives::Integer,\n rate_parameter::Union{Number,AbstractVector,AbstractMatrix})\n\nIntegrated Ornstein–Uhlenbeck process.\n\nAs with the IWP, the IOUP can be created without specifying its dimension, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage. The rate parameter however always needs to be specified.\n\nIn math\n\nbeginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = L Y^(q)(t) textdt + Gamma textdW(t)\nendaligned\n\nwhere L is the rate_parameter.\n\nExamples\n\njulia> solve(prob, EK1(prior=IOUP(2, -1)))\n\n\n\n\n\n","category":"type"},{"location":"priors/#ProbNumDiffEq.Matern","page":"Priors","title":"ProbNumDiffEq.Matern","text":"Matern([wiener_process_dimension::Integer,]\n num_derivatives::Integer,\n lengthscale::Number)\n\nMatern process.\n\nAs with the IWP, the Matern can be created without specifying its dimension, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage. The lengthscale parameter however always needs to be specified.\n\nIn math\n\nbeginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = - sum_j=0^q left(\n beginpmatrix q+1 j endpmatrix\n left( fracsqrt2q - 1l right)^q-j\n Y^(j)(t) right) textdt + Gamma textdW(t)\nendaligned\n\nwhere l is the lengthscale.\n\nExamples\n\njulia> solve(prob, EK1(prior=Matern(2, 1)))\n\n\n\n\n\n","category":"type"},{"location":"getting_started/#Solving-ODEs-with-Probabilistic-Numerics","page":"Getting Started","title":"Solving ODEs with Probabilistic Numerics","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"In this tutorial we solve a simple non-linear ordinary differential equation (ODE) with the probabilistic numerical ODE solvers implemented in this package.","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"note: Note\nIf you never used DifferentialEquations.jl, check out their \"Getting Started with Differential Equations in Julia\" tutorial. It explains how to define and solve ODE problems and how to analyze the solution, so it's a great starting point. Most of ProbNumDiffEq.jl works exaclty as you would expect from DifferentialEquations.jl – just with some added uncertainties and related functionality on top!","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"In this tutorial, we consider a Fitzhugh-Nagumo model described by an ODE of the form","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"beginaligned\ndoty_1 = c (y_1 - fracy_1^33 + y_2) \ndoty_2 = -frac1c (y_1 - a - b y_2)\nendaligned","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"on a time span t in 0 T, with initial value y(0) = y_0. In the following, we","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"define the problem with explicit choices of initial values, integration domains, and parameters,\nsolve the problem with our ODE filters, and\nvisualize the results and the corresponding uncertainties.","category":"page"},{"location":"getting_started/#TL;DR:-Just-use-DifferentialEquations.jl-with-the-EK1-algorithm","page":"Getting Started","title":"TL;DR: Just use DifferentialEquations.jl with the EK1 algorithm","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"using ProbNumDiffEq, Plots\n\nfunction fitz(du, u, p, t)\n a, b, c = p\n du[1] = c * (u[1] - u[1]^3 / 3 + u[2])\n du[2] = -(1 / c) * (u[1] - a - b * u[2])\nend\nu0 = [-1.0; 1.0]\ntspan = (0.0, 20.0)\np = (0.2, 0.2, 3.0)\nprob = ODEProblem(fitz, u0, tspan, p)\n\nusing Logging; Logging.disable_logging(Logging.Warn); # hide\nsol = solve(prob, EK1())\nLogging.disable_logging(Logging.Debug) # hide\nplot(sol)","category":"page"},{"location":"getting_started/#Step-1:-Define-the-problem","page":"Getting Started","title":"Step 1: Define the problem","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"First, import ProbNumDiffEq.jl","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"using ProbNumDiffEq","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"Then, set up the ODEProblem exactly as you would in DifferentialEquations.jl. Define the vector field","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"function fitz(du, u, p, t)\n a, b, c = p\n du[1] = c * (u[1] - u[1]^3 / 3 + u[2])\n du[2] = -(1 / c) * (u[1] - a - b * u[2])\nend\nnothing # hide","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"and then the ODEProblem, with initial value u0, time span tspan, and parameters p","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"u0 = [-1.0; 1.0]\ntspan = (0.0, 20.0)\np = (0.2, 0.2, 3.0)\nprob = ODEProblem(fitz, u0, tspan, p)\nnothing # hide","category":"page"},{"location":"getting_started/#Step-2:-Solve-the-problem","page":"Getting Started","title":"Step 2: Solve the problem","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"To solve the ODE we just use DifferentialEquations.jl's solve interface, together with one of the algorithms implemented in this package. For now, let's use EK1:","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"sol = solve(prob, EK1())\n# nothing # hide","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"That's it! we just computed a probabilistic numerical ODE solution!","category":"page"},{"location":"getting_started/#Step-3:-Analyze-the-solution","page":"Getting Started","title":"Step 3: Analyze the solution","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"Let's plot the result with Plots.jl.","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"using Plots\nplot(sol)","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"Looks good! Looks like the EK1 managed to solve the Fitzhugh-Nagumo problem quite well.","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"tip: Tip\nTo learn more about plotting ODE solutions, check out the plotting tutorial for DifferentialEquations.jl + Plots.jl provided here. Most of that works exactly as expected with ProbNumDiffEq.jl.","category":"page"},{"location":"getting_started/#Plot-the-probabilistic-error-estimates","page":"Getting Started","title":"Plot the probabilistic error estimates","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"The plot above looks like a standard ODE solution – but it's not! The numerical errors are just so small that we can't see them in the plot, and the probabilistic error estimates are too. We can visualize them by plotting the errors and error estimates directly:","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"using OrdinaryDiffEq, Statistics\nreference = solve(prob, Vern9(), abstol=1e-9, reltol=1e-9, saveat=sol.t)\nerrors = reduce(hcat, mean.(sol.pu) .- reference.u)'\nerror_estimates = reduce(hcat, std.(sol.pu))'\nplot(sol.t, errors, label=\"error\", color=[1 2], xlabel=\"t\", ylabel=\"err\")\nplot!(sol.t, zero(errors), ribbon=3error_estimates, label=\"error estimate\",\n color=[1 2], alpha=0.2)","category":"page"},{"location":"getting_started/#More-about-the-ProbabilisticODESolution","page":"Getting Started","title":"More about the ProbabilisticODESolution","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"The solution object returned by ProbNumDiffEq.jl mostly behaves just like any other ODESolution in DifferentialEquations.jl – with some added uncertainties and related functionality on top. So, sol can be indexed","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"sol[1]\nsol[end]","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"and has fields sol.t and sol.u which store the time points and mean estimates:","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"sol.t[end]\nsol.u[end]","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"But since sol is a probabilistic numerical ODE solution, it contains a Gaussian distributions over solution values. The marginals of this posterior are stored in sol.pu:","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"sol.pu[end]","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"You can compute means, covariances, and standard deviations via Statistics.jl:","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"using Statistics\nmean(sol.pu[5])\ncov(sol.pu[5])\nstd(sol.pu[5])","category":"page"},{"location":"getting_started/#Dense-output","page":"Getting Started","title":"Dense output","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"Probabilistic numerical ODE solvers approximate the posterior distribution","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"p Big( y(t) big y(0) = y_0 doty(t_i) = f_theta(y(t_i) t_i) Big)","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"which describes a posterior not just for the discrete steps but for any t in the continuous space t in 0 T; in classic ODE solvers, this is also known as \"interpolation\" or \"dense output\". The probabilistic solutions returned by our solvers can be interpolated as usual by treating them as functions, but they return Gaussian distributions","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"sol(0.45)\nmean(sol(0.45))","category":"page"},{"location":"getting_started/#Next-steps","page":"Getting Started","title":"Next steps","text":"","category":"section"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"Check out one of the other tutorials:","category":"page"},{"location":"getting_started/","page":"Getting Started","title":"Getting Started","text":"\"Second Order ODEs and Energy Preservation\" explains how to solve second-order ODEs more efficiently while also better perserving energy or other conserved quantities;\n\"Solving DAEs with Probabilistic Numerics\" demonstrates how to solve differential algebraic equatios in a probabilistic numerical way.","category":"page"},{"location":"benchmarks/multi-language-wrappers/#ProbNumDiffEq.jl-vs.-various-solver-packages","page":"Multi-Language Wrapper Benchmark","title":"ProbNumDiffEq.jl vs. various solver packages","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"Adapted from SciMLBenchmarks.jl multi-language wrapper benchmark.","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"# Imports\nusing LinearAlgebra, Statistics, InteractiveUtils\nusing StaticArrays, DiffEqDevTools, ParameterizedFunctions, Plots, SciMLBase, OrdinaryDiffEq\nusing ODEInterface, ODEInterfaceDiffEq, Sundials, SciPyDiffEq, deSolveDiffEq, MATLABDiffEq, LSODA\nusing LoggingExtras\n\nusing ProbNumDiffEq","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"# Plotting theme\ntheme(:dao;\n markerstrokewidth=0.5,\n legend=:outertopright,\n bottom_margin=5Plots.mm,\n size = (1000, 400),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"# Constants used throughout this benchmark\nconst DENSE = false # used to decide if we smooth or not\nconst SAVE_EVERYSTEP = false;","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_COLORS = Dict(\n \"Julia\" => :LightGreen,\n \"Julia (static)\" => :DarkGreen,\n \"Hairer\" => :Red,\n \"MATLAB\" => :Orange,\n \"SciPy\" => :Yellow,\n \"deSolve\" => :Blue,\n \"Sundials\" => :Purple,\n \"liblsoda\" => :Purple,\n \"ProbNumDiffEq\" => :Darkgray,\n)\ntocolor(n) = _COLORS[split(n, ':')[1]];","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"deprecated_filter(log_args) = !contains(log_args.message, \"deprecated\")\nfiltered_logger = ActiveFilteredLogger(deprecated_filter, global_logger());","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Non-Stiff-Problem-1:-Lotka-Volterra","page":"Multi-Language Wrapper Benchmark","title":"Non-Stiff Problem 1: Lotka-Volterra","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"f = @ode_def LotkaVolterra begin\n dx = a*x - b*x*y\n dy = -c*y + d*x*y\nend a b c d\np = [1.5, 1, 3, 1]\ntspan = (0.0, 10.0)\nu0 = [1.0, 1.0]\nprob = ODEProblem{true,SciMLBase.FullSpecialize()}(f,u0,tspan,p)\nstaticprob = ODEProblem{false,SciMLBase.FullSpecialize()}(f,SVector{2}(u0),tspan,SVector{4}(p))\n\nsol = solve(prob,Vern7(),abstol=1/10^14,reltol=1/10^14,dense=false)\ntest_sol = sol\nplot(sol, title=\"Lotka-Volterra Solution\", legend=false)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_setups = [\n \"Julia: DP5\" => Dict(:alg=>DP5())\n \"Julia: Tsit5\" => Dict(:alg=>Tsit5())\n \"Julia: Vern7\" => Dict(:alg=>Vern7())\n \"Hairer: dopri5\" => Dict(:alg=>ODEInterfaceDiffEq.dopri5())\n \"MATLAB: ode45\" => Dict(:alg=>MATLABDiffEq.ode45())\n \"MATLAB: ode113\" => Dict(:alg=>MATLABDiffEq.ode113())\n \"SciPy: RK45\" => Dict(:alg=>SciPyDiffEq.RK45())\n \"SciPy: LSODA\" => Dict(:alg=>SciPyDiffEq.LSODA())\n \"SciPy: odeint\" => Dict(:alg=>SciPyDiffEq.odeint())\n \"deSolve: lsoda\" => Dict(:alg=>deSolveDiffEq.lsoda())\n \"deSolve: ode45\" => Dict(:alg=>deSolveDiffEq.ode45())\n \"Sundials: Adams\" => Dict(:alg=>Sundials.CVODE_Adams())\n \"ProbNumDiffEq: EK0(2)\" => Dict(:alg=>EK0(order=2, smooth=DENSE))\n \"ProbNumDiffEq: EK0(3)\" => Dict(:alg=>EK0(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(3)\" => Dict(:alg=>EK1(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(5)\" => Dict(:alg=>EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\ncolors = tocolor.(labels) |> permutedims\n\nabstols = 1.0 ./ 10.0 .^ (6:13)\nreltols = 1.0 ./ 10.0 .^ (3:10)\n\nwp = with_logger(filtered_logger) do\n WorkPrecisionSet(\n [prob, staticprob], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = [test_sol, test_sol],\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n )\nend\n\nplot(\n wp,\n title = \"Non-stiff 1: Lotka-Volterra\",\n color = colors,\n xticks = 10.0 .^ (-16:1:5),\n yticks = 10.0 .^ (-6:1:5),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Non-Stiff-Problem-2:-Rigid-Body","page":"Multi-Language Wrapper Benchmark","title":"Non-Stiff Problem 2: Rigid Body","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"f = @ode_def RigidBodyBench begin\n dy1 = -2*y2*y3\n dy2 = 1.25*y1*y3\n dy3 = -0.5*y1*y2 + 0.25*sin(t)^2\nend\nu0 = [1.0;0.0;0.9]\ntspan = (0.0, 10.0)\nprob = ODEProblem{true,SciMLBase.FullSpecialize()}(f,u0,tspan)\nstaticprob = ODEProblem{false,SciMLBase.FullSpecialize()}(f,SVector{3}(u0),tspan)\nsol = solve(prob,Vern7(),abstol=1/10^14,reltol=1/10^14,dense=false)\ntest_sol = sol\nplot(sol, title=\"Rigid Body Solution\", legend=false)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_setups = [\n \"Julia: DP5\" => Dict(:alg=>DP5())\n \"Julia: Tsit5\" => Dict(:alg=>Tsit5())\n \"Julia: Vern7\" => Dict(:alg=>Vern7())\n \"Hairer: dopri5\" => Dict(:alg=>dopri5())\n \"MATLAB: ode45\" => Dict(:alg=>MATLABDiffEq.ode45())\n \"MATLAB: ode113\" => Dict(:alg=>MATLABDiffEq.ode113())\n \"SciPy: RK45\" => Dict(:alg=>SciPyDiffEq.RK45())\n \"SciPy: LSODA\" => Dict(:alg=>SciPyDiffEq.LSODA())\n \"SciPy: odeint\" => Dict(:alg=>SciPyDiffEq.odeint())\n \"deSolve: lsoda\" => Dict(:alg=>deSolveDiffEq.lsoda())\n \"deSolve: ode45\" => Dict(:alg=>deSolveDiffEq.ode45())\n \"Sundials: Adams\" => Dict(:alg=>CVODE_Adams())\n \"ProbNumDiffEq: EK0(2)\" => Dict(:alg=>EK0(order=2, smooth=DENSE))\n \"ProbNumDiffEq: EK0(3)\" => Dict(:alg=>EK0(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(3)\" => Dict(:alg=>EK1(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(5)\" => Dict(:alg=>EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\ncolors = tocolor.(labels) |> permutedims\n\nabstols = 1.0 ./ 10.0 .^ (6:13)\nreltols = 1.0 ./ 10.0 .^ (3:10)\n\nwp = with_logger(filtered_logger) do\n WorkPrecisionSet(\n [prob,staticprob], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = [test_sol, test_sol],\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false\n )\nend\n\nplot(\n wp,\n title = \"Non-stiff 2: Rigid-Body\",\n color = colors,\n xticks = 10.0 .^ (-12:1:5),\n yticks = 10.0 .^ (-6:1:5),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Stiff-Problem-1:-ROBER","page":"Multi-Language Wrapper Benchmark","title":"Stiff Problem 1: ROBER","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"rober = @ode_def begin\n dy₁ = -k₁*y₁+k₃*y₂*y₃\n dy₂ = k₁*y₁-k₂*y₂^2-k₃*y₂*y₃\n dy₃ = k₂*y₂^2\nend k₁ k₂ k₃\nu0 = [1.0,0.0,0.0]\np = [0.04,3e7,1e4]\nprob = ODEProblem{true,SciMLBase.FullSpecialize()}(rober,u0,(0.0,1e5),p)\nstaticprob = ODEProblem{false,SciMLBase.FullSpecialize()}(rober,SVector{3}(u0),(0.0,1e5),SVector{3}(p))\nsol = solve(prob,CVODE_BDF(),abstol=1/10^14,reltol=1/10^14,dense=false)\ntest_sol = sol\nplot(sol, title=\"ROBER Solution\", legend=false, xlims=(1e0, 1e5))","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_setups = [\n \"Julia: Rosenbrock23\" => Dict(:alg=>Rosenbrock23())\n \"Julia: Rodas4\" => Dict(:alg=>Rodas4())\n \"Julia: Rodas5\" => Dict(:alg=>Rodas5())\n \"Hairer: rodas\" => Dict(:alg=>rodas())\n \"Hairer: radau\" => Dict(:alg=>radau())\n \"MATLAB: ode23s\" => Dict(:alg=>MATLABDiffEq.ode23s())\n \"MATLAB: ode15s\" => Dict(:alg=>MATLABDiffEq.ode15s())\n \"SciPy: LSODA\" => Dict(:alg=>SciPyDiffEq.LSODA())\n \"SciPy: BDF\" => Dict(:alg=>SciPyDiffEq.BDF())\n \"SciPy: odeint\" => Dict(:alg=>SciPyDiffEq.odeint())\n \"deSolve: lsoda\" => Dict(:alg=>deSolveDiffEq.lsoda())\n \"Sundials: CVODE\" => Dict(:alg=>CVODE_BDF())\n \"ProbNumDiffEq: EK1(2)\" => Dict(:alg=>EK1(order=2, smooth=DENSE))\n \"ProbNumDiffEq: EK1(3)\" => Dict(:alg=>EK1(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(5)\" => Dict(:alg=>EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\ncolors = tocolor.(labels) |> permutedims\n\nabstols = 1.0 ./ 10.0 .^ (5:12)\nreltols = 1.0 ./ 10.0 .^ (2:9)\n\nwp = with_logger(filtered_logger) do\n WorkPrecisionSet(\n [prob, staticprob], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n dense = DENSE,\n verbose = false,\n save_everystep = SAVE_EVERYSTEP,\n appxsol = [test_sol, test_sol],\n maxiters=Int(1e5)\n )\nend\n\nplot(\n wp,\n title = \"Stiff 1: ROBER\",\n color = colors,\n xticks = 10.0 .^ (-16:1:4),\n yticks = 10.0 .^ (-6:1:5),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Stiff-Problem-2:-HIRES","page":"Multi-Language Wrapper Benchmark","title":"Stiff Problem 2: HIRES","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"f = @ode_def Hires begin\n dy1 = -1.71*y1 + 0.43*y2 + 8.32*y3 + 0.0007\n dy2 = 1.71*y1 - 8.75*y2\n dy3 = -10.03*y3 + 0.43*y4 + 0.035*y5\n dy4 = 8.32*y2 + 1.71*y3 - 1.12*y4\n dy5 = -1.745*y5 + 0.43*y6 + 0.43*y7\n dy6 = -280.0*y6*y8 + 0.69*y4 + 1.71*y5 -\n 0.43*y6 + 0.69*y7\n dy7 = 280.0*y6*y8 - 1.81*y7\n dy8 = -280.0*y6*y8 + 1.81*y7\nend\n\nu0 = zeros(8)\nu0[1] = 1\nu0[8] = 0.0057\nprob = ODEProblem{true,SciMLBase.FullSpecialize()}(f,u0,(0.0,321.8122))\nstaticprob = ODEProblem{false,SciMLBase.FullSpecialize()}(f,SVector{8}(u0),(0.0,321.8122))\n\nsol = solve(prob,Rodas5(),abstol=1/10^14,reltol=1/10^14, dense=false)\ntest_sol = sol\nplot(sol, title=\"ROBER Solution\", legend=false)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_setups = [\n \"Julia: Rosenbrock23\" => Dict(:alg=>Rosenbrock23())\n \"Julia: Rodas4\" => Dict(:alg=>Rodas4())\n \"Julia: radau\" => Dict(:alg=>RadauIIA5())\n \"Hairer: rodas\" => Dict(:alg=>rodas())\n \"Hairer: radau\" => Dict(:alg=>radau())\n \"MATLAB: ode23s\" => Dict(:alg=>MATLABDiffEq.ode23s())\n \"MATLAB: ode15s\" => Dict(:alg=>MATLABDiffEq.ode15s())\n \"SciPy: LSODA\" => Dict(:alg=>SciPyDiffEq.LSODA())\n \"SciPy: BDF\" => Dict(:alg=>SciPyDiffEq.BDF())\n \"SciPy: odeint\" => Dict(:alg=>SciPyDiffEq.odeint())\n \"deSolve: lsoda\" => Dict(:alg=>deSolveDiffEq.lsoda())\n \"Sundials: CVODE\" => Dict(:alg=>CVODE_BDF())\n \"ProbNumDiffEq: EK1(2)\" => Dict(:alg=>EK1(order=2, smooth=DENSE))\n \"ProbNumDiffEq: EK1(3)\" => Dict(:alg=>EK1(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(5)\" => Dict(:alg=>EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\ncolors = tocolor.(labels) |> permutedims\n\nabstols = 1.0 ./ 10.0 .^ (5:10)\nreltols = 1.0 ./ 10.0 .^ (1:6)\n\nwp = with_logger(filtered_logger) do\n WorkPrecisionSet(\n [prob, staticprob], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n dense = false,\n verbose = false,\n save_everystep = false,\n appxsol = [test_sol, test_sol],\n maxiters = Int(1e5),\n numruns=100\n )\nend\n\nplot(\n wp,\n title = \"Stiff 2: Hires\",\n color=colors,\n xticks = 10.0 .^ (-16:1:4),\n yticks = 10.0 .^ (-6:1:5),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Appendix","page":"Multi-Language Wrapper Benchmark","title":"Appendix","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"Computer information:","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"InteractiveUtils.versioninfo()","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"Julia Version 1.8.5\nCommit 17cfb8e65ea (2023-01-08 06:45 UTC)\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)\n Threads: 12 on 12 virtual cores\nEnvironment:\n JULIA_NUM_THREADS = auto\n JULIA_STACKTRACE_MINIMAL = true","category":"page"},{"location":"#Probabilistic-Numerical-Differential-Equation-Solvers","page":"Home","title":"Probabilistic Numerical Differential Equation Solvers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"(Image: Banner)","category":"page"},{"location":"","page":"Home","title":"Home","text":"ProbNumDiffEq.jl provides probabilistic numerical solvers to the DifferentialEquations.jl ecosystem. The implemented ODE filters solve differential equations via Bayesian filtering and smoothing and compute not just a single point estimate of the true solution, but a posterior distribution that contains an estimate of its numerical approximation error.","category":"page"},{"location":"","page":"Home","title":"Home","text":"For a short intro video, check out our poster presentation at JuliaCon2021.","category":"page"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"","page":"Home","title":"Home","text":"For more probabilistic numerics check out the ProbNum Python package. It implements probabilistic ODE solvers, but also probabilistic linear solvers, Bayesian quadrature, and many filtering and smoothing implementations.","category":"page"},{"location":"","page":"Home","title":"Home","text":"","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Run Julia, enter ] to bring up Julia's package manager, and add the ProbNumDiffEq.jl package:","category":"page"},{"location":"","page":"Home","title":"Home","text":"julia> ]\n(v1.8) pkg> add ProbNumDiffEq","category":"page"},{"location":"#Getting-Started","page":"Home","title":"Getting Started","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"For a quick introduction check out the \"Solving ODEs with Probabilistic Numerics\" tutorial.","category":"page"},{"location":"#Features","page":"Home","title":"Features","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Two extended Kalman filtering-based probabilistic solvers: the explicit EK0 and semi-implicit EK1.\nAdaptive step-size selection (by default with PI control)\nOn-line uncertainty calibration, for multiple different measurement models\nDense output\nSampling from the solution\nCallback support\nConvenient plotting through a Plots.jl recipe\nAutomatic differentiation via ForwardDiff.jl\nSupports arbitrary precision numbers via BigFloats.jl\nSpecialized solvers for second-order ODEs (demo will be added)\nCompatible with DAEs in mass-matrix ODE form (demo will be added)","category":"page"},{"location":"#references","page":"Home","title":"References","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"N. Bosch, F. Tronarp, P. Hennig: Pick-and-Mix Information Operators for Probabilistic ODE Solvers (2022)\nN. Krämer, N. Bosch, J. Schmidt, P. Hennig: Probabilistic ODE Solutions in Millions of Dimensions (2021)\nN. Bosch, P. Hennig, F. Tronarp: Calibrated Adaptive Probabilistic ODE Solvers (2021)\nF. Tronarp, S. Särkkä, and P. Hennig: Bayesian ODE Solvers: The Maximum A Posteriori Estimate (2021)\nN. Krämer, P. Hennig: Stable Implementation of Probabilistic ODE Solvers (2020)\nH. Kersting, T. J. Sullivan, and P. Hennig: Convergence Rates of Gaussian Ode Filters (2020)\nF. Tronarp, H. Kersting, S. Särkkä, and P. Hennig: Probabilistic Solutions To Ordinary Differential Equations As Non-Linear Bayesian Filtering: A New Perspective (2019)\nM. Schober, S. Särkkä, and P. Hennig: A Probabilistic Model for the Numerical Solution of Initial Value Problems (2018)","category":"page"},{"location":"","page":"Home","title":"Home","text":"A much more detailed list of references, not only on ODE filters but on probabilistic numerics in general, can be found on the probabilistic-numerics.org homepage.","category":"page"},{"location":"implementation/#Solver-Implementation-via-OrdinaryDiffEq.jl","page":"Implementation via OrdinaryDiffEq.jl","title":"Solver Implementation via OrdinaryDiffEq.jl","text":"","category":"section"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"ProbNumDiffEq.jl builds directly on OrdinaryDiffEq.jl to benefit from its iterator interface, flexible step-size control, and efficient Jacobian calculations. But, this requires extending non-public APIs. This page is meant to provide an overview on which parts exactly ProbNumDiffEq.jl builds on.","category":"page"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"For more discussion on the pros and cons of building on OrdinaryDiffEq.jl, see this thread on discourse.","category":"page"},{"location":"implementation/#Building-on-OrdinaryDiffEq.jl","page":"Implementation via OrdinaryDiffEq.jl","title":"Building on OrdinaryDiffEq.jl","text":"","category":"section"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"ProbNumDiffEq.jl shares most of OrdinaryDiffEq.jl's implementation. In particular:","category":"page"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"OrdinaryDiffEq.__init builds the cache and the integrator, and calls OrdinaryDiffEq.initialize!\nOrdinaryDiffEq.solve! implements the actual iterator structure, with\nOrdinaryDiffEq.loopheader!\nOrdinaryDiffEq.perform_step!\nOrdinaryDiffEq.loopfooter!\nOrdinaryDiffEq.postamble!","category":"page"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"ProbNumDiffEq.jl builds around this structure and overloads some of the parts:","category":"page"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"Algorithms: EK0/EK1 <: AbstractEK <: OrdinaryDiffEq.OrdinaryDiffEqAdaptiveAlgorithm\n./src/algorithms.jl provides the algorithms themselves\n./src/alg_utils.jl implements many traits (e.g. relating to autodiff, implicitness, step-size control)\nCache: EKCache <: AbstractODEFilterCache <: OrdinaryDiffEq.OrdinaryDiffEqCache\n./src/caches.jl implements the cache and its main constructor: OrdinaryDiffEq.alg_cache\nInitialization and perform_step!: via OrdinaryDiffEq.initialize! and OrdinaryDiffEq.perform_step!. Implemented in ./src/perform_step.jl.\nCustom postamble by overloading OrdinaryDiffEq.postamble! (which should always call OrdinaryDiffEq._postamble!). This is where we do the \"smoothing\" of the solution. Implemented in ./src/integrator_utils.jl. \nCustom saving by overloading OrdinaryDiffEq.savevalues! (which should always call OrdinaryDiffEq._savevalues!). Implemented in ./src/integrator_utils.jl.","category":"page"},{"location":"implementation/#Building-on-DiffEqBase.jl","page":"Implementation via OrdinaryDiffEq.jl","title":"Building on DiffEqBase.jl","text":"","category":"section"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"DiffEqBase.__init is currently overloaded to transform OOP problems into IIP problems (in ./src/solve.jl).\nThe solution object: ProbODESolution <: AbstractProbODESolution <: DiffEqBase.AbstractODESolution\n./src/solution.jl implements the main parts. Note that the main constructor DiffEqBase.build_solution is called by OrdinaryDiffEq.__init - so OrdinaryDiffEq.jl has control over its inputs.\nThere is also MeanProbODESolution <: DiffEqBase.AbstractODESolution: It allows handling the mean of a probabilistic ODE solution the same way one would handle any \"standard\" ODE solution - e.g. it is compatible with DiffEqDevTools.appxtrue.\nAbstractODEFilterPosterior <: DiffEqBase.AbstractDiffEqInterpolation is the current interpolant, but it does not actually fully handle the interpolation right now. This part might be subject to change soon.\nPlot recipe in ./src/solution_plotting.jl\nSampling in ./src/solution_sampling.jl\nDiffEqBase.prepare_alg(::EK1{0}); closely follows a similar function implemented in OrdinaryDiffEq.jl ./src/alg_utils.jl\nthis also required DiffEqBase.remake(::EK1)","category":"page"},{"location":"implementation/#Other-packages","page":"Implementation via OrdinaryDiffEq.jl","title":"Other packages","text":"","category":"section"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"DiffEqDevTools.appxtrue is overloaded to work with ProbODESolution (by just doing mean(sol)). This also enables DiffEqDevTools.WorkPrecision to work out of th box.","category":"page"}]
+[{"location":"references/#references","page":"References","title":"References","text":"","category":"section"},{"location":"references/","page":"References","title":"References","text":"[1] \n\n\n [2] \n\n\n [3] \n\n\n [4] \n\n\n [5] \n\n\n [6] \n\nN. Bosch, P. Hennig and F. Tronarp.
Calibrated Adaptive Probabilistic ODE Solvers . In: Proceedings of The 24th International Conference on Artificial\n Intelligence and Statistics, Proceedings of Machine Learning Research, 3466–3474, PMLR (2021).
\n [7] \n\n\n [8] \n\n\n [9] \n\n\n [10] \n\n\n [11] \n\n\n [12] \n\n\n \n ","category":"page"},{"location":"benchmarks/vanderpol/#Van-der-Pol-benchmark","page":"Stiff ODE: Van der Pol","title":"Van der Pol benchmark","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"using LinearAlgebra, Statistics, InteractiveUtils\nusing DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Plots\nusing ProbNumDiffEq\n\n# Plotting theme\ntheme(:dao;\n markerstrokewidth=0.5,\n legend=:outertopright,\n bottom_margin=5Plots.mm,\n size = (1000, 400),\n)","category":"page"},{"location":"benchmarks/vanderpol/#Van-der-Pol-problem-definition","page":"Stiff ODE: Van der Pol","title":"Van der Pol problem definition","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"function vanderpol!(du, u, p, t)\n du[1] = u[2]\n du[2] = p[1] * ((1 - u[1]^2) * u[2] - u[1])\nend\np = [1e5]\ntspan = (0.0, 6.3)\nu0 = [2.0, 0.0]\nprob = ODEProblem(vanderpol!, u0, tspan, p)\n\ntest_sol = solve(prob, RadauIIA5(), abstol=1/10^14, reltol=1/10^14, dense=false)\nplot(test_sol, title=\"Van der Pol Solution\", legend=false, ylims=(-2.5, 2.5))","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"(Image: )","category":"page"},{"location":"benchmarks/vanderpol/#EK1-accross-orders","page":"Stiff ODE: Van der Pol","title":"EK1 accross orders","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1($order)\" => Dict(:alg => EK1(order=order, smooth=DENSE))\n for order in 2:6\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (6:13)\nreltols = 1.0 ./ 10.0 .^ (3:10)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"(Image: )","category":"page"},{"location":"benchmarks/vanderpol/#Solving-the-first-vs-second-order-ODE","page":"Stiff ODE: Van der Pol","title":"Solving the first- vs second-order ODE","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"function vanderpol2!(ddu, du, u, p, t)\n ddu[1] = p[1] * ((1 - u[1]^2) * du[1] - u[1])\nend\np = [1e5]\ntspan = (0.0, 6.3)\nu0 = [2.0]\ndu0 = [0.0]\nprob2 = SecondOrderODEProblem(vanderpol2!, du0, u0, tspan, p)\n\ntest_sol2 = solve(prob2, RadauIIA5(), abstol=1/10^14, reltol=1/10^14, dense=false)\nplot(test_sol2, title=\"Van der Pol Solution (2nd order)\", legend=false, ylims=(-2.5, 2.5))","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"(Image: )","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1(2) 1st order\" => Dict(:alg => EK1(order=2, smooth=DENSE))\n \"EK1(3) 1st order\" => Dict(:alg => EK1(order=3, smooth=DENSE))\n \"EK1(4) 1st order\" => Dict(:alg => EK1(order=4, smooth=DENSE))\n \"EK1(5) 1st order\" => Dict(:alg => EK1(order=5, smooth=DENSE))\n \"EK1(3) 2nd order\" => Dict(:prob_choice => 2, :alg => EK1(order=3, smooth=DENSE))\n \"EK1(4) 2nd order\" => Dict(:prob_choice => 2, :alg => EK1(order=4, smooth=DENSE))\n \"EK1(5) 2nd order\" => Dict(:prob_choice => 2, :alg => EK1(order=5, smooth=DENSE))\n \"EK1(5) 2nd order\" => Dict(:prob_choice => 2, :alg => EK1(order=6, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (6:13)\nreltols = 1.0 ./ 10.0 .^ (3:10)\n\nwp = WorkPrecisionSet(\n [prob, prob2], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = [test_sol, test_sol2],\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, color=[1 1 1 1 2 2 2 2], xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"(Image: )","category":"page"},{"location":"benchmarks/vanderpol/#Conclusion","page":"Stiff ODE: Van der Pol","title":"Conclusion","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"Use the EK1 to solve stiff problems, with orders leq 6 depending on the error tolerance.\nWhen the problem is actually a second-order ODE, as is the case for the Van der Pol system here, solve it as a second-order ODE.","category":"page"},{"location":"benchmarks/vanderpol/#Appendix","page":"Stiff ODE: Van der Pol","title":"Appendix","text":"","category":"section"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"Computer information:","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"InteractiveUtils.versioninfo()","category":"page"},{"location":"benchmarks/vanderpol/","page":"Stiff ODE: Van der Pol","title":"Stiff ODE: Van der Pol","text":"Julia Version 1.8.5\nCommit 17cfb8e65ea (2023-01-08 06:45 UTC)\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)\n Threads: 12 on 12 virtual cores\nEnvironment:\n JULIA_NUM_THREADS = auto\n JULIA_STACKTRACE_MINIMAL = true","category":"page"},{"location":"benchmarks/rober/#ROBER-benchmark","page":"DAE: ROBER","title":"ROBER benchmark","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"Adapted from SciMLBenchmarks.jl.","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"using LinearAlgebra, Statistics, InteractiveUtils\nusing DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Sundials, Plots\nusing ModelingToolkit\nusing ProbNumDiffEq\n\n# Plotting theme\ntheme(:dao;\n markerstrokewidth=0.5,\n legend=:outertopright,\n bottom_margin=5Plots.mm,\n size = (1000, 400),\n)","category":"page"},{"location":"benchmarks/rober/#ROBER-problem-definition","page":"DAE: ROBER","title":"ROBER problem definition","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"@variables t y₁(t)=1.0 y₂(t)=0.0 y₃(t)=0.0\n@parameters k₁=0.04 k₂=3e7 k₃=1e4\nD = Differential(t)\neqs = [\n D(y₁) ~ -k₁*y₁ + k₃*y₂*y₃\n D(y₂) ~ k₁*y₁ - k₃*y₂*y₃ - k₂*y₂^2\n 0 ~ y₁ + y₂ + y₃ - 1\n]\n@named sys = ODESystem(eqs)\nmmprob = ODEProblem(sys,[],(0.0,1e5))\ndaeprob = DAEProblem(sys,[D(y₁)=>-0.04, D(y₂)=>0.04, D(y₃)=>0.0],[],(0.0,1e5)) # can't handle this yet\nodaeprob = ODAEProblem(structural_simplify(sys),[],(0.0,1e5)) # can't handle this yet\n\nref_sol = solve(daeprob,IDA(),abstol=1/10^14,reltol=1/10^14,dense=false)\nplot(ref_sol, vars=[y₁,y₂,y₃], title=\"ROBER Solution\", legend=false, ylims=(0, 1))","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"(Image: )","category":"page"},{"location":"benchmarks/rober/#EK1-accross-orders","page":"DAE: ROBER","title":"EK1 accross orders","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1($order)\" => Dict(:alg => EK1(order=order, smooth=DENSE))\n for order in 2:6\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\n# works:\n# abstols = 1.0 ./ 10.0 .^ (4:10)\n# reltols = 1.0 ./ 10.0 .^ (1:7)\n# test:\nabstols = 1.0 ./ 10.0 .^ (4:9)\nreltols = 1.0 ./ 10.0 .^ (1:6)\n\nwp = WorkPrecisionSet(\n mmprob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = ref_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ (-16:1:5),\n xlims = (2e-15, 3e-7), ylims = (1e-2, 6e-1))","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"(Image: )","category":"page"},{"location":"benchmarks/rober/#Conclusion","page":"DAE: ROBER","title":"Conclusion","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"The EK1 can solve mass-matrix DAEs! But it only really works well for low errors.\nOrder 3 seems to work well here. But the order-to-error-tolerance heuristic should in principle still hold: lower tolerance level rightarrow higher order.","category":"page"},{"location":"benchmarks/rober/#Appendix","page":"DAE: ROBER","title":"Appendix","text":"","category":"section"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"Computer information:","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"InteractiveUtils.versioninfo()","category":"page"},{"location":"benchmarks/rober/","page":"DAE: ROBER","title":"DAE: ROBER","text":"Julia Version 1.8.5\nCommit 17cfb8e65ea (2023-01-08 06:45 UTC)\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)\n Threads: 12 on 12 virtual cores\nEnvironment:\n JULIA_NUM_THREADS = auto\n JULIA_STACKTRACE_MINIMAL = true","category":"page"},{"location":"filtering/#Gaussian-Filtering-and-Smoothing","page":"Filtering and Smoothing","title":"Gaussian Filtering and Smoothing","text":"","category":"section"},{"location":"filtering/#Predict","page":"Filtering and Smoothing","title":"Predict","text":"","category":"section"},{"location":"filtering/","page":"Filtering and Smoothing","title":"Filtering and Smoothing","text":"ProbNumDiffEq.predict\nProbNumDiffEq.predict!","category":"page"},{"location":"filtering/#ProbNumDiffEq.predict","page":"Filtering and Smoothing","title":"ProbNumDiffEq.predict","text":"predict(x::Gaussian, A::AbstractMatrix, Q::AbstractMatrix)\n\nPrediction step in Kalman filtering for linear dynamics models.\n\nGiven a Gaussian x = mathcalN(μ Σ), compute and return mathcalN(A μ A Σ A^T + Q).\n\nSee also the non-allocating square-root version predict!.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#ProbNumDiffEq.predict!","page":"Filtering and Smoothing","title":"ProbNumDiffEq.predict!","text":"predict!(x_out, x_curr, Ah, Qh, cachemat)\n\nIn-place and square-root implementation of predict which saves the result into x_out.\n\nOnly works with PSDMatrices.PSDMatrix types as Ah, Qh, and in the covariances of x_curr and x_out (both of type Gaussian). To prevent allocations, a cache matrix cachemat of size D times 2D (where D times D is the size of Ah and Qh) needs to be passed.\n\nSee also: predict.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#Update","page":"Filtering and Smoothing","title":"Update","text":"","category":"section"},{"location":"filtering/","page":"Filtering and Smoothing","title":"Filtering and Smoothing","text":"ProbNumDiffEq.update\nProbNumDiffEq.update!","category":"page"},{"location":"filtering/#ProbNumDiffEq.update","page":"Filtering and Smoothing","title":"ProbNumDiffEq.update","text":"update(x, measurement, H)\n\nUpdate step in Kalman filtering for linear dynamics models.\n\nGiven a Gaussian x = mathcalN(μ Σ) and a measurement z = mathcalN(hatz S), with S = H Σ H^T, compute\n\nbeginaligned\nK = Σ^P H^T S^-1 \nμ^F = μ + K (0 - hatz) \nΣ^F = Σ - K S K^T\nendaligned\n\nand return an updated state \\mathcal{N}(μ^F, Σ^F). Note that this assumes zero-measurements. When called with ProbNumDiffEq.SquarerootMatrix type arguments it performs the update in Joseph / square-root form.\n\nFor better performance, we recommend to use the non-allocating update!.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#ProbNumDiffEq.update!","page":"Filtering and Smoothing","title":"ProbNumDiffEq.update!","text":"update!(x_out, x_pred, measurement, H, K_cache, M_cache, S_cache)\n\nIn-place and square-root implementation of update which saves the result into x_out.\n\nImplemented in Joseph Form to retain the PSDMatrix covariances:\n\nbeginaligned\nK = Σ^P H^T S^-1 \nμ^F = μ + K (0 - hatz) \nsqrtΣ^F = (I - KH) sqrt(Σ)\nendaligned\n\nwhere sqrtM denotes the left square-root of a matrix M, i.e. M = sqrtM sqrtM^T.\n\nTo prevent allocations, write into caches K_cache and M_cache, both of size D × D, and S_cache of same type as measurement.Σ.\n\nSee also: update.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#Smooth","page":"Filtering and Smoothing","title":"Smooth","text":"","category":"section"},{"location":"filtering/","page":"Filtering and Smoothing","title":"Filtering and Smoothing","text":"ProbNumDiffEq.smooth\nProbNumDiffEq.smooth!","category":"page"},{"location":"filtering/#ProbNumDiffEq.smooth","page":"Filtering and Smoothing","title":"ProbNumDiffEq.smooth","text":"smooth(x_curr, x_next_smoothed, A, Q)\n\nUpdate step of the Kalman smoother, aka. Rauch-Tung-Striebel smoother, for linear dynamics models.\n\nGiven Gaussians x_n = mathcalN(μ_n Σ_n) and x_n+1 = mathcalN(μ_n+1^S Σ_n+1^S), compute\n\nbeginaligned\nμ_n+1^P = A μ_n^F \nP_n+1^P = A Σ_n^F A + Q \nG = Σ_n^S A^T (Σ_n+1^P)^-1 \nμ_n^S = μ_n^F + G (μ_n+1^S - μ_n+1^P) \nΣ_n^S = (I - G A) Σ_n^F (I - G A)^T + G Q G^T + G Σ_n+1^S G^T\nendaligned\n\nand return a smoothed state \\mathcal{N}(μ_n^S, Σ_n^S). When called with ProbNumDiffEq.SquarerootMatrix type arguments it performs the update in Joseph / square-root form.\n\nFor better performance, we recommend to use the non-allocating smooth!.\n\n\n\n\n\n","category":"function"},{"location":"filtering/#ProbNumDiffEq.smooth!","page":"Filtering and Smoothing","title":"ProbNumDiffEq.smooth!","text":"smooth!(x_curr, x_next, Ah, Qh, cache, diffusion=1)\n\nIn-place and square-root implementation of smooth which overwrites x_curr.\n\nImplemented in Joseph form to preserve square-root structure. It requires access to the solvers cache to prevent allocations.\n\nSee also: smooth.\n\n\n\n\n\n","category":"function"},{"location":"solvers/#Solvers","page":"Solvers","title":"Solvers","text":"","category":"section"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"ProbNumDiffEq.jl provides two solvers: the EK1 and the EK0. Both based on extended Kalman filtering and smoothing, but the latter relies on evaluating the Jacobian of the vector field. For the best results, use the EK1.","category":"page"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"All solvers are compatible with DAEs in mass-matrix ODE form. They also specialize on second-order ODEs: If the problem is of type SecondOrderODEProblem, it solves the second-order problem directly; this is more efficient than solving the transformed first-order problem and provides more meaningful posteriors [1].","category":"page"},{"location":"solvers/#API","page":"Solvers","title":"API","text":"","category":"section"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"EK1\nEK0","category":"page"},{"location":"solvers/#ProbNumDiffEq.EK1","page":"Solvers","title":"ProbNumDiffEq.EK1","text":"EK1(; order=3,\n smooth=true,\n prior=IWP(order),\n diffusionmodel=DynamicDiffusion(),\n initialization=TaylorModeInit(),\n kwargs...)\n\nGaussian ODE filter with first-order vector field linearization.\n\nArguments\n\norder::Integer: Order of the integrated Wiener process (IWP) prior.\nsmooth::Bool: Turn smoothing on/off; smoothing is required for dense output.\nprior::AbstractODEFilterPrior: Prior to be used by the ODE filter. By default, uses a 3-times integrated Wiener process prior IWP(3). See also: Priors.\ndiffusionmodel::ProbNumDiffEq.AbstractDiffusion: See Diffusion models and calibration.\ninitialization::ProbNumDiffEq.InitializationScheme: See Initialization.\n\nSome additional kwargs relating to implicit solvers are supported; check out DifferentialEquations.jl's Extra Options page. Right now, we support autodiff, chunk_size, and diff_type. In particular, autodiff=false can come in handy to use finite differences instead of ForwardDiff.jl to compute Jacobians.\n\nExamples\n\njulia> solve(prob, EK1())\n\nReferences\n\n\n\n\n\n","category":"type"},{"location":"solvers/#ProbNumDiffEq.EK0","page":"Solvers","title":"ProbNumDiffEq.EK0","text":"EK0(; order=3,\n smooth=true,\n prior=IWP(order),\n diffusionmodel=DynamicDiffusion(),\n initialization=TaylorModeInit())\n\nGaussian ODE filter with zeroth-order vector field linearization.\n\nArguments\n\norder::Integer: Order of the integrated Wiener process (IWP) prior.\nsmooth::Bool: Turn smoothing on/off; smoothing is required for dense output.\nprior::AbstractODEFilterPrior: Prior to be used by the ODE filter. By default, uses a 3-times integrated Wiener process prior IWP(3). See also: Priors.\ndiffusionmodel::ProbNumDiffEq.AbstractDiffusion: See Diffusion models and calibration.\ninitialization::ProbNumDiffEq.InitializationScheme: See Initialization.\n\nExamples\n\njulia> solve(prob, EK0())\n\nReferences\n\n\n\n\n\n","category":"type"},{"location":"solvers/#Probabilistic-Exponential-Integrators","page":"Solvers","title":"Probabilistic Exponential Integrators","text":"","category":"section"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"ExpEK\nRosenbrockExpEK","category":"page"},{"location":"solvers/#ProbNumDiffEq.ExpEK","page":"Solvers","title":"ProbNumDiffEq.ExpEK","text":"ExpEK(; L, order=3, kwargs...)\n\nProbabilistic exponential integrator\n\nProbabilistic exponential integrators are a class of integrators for semi-linear stiff ODEs that provide improved stability by essentially solving the linear part of the ODE exactly. In probabilistic numerics, this amounts to including the linear part into the prior model of the solver.\n\nExpEK is therefore just a short-hand for EK0 with IOUP prior:\n\nExpEK(; order=3, L, kwargs...) = EK0(; prior=IOUP(order, L), kwargs...)\n\nSee also RosenbrockExpEK, EK0, EK1.\n\nArguments\n\nSee EK0 for available keyword arguments.\n\nExamples\n\njulia> prob = ODEProblem((du, u, p, t) -> (@. du = - u + sin(u)), [1.0], (0.0, 10.0))\njulia> solve(prob, ExpEK(L=-1))\n\nReference\n\n[2] Bosch et al, \"Probabilistic Exponential Integrators\", arXiv (2021)\n\n\n\n\n\n","category":"function"},{"location":"solvers/#ProbNumDiffEq.RosenbrockExpEK","page":"Solvers","title":"ProbNumDiffEq.RosenbrockExpEK","text":"RosenbrockExpEK(; order=3, kwargs...)\n\nProbabilistic Rosenbrock-type exponential integrator\n\nA probabilistic exponential integrator similar to ExpEK, but with automatic linearization along the mean numerical solution. This brings the advantage that the linearity does not need to be specified manually, and the more accurate local linearization can sometimes also improve stability; but since the \"prior\" is adjusted at each step the probabilistic interpretation becomes more complicated.\n\nRosenbrockExpEK is just a short-hand for EK1 with appropriete IOUP prior:\n\nRosenbrockExpEK(; order=3, kwargs...) = EK1(; prior=IOUP(order, update_rate_parameter=true), kwargs...)\n\nSee also ExpEK, EK0, EK1.\n\nArguments\n\nSee EK1 for available keyword arguments.\n\nExamples\n\njulia> prob = ODEProblem((du, u, p, t) -> (@. du = - u + sin(u)), [1.0], (0.0, 10.0))\njulia> solve(prob, RosenbrockExpEK())\n\nReference\n\n[2] Bosch et al, \"Probabilistic Exponential Integrators\", arXiv (2021)\n\n\n\n\n\n","category":"function"},{"location":"solvers/#solversrefs","page":"Solvers","title":"References","text":"","category":"section"},{"location":"solvers/","page":"Solvers","title":"Solvers","text":"","category":"page"},{"location":"tutorials/exponential_integrators/#Probabilistic-Exponential-Integrators","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"","category":"section"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"Exponential integrators are a class of numerical methods for solving semi-linear ordinary differential equations (ODEs) of the form","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"beginaligned\ndoty(t) = L y(t) + f(y(t) t) quad y(0) = y_0\nendaligned","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"where L is a linear operator and f is a nonlinear function. In a nutshell, exponential integrators solve the linear part of the ODE exactly, and only approximate the nonlinear part. Probabilistic exponential integrators [2] are the probabilistic numerics approach to exponential integrators.","category":"page"},{"location":"tutorials/exponential_integrators/#Example","page":"Probabilistic Exponential Integrators","title":"Example","text":"","category":"section"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"Let's consider a simple semi-linear ODE","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"beginaligned\ndoty(t) = - y(t) + sin(y(t)) quad y(0) = 10\nendaligned","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"We can solve this ODE reasonably well with the standard EK1 and adaptive steps (the default):","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"using ProbNumDiffEq, Plots, LinearAlgebra\ntheme(:default; palette=[\"#4063D8\", \"#389826\", \"#9558B2\", \"#CB3C33\"])\n\nf(du, u, p, t) = (@. du = -u + sin(u))\nu0 = [1.0]\ntspan = (0.0, 20.0)\nprob = ODEProblem(f, u0, tspan)\n\nref = solve(prob, EK1(), abstol=1e-10, reltol=1e-10)\nplot(ref, color=:black, linestyle=:dash, label=\"Reference\")","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"But for fixed (large) step sizes this ODE is more challenging: The explicit EK0 method oscillates and diverges due to the stiffness of the ODE, and the semi-implicit EK1 method is stable but the solution is not very accurate.","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"STEPSIZE = 4\nDM = FixedDiffusion() # recommended for fixed steps\n\n# we don't smooth the EK0 here to show the oscillations more clearly\nsol0 = solve(prob, EK0(smooth=false, diffusionmodel=DM), adaptive=false, dt=STEPSIZE, dense=false)\nsol1 = solve(prob, EK1(diffusionmodel=DM), adaptive=false, dt=STEPSIZE)\n\nplot(ylims=(0.3, 1.05))\nplot!(ref, color=:black, linestyle=:dash, label=\"Reference\")\nplot!(sol0, denseplot=false, marker=:o, markersize=2, label=\"EK0\", color=1)\nplot!(sol1, denseplot=false, marker=:o, markersize=2, label=\"EK1\", color=2)","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"Probabilistic exponential integrators leverage the semi-linearity of the ODE to compute more accurate solutions for the same fixed step size. You can use either the ExpEK method and provide the linear part (with the keyword argument L), or the RosenbrockExpEK to automatically linearize along the mean of the numerical solution:","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"sol_exp = solve(prob, ExpEK(L=-1, diffusionmodel=DM), adaptive=false, dt=STEPSIZE)\nsol_ros = solve(prob, RosenbrockExpEK(diffusionmodel=DM), adaptive=false, dt=STEPSIZE)\n\nplot(ylims=(0.3, 1.05))\nplot!(ref, color=:black, linestyle=:dash, label=\"Reference\")\nplot!(sol_exp, denseplot=false, marker=:o, markersize=2, label=\"ExpEK\", color=3)\nplot!(sol_ros, denseplot=false, marker=:o, markersize=2, label=\"RosenbrockExpEK\", color=4)","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"The solutions are indeed much more accurate than those of the standard EK1, for the same fixed step size!","category":"page"},{"location":"tutorials/exponential_integrators/#Background:-Integrated-Ornstein-Uhlenbeck-priors","page":"Probabilistic Exponential Integrators","title":"Background: Integrated Ornstein-Uhlenbeck priors","text":"","category":"section"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"Probabilistic exponential integrators \"solve the linear part exactly\" by including it into the prior model of the solver. Namely, the solver chooses a (q-times) integrated Ornstein-Uhlenbeck prior with rate parameter equal to the linearity. The ExpEK solver is just a short-hand for an EK0 with appropriate prior:","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"ExpEK(order=3, L=-1) == EK0(prior=IOUP(3, -1))","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"Similarly, the RosenbrockExpEK solver is also just a short-hand:","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"RosenbrockExpEK(order=3) == EK1(prior=IOUP(3, update_rate_parameter=true))","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"This means that you can also construct other probabilistic exponential integrators by hand! In this example the EK1 with IOUP prior with rate parameter -1 performs extremely well:","category":"page"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"sol_expek1 = solve(prob, EK1(prior=IOUP(3, -1), diffusionmodel=DM), adaptive=false, dt=STEPSIZE)\n\nplot(ylims=(0.3, 1.05))\nplot!(ref, color=:black, linestyle=:dash, label=\"Reference\")\nplot!(sol_expek1, denseplot=false, marker=:o, markersize=2, label=\"EK1 + IOUP\")","category":"page"},{"location":"tutorials/exponential_integrators/#References","page":"Probabilistic Exponential Integrators","title":"References","text":"","category":"section"},{"location":"tutorials/exponential_integrators/","page":"Probabilistic Exponential Integrators","title":"Probabilistic Exponential Integrators","text":"","category":"page"},{"location":"benchmarks/lotkavolterra/#Lotka-Volterra-benchmark","page":"Non-stiff ODE: Lotka-Volterra","title":"Lotka-Volterra benchmark","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"Adapted from SciMLBenchmarks.jl.","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"using LinearAlgebra, Statistics, InteractiveUtils\nusing DiffEqDevTools, ParameterizedFunctions, SciMLBase, OrdinaryDiffEq, Plots\nusing ProbNumDiffEq\n\n# Plotting theme\ntheme(:dao;\n markerstrokewidth=0.5,\n legend=:outertopright,\n bottom_margin=5Plots.mm,\n size = (1000, 400),\n)","category":"page"},{"location":"benchmarks/lotkavolterra/#Lotka-Volterra-problem-definition","page":"Non-stiff ODE: Lotka-Volterra","title":"Lotka-Volterra problem definition","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"f = @ode_def LotkaVolterra begin\n dx = a*x - b*x*y\n dy = -c*y + d*x*y\nend a b c d\np = [1.5, 1, 3, 1]\ntspan = (0.0, 10.0)\nu0 = [1.0, 1.0]\nprob = ODEProblem{true, SciMLBase.FullSpecialize}(f, u0, tspan, p)\n\ntest_sol = solve(prob, Vern7(), abstol=1/10^14, reltol=1/10^14, dense=false)\nplot(test_sol, title=\"Lotka-Volterra Solution\", legend=false)","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#EK0-accross-orders","page":"Non-stiff ODE: Lotka-Volterra","title":"EK0 accross orders","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK0(order=$order)\" => Dict(:alg => EK0(order=order, smooth=DENSE))\n for order in 1:7\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:13)\nreltols = 1.0 ./ 10.0 .^ (1:10)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#EK1-accross-orders","page":"Non-stiff ODE: Lotka-Volterra","title":"EK1 accross orders","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1(order=$order)\" => Dict(:alg => EK1(order=order, smooth=DENSE))\n for order in 1:7\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:13)\nreltols = 1.0 ./ 10.0 .^ (1:10)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, palette=Plots.palette([:blue, :red], length(_setups)), xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#EK0-vs.-EK1","page":"Non-stiff ODE: Lotka-Volterra","title":"EK0 vs. EK1","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK0(order=2)\" => Dict(:alg => EK0(order=2, smooth=DENSE))\n \"EK0(order=3)\" => Dict(:alg => EK0(order=3, smooth=DENSE))\n \"EK0(order=4)\" => Dict(:alg => EK0(order=4, smooth=DENSE))\n \"EK0(order=5)\" => Dict(:alg => EK0(order=5, smooth=DENSE))\n \"EK1(order=2)\" => Dict(:alg => EK1(order=2, smooth=DENSE))\n \"EK1(order=3)\" => Dict(:alg => EK1(order=3, smooth=DENSE))\n \"EK1(order=4)\" => Dict(:alg => EK1(order=4, smooth=DENSE))\n \"EK1(order=5)\" => Dict(:alg => EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:14)\nreltols = 1.0 ./ 10.0 .^ (1:11)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, color=[1 1 1 1 2 2 2 2], xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#DynamicDiffusion-vs-FixedDiffusion","page":"Non-stiff ODE: Lotka-Volterra","title":"DynamicDiffusion vs FixedDiffusion","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1(2) dynamic\" => Dict(:alg => EK1(order=2, smooth=DENSE, diffusionmodel=DynamicDiffusion()))\n \"EK1(3) dynamic\" => Dict(:alg => EK1(order=3, smooth=DENSE, diffusionmodel=DynamicDiffusion()))\n \"EK1(5) dynamic\" => Dict(:alg => EK1(order=5, smooth=DENSE, diffusionmodel=DynamicDiffusion()))\n \"EK1(2) fixed\" => Dict(:alg => EK1(order=2, smooth=DENSE, diffusionmodel=FixedDiffusion()))\n \"EK1(3) fixed\" => Dict(:alg => EK1(order=3, smooth=DENSE, diffusionmodel=FixedDiffusion()))\n \"EK1(5) fixed\" => Dict(:alg => EK1(order=5, smooth=DENSE, diffusionmodel=FixedDiffusion()))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:15)\nreltols = 1.0 ./ 10.0 .^ (1:12)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, color=[2 2 2 3 3 3], xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#TaylorModeInit-vs-ClassicSolverInit","page":"Non-stiff ODE: Lotka-Volterra","title":"TaylorModeInit vs ClassicSolverInit","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"DENSE = false;\nSAVE_EVERYSTEP = false;\n\n_setups = [\n \"EK1(2) TaylorInit\" => Dict(:alg => EK1(order=2, smooth=DENSE, initialization=TaylorModeInit()))\n \"EK1(3) TaylorInit\" => Dict(:alg => EK1(order=3, smooth=DENSE, initialization=TaylorModeInit()))\n \"EK1(5) TaylorInit\" => Dict(:alg => EK1(order=5, smooth=DENSE, initialization=TaylorModeInit()))\n \"EK1(2) Tsit5Init\" => Dict(:alg => EK1(order=2, smooth=DENSE, initialization=ClassicSolverInit()))\n \"EK1(3) Tsit5Init\" => Dict(:alg => EK1(order=3, smooth=DENSE, initialization=ClassicSolverInit()))\n \"EK1(5) Tsit5Init\" => Dict(:alg => EK1(order=5, smooth=DENSE, initialization=ClassicSolverInit()))\n \"EK1(2) Tsit5Init+ddu\" => Dict(:alg => EK1(order=2, smooth=DENSE, initialization=ClassicSolverInit(init_on_ddu=true)))\n \"EK1(3) Tsit5Init+ddu\" => Dict(:alg => EK1(order=3, smooth=DENSE, initialization=ClassicSolverInit(init_on_ddu=true)))\n \"EK1(5) Tsit5Init+ddu\" => Dict(:alg => EK1(order=5, smooth=DENSE, initialization=ClassicSolverInit(init_on_ddu=true)))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\n\nabstols = 1.0 ./ 10.0 .^ (4:15)\nreltols = 1.0 ./ 10.0 .^ (1:12)\n\nwp = WorkPrecisionSet(\n prob, abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = test_sol,\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n)\n\nplot(wp, color=[2 2 2 4 4 4 5 5 5], xticks = 10.0 .^ (-16:1:5))","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"(Image: )","category":"page"},{"location":"benchmarks/lotkavolterra/#Conclusion","page":"Non-stiff ODE: Lotka-Volterra","title":"Conclusion","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"Use the EK1! It seems to be strictly better than the EK0 here. Though note that by using ParameterizedFunctions.jl, the Jacobian of the vector field is available analytically.\nOrders behave as in classic solvers: Use low order for low accuracy, medium order for medium accuracy, high order for high accuracy.\nMost likely, the default choice of diffusionmodel=DynamicDiffusion and initialization=TaylorModeInit are fine.","category":"page"},{"location":"benchmarks/lotkavolterra/#Appendix","page":"Non-stiff ODE: Lotka-Volterra","title":"Appendix","text":"","category":"section"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"Computer information:","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"InteractiveUtils.versioninfo()","category":"page"},{"location":"benchmarks/lotkavolterra/","page":"Non-stiff ODE: Lotka-Volterra","title":"Non-stiff ODE: Lotka-Volterra","text":"Julia Version 1.8.5\nCommit 17cfb8e65ea (2023-01-08 06:45 UTC)\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)\n Threads: 12 on 12 virtual cores\nEnvironment:\n JULIA_NUM_THREADS = auto\n JULIA_STACKTRACE_MINIMAL = true","category":"page"},{"location":"initialization/#Initialization","page":"Initialization","title":"Initialization","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"The notion of \"initialization\" relates to the prior part of the model.","category":"page"},{"location":"initialization/#Background:-The-prior","page":"Initialization","title":"Background: The prior","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"We model the ODE solution y(t) with a Gauss–Markov prior. More precisely, let","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"beginaligned\nY(t) = left Y^(0)(t) Y^(1)(t) dots Y^(q)(t) right\nendaligned","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"be the solution to the SDE","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"beginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = textcolor389826A Y(t) textdt + textcolor4063D8Gamma textdW(t) \nY(0) sim textcolor9558B2 mathcalN left( mu_0 Sigma_0 right) \nendaligned","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"Then Y^(i)(t) models the i-th derivative of y(t). In this section, we consider the initial distribution textcolorpurple mathcalN left( mu_0 Sigma_0 right) . If you're more interested in the drift matrix textcolor389826A check out the Priors section, and for more info on the diffusion textcolor4063D8Gamma check out the Diffusion models and calibration section.","category":"page"},{"location":"initialization/#Setting-the-initial-distribution","page":"Initialization","title":"Setting the initial distribution","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"Let's assume an initial value problem of the form","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"beginaligned\ndoty(t) = f(y(t) t) qquad 0 T \ny(0) = y_0\nendaligned","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"It is clear that this contains quite some information for Y(0): The initial value y_0 and the vector field f imply","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"beginaligned\nY^(0)(0) = y_0 \nY^(1)(0) = f(y_0 0)\nendaligned","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"It turns out that we can also compute higher-order derivatives of y with the chain rule, and then use these to better initialize Y^(i)(0). This, done efficiently with Taylor-mode autodiff by using TaylorIntegration.jl, is what TaylorModeInit does. See also [1].","category":"page"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"In the vast majority of cases, just stick to the exact Taylor-mode initialization TaylorModeInit!","category":"page"},{"location":"initialization/#API","page":"Initialization","title":"API","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"TaylorModeInit\nClassicSolverInit","category":"page"},{"location":"initialization/#ProbNumDiffEq.TaylorModeInit","page":"Initialization","title":"ProbNumDiffEq.TaylorModeInit","text":"TaylorModeInit()\n\nExact initialization via Taylor-mode automatic differentiation.\n\nThis is the recommended initialization method!\n\nIt uses TaylorIntegration.jl to efficiently compute the higher-order derivatives of the solution at the initial value, via Taylor-mode automatic differentiation.\n\nIn some special cases it can happen that TaylorIntegration.jl is incompatible with the given problem (typically because the problem definition does not allow for elements of type Taylor). If this happens, try ClassicSolverInit.\n\nReferences\n\n[4] Krämer et al, \"Stable Implementation of Probabilistic ODE Solvers\" (2020)\n\n\n\n\n\n","category":"type"},{"location":"initialization/#ProbNumDiffEq.ClassicSolverInit","page":"Initialization","title":"ProbNumDiffEq.ClassicSolverInit","text":"ClassicSolverInit(; alg=OrdinaryDiffEq.Tsit5(), init_on_ddu=false)\n\nInitialization via regression on a few steps of a classic ODE solver.\n\nIn a nutshell, instead of specifying mu_0 exactly and setting Sigma_0=0 (which is what TaylorModeInit does), use a classic ODE solver to compute a few steps of the solution, and then regress on the computed values (by running a smoother) to compute mu_0 and Sigma_0 as the mean and covariance of the smoothing posterior at time 0. See also [2].\n\nThe initial value and derivative are set directly from the given initial value problem; optionally the second derivative can also be set via automatic differentiation by setting init_on_ddu=true.\n\nArguments\n\nalg: The solver to be used. Can be any solver from OrdinaryDiffEq.jl.\ninit_on_ddu: If true, the second derivative is also initialized exactly via automatic differentiation with ForwardDiff.jl.\n\nReferences\n\n[4] Krämer et al, \"Stable Implementation of Probabilistic ODE Solvers\" (2020)\n[5] Schober et al, \"A probabilistic model for the numerical solution of initial value problems\", Statistics and Computing (2019)\n\n\n\n\n\n","category":"type"},{"location":"initialization/#initrefs","page":"Initialization","title":"References","text":"","category":"section"},{"location":"initialization/","page":"Initialization","title":"Initialization","text":"","category":"page"},{"location":"tutorials/dae/#Solving-DAEs-with-Probabilistic-Numerics","page":"Differential Algebraic Equations","title":"Solving DAEs with Probabilistic Numerics","text":"","category":"section"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"ProbNumDiffEq.jl provides probabilistic numerical solvers for differential algebraic equations (DAEs). Currently, we recommend using the semi-implicit EK1 algorithm.","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"note: Note\nFor a more general tutorial on DAEs check out the DifferentialEquations.jl DAE tutorial.","category":"page"},{"location":"tutorials/dae/#Solving-mass-matrix-DAEs-with-the-EK1","page":"Differential Algebraic Equations","title":"Solving mass-matrix DAEs with the EK1","text":"","category":"section"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"First, define the DAE (here the ROBER problem) as an ODE problem with singular mass matrix:","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"using ProbNumDiffEq, Plots, LinearAlgebra, OrdinaryDiffEq, ModelingToolkit\n\nfunction rober(du, u, p, t)\n y₁, y₂, y₃ = u\n k₁, k₂, k₃ = p\n du[1] = -k₁ * y₁ + k₃ * y₂ * y₃\n du[2] = k₁ * y₁ - k₃ * y₂ * y₃ - k₂ * y₂^2\n du[3] = y₁ + y₂ + y₃ - 1\n nothing\nend\nM = [1 0 0\n 0 1 0\n 0 0 0]\nf = ODEFunction(rober, mass_matrix=M)\nprob_mm = ODEProblem(f, [1.0, 0.0, 0.0], (0.0, 1e5), (0.04, 3e7, 1e4))","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"We can solve this problem directly with the EK1:","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"sol = solve(prob_mm, EK1(), reltol=1e-8, abstol=1e-8)\nplot(\n sol,\n xscale=:log10,\n tspan=(1e-6, 1e5),\n layout=(3, 1),\n legend=false,\n ylabel=[\"u₁(t)\" \"u₂(t)\" \"u₃(t)\"],\n xlabel=[\"\" \"\" \"t\"],\n denseplot=false,\n)","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Looks good!","category":"page"},{"location":"tutorials/dae/#Solving-an-Index-3-DAE-directly","page":"Differential Algebraic Equations","title":"Solving an Index-3 DAE directly","text":"","category":"section"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"The following is based on the \"Automatic Index Reduction of DAEs\" tutorial by ModelingToolkit.jl, which demonstrates how the classic Rodas4 solver fails to solve a DAE due to the fact that it is of index 3; which is why ModelingToolkit's automatic index reduction is so useful.","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"It turns out that our probabilistic numerical solvers can directly solve the index-3 DAE!","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"First, define the pendulum problem as in the tutorial:","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"function pendulum!(du, u, p, t)\n x, dx, y, dy, T = u\n g, L = p\n du[1] = dx\n du[2] = T * x\n du[3] = dy\n du[4] = T * y - g\n du[5] = x^2 + y^2 - L^2\nend\npendulum_fun! = ODEFunction(pendulum!, mass_matrix=Diagonal([1, 1, 1, 1, 0]))\nu0 = [1.0, 0, 0, 0, 0];\np = [9.8, 1];\ntspan = (0, 5.0);\npendulum_prob = ODEProblem(pendulum_fun!, u0, tspan, p)","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"We can try to solve it directly with one of the classic mass-matrix DAE solvers from OrdinaryDiffEq.jl:","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"solve(pendulum_prob, Rodas4())","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"It does not work! This is because of the index of the DAE; see e.g. this explenation from the tutorial.","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Does this also hold for the EK1 solver? Let's find out:","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"sol = solve(pendulum_prob, EK1())","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Nope! The EK1 is able to solve the index-3 DAE directly. Pretty cool!","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"plot(sol)","category":"page"},{"location":"tutorials/dae/#Is-index-reduction-still-worth-it?","page":"Differential Algebraic Equations","title":"Is index-reduction still worth it?","text":"","category":"section"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"The point of the \"Automatic Index Reduction of DAEs\" tutorial is to demonstrate ModelingToolkit's utility for automatic index reduction, which enables the classic implicit Runge-Kutta solvers such as Rodas5 to solve this DAE. Let's see if that still helps in this context here.","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"First, modelingtoolkitize the problem:","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"traced_sys = modelingtoolkitize(pendulum_prob)","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"(how cool is this latex output ?!?)","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Next, lower the DAE index and simplify it with MTK's dae_index_lowering and structural_simplify:","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"simplified_sys = structural_simplify(dae_index_lowering(traced_sys))","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"Let's build two different ODE problems, and check how well we can solve each:","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"prob_index3 = ODEProblem(traced_sys, Pair[], tspan)\nprob_index1 = ODEProblem(simplified_sys, Pair[], tspan)\n\nsol3 = solve(prob_index3, EK1())\nsol1 = solve(prob_index1, EK1())\n\ntruesol = solve(prob_index1, Rodas4(), abstol=1e-10, reltol=1e-10)\n\nsol1_final_error = norm(sol1.u[end] - truesol.u[end])\nsol1_f_evals = sol1.stats.nf\nsol3_final_error = norm(sol3.u[end] - truesol.u[end])\nsol3_f_evals = sol3.stats.nf\n@info \"Results\" sol1_final_error sol1_f_evals sol3_final_error sol3_f_evals","category":"page"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"The error for the index-1 DAE solve is much lower. So it seems that, even if the index-3 DAE could also be solved directly, index lowering might still be beneficial when solving DAEs with the EK1!","category":"page"},{"location":"tutorials/dae/#References","page":"Differential Algebraic Equations","title":"References","text":"","category":"section"},{"location":"tutorials/dae/","page":"Differential Algebraic Equations","title":"Differential Algebraic Equations","text":"","category":"page"},{"location":"diffusions/#Diffusion-models-and-calibration","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"The notion of \"diffusion\" and \"calibration\" relates to the prior part of the model.","category":"page"},{"location":"diffusions/#Background:-The-prior","page":"Diffusion models and calibration","title":"Background: The prior","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"We model the ODE solution y(t) with a Gauss–Markov prior. More precisely, let","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"beginaligned\nY(t) = left Y^(0)(t) Y^(1)(t) dots Y^(q)(t) right\nendaligned","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"be the solution to the SDE","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"beginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = textcolor389826A Y(t) textdt + textcolor4063D8Gamma textdW(t) \nY(0) sim textcolorpurple mathcalN left( mu_0 Sigma_0 right) \nendaligned","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"Then Y^(i)(t) models the i-th derivative of y(t). In this section, we consider choices relating to the \"diffusion\" textcolor4063D8Gamma. If you're more interested in the drift matrix textcolor389826A check out the Priors section, and for info on the initial distribution textcolorpurple mathcalN left( mu_0 Sigma_0 right) check out the Initialization section.","category":"page"},{"location":"diffusions/#Diffusion-and-calibration","page":"Diffusion models and calibration","title":"Diffusion and calibration","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"We call textcolor4063D8Gamma the \"diffusion\" parameter. Since it is typically not known we need to estimate it; this is called \"calibration\".","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"There are a few different choices for how to model and estimate textcolor4063D8Gamma:","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"FixedDiffusion assumes an isotropic, time-fixed textcolor4063D8Gamma = sigma cdot I_d,\nDynamicDiffusion assumes an isotropic, time-varying textcolor4063D8Gamma(t) = sigma(t) cdot I_d (recommended),\nFixedMVDiffusion assumes a diagonal, time-fixed textcolor4063D8Gamma = operatornamediag(sigma_1 dots sigma_d),\nDynamicMVDiffusion assumes a diagonal, time-varying textcolor4063D8Gamma(t) = operatornamediag(sigma_1(t) dots sigma_d(t)).","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"Or more compactly:","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":" Isotropic: Diagonal (only for the EK0)\nTime-varying DynamicDiffusion DynamicMVDiffusion\nTime-fixed FixedDiffusion FixedMVDiffusion","category":"page"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"For more details on diffusions and calibration, check out this paper [6].","category":"page"},{"location":"diffusions/#API","page":"Diffusion models and calibration","title":"API","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"DynamicDiffusion\nFixedDiffusion\nDynamicMVDiffusion\nFixedMVDiffusion","category":"page"},{"location":"diffusions/#ProbNumDiffEq.DynamicDiffusion","page":"Diffusion models and calibration","title":"ProbNumDiffEq.DynamicDiffusion","text":"DynamicDiffusion()\n\nTime-varying, isotropic diffusion, which is quasi-maximum-likelihood-estimated at each step.\n\nThis is the recommended diffusion when using adaptive step-size selection, and in particular also when solving stiff systems.\n\n\n\n\n\n","category":"type"},{"location":"diffusions/#ProbNumDiffEq.FixedDiffusion","page":"Diffusion models and calibration","title":"ProbNumDiffEq.FixedDiffusion","text":"FixedDiffusion(; initial_diffusion=1.0, calibrate=true)\n\nTime-fixed, isotropic diffusion, which is (optionally) quasi-maximum-likelihood-estimated.\n\nThis is the recommended diffusion when using fixed steps.\n\nBy default with calibrate=true, all covariances are re-scaled at the end of the solve with the MLE diffusion. Set calibrate=false to skip this step, e.g. when setting the initial_diffusion and then estimating the diffusion outside of the solver (e.g. with Fenrir.jl).\n\n\n\n\n\n","category":"type"},{"location":"diffusions/#ProbNumDiffEq.DynamicMVDiffusion","page":"Diffusion models and calibration","title":"ProbNumDiffEq.DynamicMVDiffusion","text":"DynamicMVDiffusion()\n\nTime-varying, diagonal diffusion, which is quasi-maximum-likelihood-estimated at each step.\n\nOnly works with the EK0!\n\nA multi-variate version of DynamicDiffusion, where instead of an isotropic matrix, a diagonal matrix is estimated. This can be helpful to get more expressive posterior covariances when using the EK0, since the individual dimensions can be adjusted separately.\n\nReferences\n\n[6] Bosch et al, \"Calibrated Adaptive Probabilistic ODE Solvers\", AISTATS (2021)\n\n\n\n\n\n","category":"type"},{"location":"diffusions/#ProbNumDiffEq.FixedMVDiffusion","page":"Diffusion models and calibration","title":"ProbNumDiffEq.FixedMVDiffusion","text":"FixedMVDiffusion(; initial_diffusion=1.0, calibrate=true)\n\nTime-fixed, diagonal diffusion, which is quasi-maximum-likelihood-estimated at each step.\n\nOnly works with the EK0!\n\nA multi-variate version of FixedDiffusion, where instead of an isotropic matrix, a diagonal matrix is estimated. This can be helpful to get more expressive posterior covariances when using the EK0, since the individual dimensions can be adjusted separately.\n\nReferences\n\n[6] Bosch et al, \"Calibrated Adaptive Probabilistic ODE Solvers\", AISTATS (2021)\n\n\n\n\n\n","category":"type"},{"location":"diffusions/#diffusionrefs","page":"Diffusion models and calibration","title":"References","text":"","category":"section"},{"location":"diffusions/","page":"Diffusion models and calibration","title":"Diffusion models and calibration","text":"[6] \n\nN. Bosch, P. Hennig and F. Tronarp.
Calibrated Adaptive Probabilistic ODE Solvers . In: Proceedings of The 24th International Conference on Artificial\n Intelligence and Statistics, Proceedings of Machine Learning Research, 3466–3474, PMLR (2021).
\n \n ","category":"page"},{"location":"priors/#Priors","page":"Priors","title":"Priors","text":"","category":"section"},{"location":"priors/","page":"Priors","title":"Priors","text":"We model the ODE solution y(t) with a Gauss–Markov prior. More precisely, let","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"beginaligned\nY(t) = left Y^(0)(t) Y^(1)(t) dots Y^(q)(t) right\nendaligned","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"be the solution to the SDE","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"beginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = textcolor389826A Y(t) textdt + textcolor4063D8Gamma textdW(t) \nY(0) sim textcolorpurple mathcalN left( mu_0 Sigma_0 right) \nendaligned","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"Then Y^(i)(t) models the i-th derivative of y(t). In this section, we consider choices relating to the drift matrix textcolor389826A. If you're more interested in the diffusion textcolor4063D8Gamma check out the Diffusion models and calibration section, and for info on the initial distribution textcolorpurple mathcalN left( mu_0 Sigma_0 right) check out the Initialization section.","category":"page"},{"location":"priors/","page":"Priors","title":"Priors","text":"If you're unsure which prior to use, just stick to the integrated Wiener process prior IWP! This is also the default choice for all solvers. The other priors are rather experimental / niche at the time of writing.","category":"page"},{"location":"priors/#API","page":"Priors","title":"API","text":"","category":"section"},{"location":"priors/","page":"Priors","title":"Priors","text":"IWP\nIOUP\nMatern","category":"page"},{"location":"priors/#ProbNumDiffEq.IWP","page":"Priors","title":"ProbNumDiffEq.IWP","text":"IWP([wiener_process_dimension::Integer,] num_derivatives::Integer)\n\nIntegrated Wiener process.\n\nThis is the recommended prior! It is the most well-tested prior, both in this package and in the probabilistic numerics literature in general (see the references). It is also the prior that has the most efficient implementation.\n\nThe IWP can be created without specifying the dimension of the Wiener process, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage.\n\nIn math\n\nbeginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = Gamma textdW(t)\nendaligned\n\nExamples\n\njulia> solve(prob, EK1(prior=IWP(2)))\n\n\n\n\n\n","category":"type"},{"location":"priors/#ProbNumDiffEq.IOUP","page":"Priors","title":"ProbNumDiffEq.IOUP","text":"IOUP([wiener_process_dimension::Integer,]\n num_derivatives::Integer,\n rate_parameter::Union{Number,AbstractVector,AbstractMatrix})\n\nIntegrated Ornstein–Uhlenbeck process.\n\nAs with the IWP, the IOUP can be created without specifying its dimension, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage. The rate parameter however always needs to be specified.\n\nIn math\n\nbeginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = L Y^(q)(t) textdt + Gamma textdW(t)\nendaligned\n\nwhere L is the rate_parameter.\n\nExamples\n\njulia> solve(prob, EK1(prior=IOUP(2, -1)))\n\n\n\n\n\n","category":"type"},{"location":"priors/#ProbNumDiffEq.Matern","page":"Priors","title":"ProbNumDiffEq.Matern","text":"Matern([wiener_process_dimension::Integer,]\n num_derivatives::Integer,\n lengthscale::Number)\n\nMatern process.\n\nAs with the IWP, the Matern can be created without specifying its dimension, in which case it will be inferred from the dimension of the ODE during the solve. This is typically the preferred usage. The lengthscale parameter however always needs to be specified.\n\nIn math\n\nbeginaligned\ntextd Y^(i)(t) = Y^(i+1)(t) textdt qquad i = 0 dots q-1 \ntextd Y^(q)(t) = - sum_j=0^q left(\n beginpmatrix q+1 j endpmatrix\n left( fracsqrt2q - 1l right)^q-j\n Y^(j)(t) right) textdt + Gamma textdW(t)\nendaligned\n\nwhere l is the lengthscale.\n\nExamples\n\njulia> solve(prob, EK1(prior=Matern(2, 1)))\n\n\n\n\n\n","category":"type"},{"location":"tutorials/dynamical_odes/#Second-Order-ODEs-and-Energy-Preservation","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"In this tutorial we consider an energy-preserving, physical dynamical system, given by a second-order ODE.","category":"page"},{"location":"tutorials/dynamical_odes/#TL;DR:","page":"Second Order ODEs and Energy Preservation","title":"TL;DR:","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"To efficiently solve second-order ODEs, just define the problem as a SecondOrderODEProblem.\nTo preserve constant quantities, use the ManifoldUpdate callback; same syntax as DiffEqCallback.jl's ManifoldProjection.","category":"page"},{"location":"tutorials/dynamical_odes/#Simulating-the-Hénon-Heiles-system","page":"Second Order ODEs and Energy Preservation","title":"Simulating the Hénon-Heiles system","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"The Hénon-Heiles model describes the motion of a star around a galactic center, restricted to a plane. It is given by a second-order ODE","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"beginaligned\nddotx = - x - 2 x y \nddoty = y^2 - y - x^2\nendaligned","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Our goal is to numerically simulate this system on a time span t in 0 T, starting with initial values x(0)=0, y(0) = 01, dotx(0) = 05, doty(0) = 0.","category":"page"},{"location":"tutorials/dynamical_odes/#Transforming-the-problem-into-a-first-order-ODE","page":"Second Order ODEs and Energy Preservation","title":"Transforming the problem into a first-order ODE","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"A very common approach is to first transform the problem into a first-order ODE by introducing a new variable","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"u = dxdyxy","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"to obtain","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"beginaligned\ndotu_1(t) = - u_3 - 2 u_3 u_4 \ndotu_2(t) = u_4^2 - u_4 - u_4^2 \ndotu_3(t) = u_1 \ndotu_4(t) = u_2\nendaligned","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"This first-order ODE can then be solved using any conventional ODE solver - including our EK1:","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"using ProbNumDiffEq, Plots\n\nfunction Hénon_Heiles(du, u, p, t)\n du[1] = -u[3] - 2 * u[3] * u[4]\n du[2] = u[4]^2 - u[4] - u[3]^2\n du[3] = u[1]\n du[4] = u[2]\nend\nu0, du0 = [0.0, 0.1], [0.5, 0.0]\ntspan = (0.0, 100.0)\nprob = ODEProblem(Hénon_Heiles, [du0; u0], tspan)\nsol = solve(prob, EK1());\nplot(sol, vars=(3, 4)) # where `vars=(3,4)` is used to plot x agains y","category":"page"},{"location":"tutorials/dynamical_odes/#Solving-the-second-order-ODE-directly","page":"Second Order ODEs and Energy Preservation","title":"Solving the second-order ODE directly","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Instead of first transforming the problem, we can also solve it directly as a second-order ODE, by defining it as a SecondOrderODEProblem.","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"note: Note\nThe SecondOrderODEProblem type is not defined in ProbNumDiffEq.jl but is provided by SciMLBase.jl. For more information, check out the DifferentialEquations.jl documentation on Dynamical, Hamiltonian and 2nd Order ODE Problems.","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"function Hénon_Heiles2(ddu, du, u, p, t)\n ddu[1] = -u[1] - 2 * u[1] * u[2]\n ddu[2] = u[2]^2 - u[2] - u[1]^2\nend\nprob2 = SecondOrderODEProblem(Hénon_Heiles2, du0, u0, tspan)\nsol2 = solve(prob2, EK1());\nplot(sol2, vars=(3, 4))","category":"page"},{"location":"tutorials/dynamical_odes/#Benchmark:-Solving-second-order-ODEs-is-*faster*","page":"Second Order ODEs and Energy Preservation","title":"Benchmark: Solving second order ODEs is faster","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Solving second-order ODEs is not just a matter of convenience - in fact, SciMLBase's SecondOrderODEProblem is neatly designed in such a way that all the classic solvers from OrdinaryDiffEq.jl can handle it by solving the corresponding first-order ODE. But, transforming the ODE to first order increases the dimensionality of the problem, and comes therefore at increased computational cost; this also motivates classic specialized solvers for second-order ODEs.","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"The probabilistic numerical solvers from ProbNumDiffEq.jl have the same internal state representation for first and second order ODEs; all that changes is the measurement model [1]. As a result, we can use the EK1 both for first and second order ODEs, but it automatically specializes on the latter to provide a 2x performance boost:","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"julia> @btime solve(prob, EK1(order=3), adaptive=false, dt=1e-2);\n 766.312 ms (400362 allocations: 173.38 MiB)\n\njulia> @btime solve(prob2, EK1(order=4), adaptive=false, dt=1e-2);\n 388.301 ms (510676 allocations: 102.78 MiB)","category":"page"},{"location":"tutorials/dynamical_odes/#Energy-preservation","page":"Second Order ODEs and Energy Preservation","title":"Energy preservation","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"In addition to the ODE given above, we know that the solution of the Hénon-Heiles model has to preserve energy over time. The total energy can be expressed as the sum of the potential and kinetic energies, given by","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"beginaligned\noperatornamePotentialEnergy(xy) = frac12 left( x^2 + y^2 + 2 x^2 y - frac2y^33 right) \noperatornameKineticEnergy(dotx doty) = frac12 left( dotx^2 + doty^2 right)\nendaligned","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"In code:","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"PotentialEnergy(x, y) = 1 // 2 * (x^2 + y^2 + 2x^2 * y - 2 // 3 * y^3)\nKineticEnergy(dx, dy) = 1 // 2 * (dx^2 + dy^2)\nE(dx, dy, x, y) = PotentialEnergy(x, y) + KineticEnergy(dx, dy)\nE(u) = E(u...); # convenient shorthand","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"So, let's have a look at how the total energy changes over time when we numerically simulate the Hénon-Heiles model over a long period of time: Standard solve","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"longprob = remake(prob2, tspan=(0.0, 1e3))\nlongsol = solve(longprob, EK1(smooth=false), dense=false)\nplot(longsol.t, E.(longsol.u))","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"It visibly loses energy over time, from an initial 0.12967 to a final 0.12899. Let's fix this to get a physically more meaningful solution.","category":"page"},{"location":"tutorials/dynamical_odes/#Energy-preservation-with-the-ManifoldUpdate-callback","page":"Second Order ODEs and Energy Preservation","title":"Energy preservation with the ManifoldUpdate callback","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"In the language of ODE filters, preserving energy over time amounts to just another measurement model [1]. The most convenient way of updating on this additional zero measurement with ProbNumDiffEq.jl is with the ManifoldUpdate callback.","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"note: Note\nThe ManifoldUpdate callback can be thought of a probabilistic counterpart to the ManifoldProjection callback provided by DiffEqCallbacks.jl.","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"To do so, first define a (vector-valued) residual function, here chosen to be the difference between the current energy and the initial energy, and build a ManifoldUpdate callback","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"residual(u) = [E(u) - E(du0..., u0...)]\ncb = ManifoldUpdate(residual)","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Then, solve the ODE with this callback","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"longsol_preserving = solve(longprob, EK1(smooth=false), dense=false, callback=cb)\nplot(longsol.t, E.(longsol.u))\nplot!(longsol_preserving.t, E.(longsol_preserving.u))","category":"page"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"Voilà! With the ManifoldUpdate callback we could preserve the energy over time and obtain a more truthful probabilistic numerical long-term simulation of the Hénon-Heiles model.","category":"page"},{"location":"tutorials/dynamical_odes/#References","page":"Second Order ODEs and Energy Preservation","title":"References","text":"","category":"section"},{"location":"tutorials/dynamical_odes/","page":"Second Order ODEs and Energy Preservation","title":"Second Order ODEs and Energy Preservation","text":"","category":"page"},{"location":"benchmarks/multi-language-wrappers/#ProbNumDiffEq.jl-vs.-various-solver-packages","page":"Multi-Language Wrapper Benchmark","title":"ProbNumDiffEq.jl vs. various solver packages","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"Adapted from SciMLBenchmarks.jl multi-language wrapper benchmark.","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"# Imports\nusing LinearAlgebra, Statistics, InteractiveUtils\nusing StaticArrays, DiffEqDevTools, ParameterizedFunctions, Plots, SciMLBase, OrdinaryDiffEq\nusing ODEInterface, ODEInterfaceDiffEq, Sundials, SciPyDiffEq, deSolveDiffEq, MATLABDiffEq, LSODA\nusing LoggingExtras\n\nusing ProbNumDiffEq","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"# Plotting theme\ntheme(:dao;\n markerstrokewidth=0.5,\n legend=:outertopright,\n bottom_margin=5Plots.mm,\n size = (1000, 400),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"# Constants used throughout this benchmark\nconst DENSE = false # used to decide if we smooth or not\nconst SAVE_EVERYSTEP = false;","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_COLORS = Dict(\n \"Julia\" => :LightGreen,\n \"Julia (static)\" => :DarkGreen,\n \"Hairer\" => :Red,\n \"MATLAB\" => :Orange,\n \"SciPy\" => :Yellow,\n \"deSolve\" => :Blue,\n \"Sundials\" => :Purple,\n \"liblsoda\" => :Purple,\n \"ProbNumDiffEq\" => :Darkgray,\n)\ntocolor(n) = _COLORS[split(n, ':')[1]];","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"deprecated_filter(log_args) = !contains(log_args.message, \"deprecated\")\nfiltered_logger = ActiveFilteredLogger(deprecated_filter, global_logger());","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Non-Stiff-Problem-1:-Lotka-Volterra","page":"Multi-Language Wrapper Benchmark","title":"Non-Stiff Problem 1: Lotka-Volterra","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"f = @ode_def LotkaVolterra begin\n dx = a*x - b*x*y\n dy = -c*y + d*x*y\nend a b c d\np = [1.5, 1, 3, 1]\ntspan = (0.0, 10.0)\nu0 = [1.0, 1.0]\nprob = ODEProblem{true,SciMLBase.FullSpecialize()}(f,u0,tspan,p)\nstaticprob = ODEProblem{false,SciMLBase.FullSpecialize()}(f,SVector{2}(u0),tspan,SVector{4}(p))\n\nsol = solve(prob,Vern7(),abstol=1/10^14,reltol=1/10^14,dense=false)\ntest_sol = sol\nplot(sol, title=\"Lotka-Volterra Solution\", legend=false)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_setups = [\n \"Julia: DP5\" => Dict(:alg=>DP5())\n \"Julia: Tsit5\" => Dict(:alg=>Tsit5())\n \"Julia: Vern7\" => Dict(:alg=>Vern7())\n \"Hairer: dopri5\" => Dict(:alg=>ODEInterfaceDiffEq.dopri5())\n \"MATLAB: ode45\" => Dict(:alg=>MATLABDiffEq.ode45())\n \"MATLAB: ode113\" => Dict(:alg=>MATLABDiffEq.ode113())\n \"SciPy: RK45\" => Dict(:alg=>SciPyDiffEq.RK45())\n \"SciPy: LSODA\" => Dict(:alg=>SciPyDiffEq.LSODA())\n \"SciPy: odeint\" => Dict(:alg=>SciPyDiffEq.odeint())\n \"deSolve: lsoda\" => Dict(:alg=>deSolveDiffEq.lsoda())\n \"deSolve: ode45\" => Dict(:alg=>deSolveDiffEq.ode45())\n \"Sundials: Adams\" => Dict(:alg=>Sundials.CVODE_Adams())\n \"ProbNumDiffEq: EK0(2)\" => Dict(:alg=>EK0(order=2, smooth=DENSE))\n \"ProbNumDiffEq: EK0(3)\" => Dict(:alg=>EK0(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(3)\" => Dict(:alg=>EK1(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(5)\" => Dict(:alg=>EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\ncolors = tocolor.(labels) |> permutedims\n\nabstols = 1.0 ./ 10.0 .^ (6:13)\nreltols = 1.0 ./ 10.0 .^ (3:10)\n\nwp = with_logger(filtered_logger) do\n WorkPrecisionSet(\n [prob, staticprob], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = [test_sol, test_sol],\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false,\n )\nend\n\nplot(\n wp,\n title = \"Non-stiff 1: Lotka-Volterra\",\n color = colors,\n xticks = 10.0 .^ (-16:1:5),\n yticks = 10.0 .^ (-6:1:5),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Non-Stiff-Problem-2:-Rigid-Body","page":"Multi-Language Wrapper Benchmark","title":"Non-Stiff Problem 2: Rigid Body","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"f = @ode_def RigidBodyBench begin\n dy1 = -2*y2*y3\n dy2 = 1.25*y1*y3\n dy3 = -0.5*y1*y2 + 0.25*sin(t)^2\nend\nu0 = [1.0;0.0;0.9]\ntspan = (0.0, 10.0)\nprob = ODEProblem{true,SciMLBase.FullSpecialize()}(f,u0,tspan)\nstaticprob = ODEProblem{false,SciMLBase.FullSpecialize()}(f,SVector{3}(u0),tspan)\nsol = solve(prob,Vern7(),abstol=1/10^14,reltol=1/10^14,dense=false)\ntest_sol = sol\nplot(sol, title=\"Rigid Body Solution\", legend=false)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_setups = [\n \"Julia: DP5\" => Dict(:alg=>DP5())\n \"Julia: Tsit5\" => Dict(:alg=>Tsit5())\n \"Julia: Vern7\" => Dict(:alg=>Vern7())\n \"Hairer: dopri5\" => Dict(:alg=>dopri5())\n \"MATLAB: ode45\" => Dict(:alg=>MATLABDiffEq.ode45())\n \"MATLAB: ode113\" => Dict(:alg=>MATLABDiffEq.ode113())\n \"SciPy: RK45\" => Dict(:alg=>SciPyDiffEq.RK45())\n \"SciPy: LSODA\" => Dict(:alg=>SciPyDiffEq.LSODA())\n \"SciPy: odeint\" => Dict(:alg=>SciPyDiffEq.odeint())\n \"deSolve: lsoda\" => Dict(:alg=>deSolveDiffEq.lsoda())\n \"deSolve: ode45\" => Dict(:alg=>deSolveDiffEq.ode45())\n \"Sundials: Adams\" => Dict(:alg=>CVODE_Adams())\n \"ProbNumDiffEq: EK0(2)\" => Dict(:alg=>EK0(order=2, smooth=DENSE))\n \"ProbNumDiffEq: EK0(3)\" => Dict(:alg=>EK0(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(3)\" => Dict(:alg=>EK1(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(5)\" => Dict(:alg=>EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\ncolors = tocolor.(labels) |> permutedims\n\nabstols = 1.0 ./ 10.0 .^ (6:13)\nreltols = 1.0 ./ 10.0 .^ (3:10)\n\nwp = with_logger(filtered_logger) do\n WorkPrecisionSet(\n [prob,staticprob], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n appxsol = [test_sol, test_sol],\n dense = DENSE,\n save_everystep = SAVE_EVERYSTEP,\n numruns = 10,\n maxiters = Int(1e7),\n timeseries_errors = false,\n verbose = false\n )\nend\n\nplot(\n wp,\n title = \"Non-stiff 2: Rigid-Body\",\n color = colors,\n xticks = 10.0 .^ (-12:1:5),\n yticks = 10.0 .^ (-6:1:5),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Stiff-Problem-1:-ROBER","page":"Multi-Language Wrapper Benchmark","title":"Stiff Problem 1: ROBER","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"rober = @ode_def begin\n dy₁ = -k₁*y₁+k₃*y₂*y₃\n dy₂ = k₁*y₁-k₂*y₂^2-k₃*y₂*y₃\n dy₃ = k₂*y₂^2\nend k₁ k₂ k₃\nu0 = [1.0,0.0,0.0]\np = [0.04,3e7,1e4]\nprob = ODEProblem{true,SciMLBase.FullSpecialize()}(rober,u0,(0.0,1e5),p)\nstaticprob = ODEProblem{false,SciMLBase.FullSpecialize()}(rober,SVector{3}(u0),(0.0,1e5),SVector{3}(p))\nsol = solve(prob,CVODE_BDF(),abstol=1/10^14,reltol=1/10^14,dense=false)\ntest_sol = sol\nplot(sol, title=\"ROBER Solution\", legend=false, xlims=(1e0, 1e5))","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_setups = [\n \"Julia: Rosenbrock23\" => Dict(:alg=>Rosenbrock23())\n \"Julia: Rodas4\" => Dict(:alg=>Rodas4())\n \"Julia: Rodas5\" => Dict(:alg=>Rodas5())\n \"Hairer: rodas\" => Dict(:alg=>rodas())\n \"Hairer: radau\" => Dict(:alg=>radau())\n \"MATLAB: ode23s\" => Dict(:alg=>MATLABDiffEq.ode23s())\n \"MATLAB: ode15s\" => Dict(:alg=>MATLABDiffEq.ode15s())\n \"SciPy: LSODA\" => Dict(:alg=>SciPyDiffEq.LSODA())\n \"SciPy: BDF\" => Dict(:alg=>SciPyDiffEq.BDF())\n \"SciPy: odeint\" => Dict(:alg=>SciPyDiffEq.odeint())\n \"deSolve: lsoda\" => Dict(:alg=>deSolveDiffEq.lsoda())\n \"Sundials: CVODE\" => Dict(:alg=>CVODE_BDF())\n \"ProbNumDiffEq: EK1(2)\" => Dict(:alg=>EK1(order=2, smooth=DENSE))\n \"ProbNumDiffEq: EK1(3)\" => Dict(:alg=>EK1(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(5)\" => Dict(:alg=>EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\ncolors = tocolor.(labels) |> permutedims\n\nabstols = 1.0 ./ 10.0 .^ (5:12)\nreltols = 1.0 ./ 10.0 .^ (2:9)\n\nwp = with_logger(filtered_logger) do\n WorkPrecisionSet(\n [prob, staticprob], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n dense = DENSE,\n verbose = false,\n save_everystep = SAVE_EVERYSTEP,\n appxsol = [test_sol, test_sol],\n maxiters=Int(1e5)\n )\nend\n\nplot(\n wp,\n title = \"Stiff 1: ROBER\",\n color = colors,\n xticks = 10.0 .^ (-16:1:4),\n yticks = 10.0 .^ (-6:1:5),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Stiff-Problem-2:-HIRES","page":"Multi-Language Wrapper Benchmark","title":"Stiff Problem 2: HIRES","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"f = @ode_def Hires begin\n dy1 = -1.71*y1 + 0.43*y2 + 8.32*y3 + 0.0007\n dy2 = 1.71*y1 - 8.75*y2\n dy3 = -10.03*y3 + 0.43*y4 + 0.035*y5\n dy4 = 8.32*y2 + 1.71*y3 - 1.12*y4\n dy5 = -1.745*y5 + 0.43*y6 + 0.43*y7\n dy6 = -280.0*y6*y8 + 0.69*y4 + 1.71*y5 -\n 0.43*y6 + 0.69*y7\n dy7 = 280.0*y6*y8 - 1.81*y7\n dy8 = -280.0*y6*y8 + 1.81*y7\nend\n\nu0 = zeros(8)\nu0[1] = 1\nu0[8] = 0.0057\nprob = ODEProblem{true,SciMLBase.FullSpecialize()}(f,u0,(0.0,321.8122))\nstaticprob = ODEProblem{false,SciMLBase.FullSpecialize()}(f,SVector{8}(u0),(0.0,321.8122))\n\nsol = solve(prob,Rodas5(),abstol=1/10^14,reltol=1/10^14, dense=false)\ntest_sol = sol\nplot(sol, title=\"ROBER Solution\", legend=false)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"_setups = [\n \"Julia: Rosenbrock23\" => Dict(:alg=>Rosenbrock23())\n \"Julia: Rodas4\" => Dict(:alg=>Rodas4())\n \"Julia: radau\" => Dict(:alg=>RadauIIA5())\n \"Hairer: rodas\" => Dict(:alg=>rodas())\n \"Hairer: radau\" => Dict(:alg=>radau())\n \"MATLAB: ode23s\" => Dict(:alg=>MATLABDiffEq.ode23s())\n \"MATLAB: ode15s\" => Dict(:alg=>MATLABDiffEq.ode15s())\n \"SciPy: LSODA\" => Dict(:alg=>SciPyDiffEq.LSODA())\n \"SciPy: BDF\" => Dict(:alg=>SciPyDiffEq.BDF())\n \"SciPy: odeint\" => Dict(:alg=>SciPyDiffEq.odeint())\n \"deSolve: lsoda\" => Dict(:alg=>deSolveDiffEq.lsoda())\n \"Sundials: CVODE\" => Dict(:alg=>CVODE_BDF())\n \"ProbNumDiffEq: EK1(2)\" => Dict(:alg=>EK1(order=2, smooth=DENSE))\n \"ProbNumDiffEq: EK1(3)\" => Dict(:alg=>EK1(order=3, smooth=DENSE))\n \"ProbNumDiffEq: EK1(5)\" => Dict(:alg=>EK1(order=5, smooth=DENSE))\n]\n\nlabels = first.(_setups)\nsetups = last.(_setups)\ncolors = tocolor.(labels) |> permutedims\n\nabstols = 1.0 ./ 10.0 .^ (5:10)\nreltols = 1.0 ./ 10.0 .^ (1:6)\n\nwp = with_logger(filtered_logger) do\n WorkPrecisionSet(\n [prob, staticprob], abstols, reltols, setups;\n names = labels,\n #print_names = true,\n dense = false,\n verbose = false,\n save_everystep = false,\n appxsol = [test_sol, test_sol],\n maxiters = Int(1e5),\n numruns=100\n )\nend\n\nplot(\n wp,\n title = \"Stiff 2: Hires\",\n color=colors,\n xticks = 10.0 .^ (-16:1:4),\n yticks = 10.0 .^ (-6:1:5),\n)","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"(Image: )","category":"page"},{"location":"benchmarks/multi-language-wrappers/#Appendix","page":"Multi-Language Wrapper Benchmark","title":"Appendix","text":"","category":"section"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"Computer information:","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"InteractiveUtils.versioninfo()","category":"page"},{"location":"benchmarks/multi-language-wrappers/","page":"Multi-Language Wrapper Benchmark","title":"Multi-Language Wrapper Benchmark","text":"Julia Version 1.8.5\nCommit 17cfb8e65ea (2023-01-08 06:45 UTC)\nPlatform Info:\n OS: Linux (x86_64-linux-gnu)\n CPU: 12 × Intel(R) Core(TM) i7-6800K CPU @ 3.40GHz\n WORD_SIZE: 64\n LIBM: libopenlibm\n LLVM: libLLVM-13.0.1 (ORCJIT, broadwell)\n Threads: 12 on 12 virtual cores\nEnvironment:\n JULIA_NUM_THREADS = auto\n JULIA_STACKTRACE_MINIMAL = true","category":"page"},{"location":"tutorials/getting_started/#Solving-ODEs-with-Probabilistic-Numerics","page":"Getting Started","title":"Solving ODEs with Probabilistic Numerics","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"In this tutorial we solve a simple non-linear ordinary differential equation (ODE) with the probabilistic numerical ODE solvers implemented in this package.","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"note: Note\nIf you never used DifferentialEquations.jl, check out their \"Getting Started with Differential Equations in Julia\" tutorial. It explains how to define and solve ODE problems and how to analyze the solution, so it's a great starting point. Most of ProbNumDiffEq.jl works exaclty as you would expect from DifferentialEquations.jl – just with some added uncertainties and related functionality on top!","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"In this tutorial, we consider a Fitzhugh-Nagumo model described by an ODE of the form","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"beginaligned\ndoty_1 = c (y_1 - fracy_1^33 + y_2) \ndoty_2 = -frac1c (y_1 - a - b y_2)\nendaligned","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"on a time span t in 0 T, with initial value y(0) = y_0. In the following, we","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"define the problem with explicit choices of initial values, integration domains, and parameters,\nsolve the problem with our ODE filters, and\nvisualize the results and the corresponding uncertainties.","category":"page"},{"location":"tutorials/getting_started/#TL;DR:-Just-use-DifferentialEquations.jl-with-the-EK1-algorithm","page":"Getting Started","title":"TL;DR: Just use DifferentialEquations.jl with the EK1 algorithm","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"using ProbNumDiffEq, Plots\n\nfunction fitz(du, u, p, t)\n a, b, c = p\n du[1] = c * (u[1] - u[1]^3 / 3 + u[2])\n du[2] = -(1 / c) * (u[1] - a - b * u[2])\nend\nu0 = [-1.0; 1.0]\ntspan = (0.0, 20.0)\np = (0.2, 0.2, 3.0)\nprob = ODEProblem(fitz, u0, tspan, p)\n\nusing Logging; Logging.disable_logging(Logging.Warn); # hide\nsol = solve(prob, EK1())\nLogging.disable_logging(Logging.Debug) # hide\nplot(sol)","category":"page"},{"location":"tutorials/getting_started/#Step-1:-Define-the-problem","page":"Getting Started","title":"Step 1: Define the problem","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"First, import ProbNumDiffEq.jl","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"using ProbNumDiffEq","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"Then, set up the ODEProblem exactly as you would in DifferentialEquations.jl. Define the vector field","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"function fitz(du, u, p, t)\n a, b, c = p\n du[1] = c * (u[1] - u[1]^3 / 3 + u[2])\n du[2] = -(1 / c) * (u[1] - a - b * u[2])\nend\nnothing # hide","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"and then the ODEProblem, with initial value u0, time span tspan, and parameters p","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"u0 = [-1.0; 1.0]\ntspan = (0.0, 20.0)\np = (0.2, 0.2, 3.0)\nprob = ODEProblem(fitz, u0, tspan, p)\nnothing # hide","category":"page"},{"location":"tutorials/getting_started/#Step-2:-Solve-the-problem","page":"Getting Started","title":"Step 2: Solve the problem","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"To solve the ODE we just use DifferentialEquations.jl's solve interface, together with one of the algorithms implemented in this package. For now, let's use EK1:","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"sol = solve(prob, EK1())\n# nothing # hide","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"That's it! we just computed a probabilistic numerical ODE solution!","category":"page"},{"location":"tutorials/getting_started/#Step-3:-Analyze-the-solution","page":"Getting Started","title":"Step 3: Analyze the solution","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"Let's plot the result with Plots.jl.","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"using Plots\nplot(sol)","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"Looks good! Looks like the EK1 managed to solve the Fitzhugh-Nagumo problem quite well.","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"tip: Tip\nTo learn more about plotting ODE solutions, check out the plotting tutorial for DifferentialEquations.jl + Plots.jl provided here. Most of that works exactly as expected with ProbNumDiffEq.jl.","category":"page"},{"location":"tutorials/getting_started/#Plot-the-probabilistic-error-estimates","page":"Getting Started","title":"Plot the probabilistic error estimates","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"The plot above looks like a standard ODE solution – but it's not! The numerical errors are just so small that we can't see them in the plot, and the probabilistic error estimates are too. We can visualize them by plotting the errors and error estimates directly:","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"using OrdinaryDiffEq, Statistics\nreference = solve(prob, Vern9(), abstol=1e-9, reltol=1e-9, saveat=sol.t)\nerrors = reduce(hcat, mean.(sol.pu) .- reference.u)'\nerror_estimates = reduce(hcat, std.(sol.pu))'\nplot(sol.t, errors, label=\"error\", color=[1 2], xlabel=\"t\", ylabel=\"err\")\nplot!(sol.t, zero(errors), ribbon=3error_estimates, label=\"error estimate\",\n color=[1 2], alpha=0.2)","category":"page"},{"location":"tutorials/getting_started/#More-about-the-ProbabilisticODESolution","page":"Getting Started","title":"More about the ProbabilisticODESolution","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"The solution object returned by ProbNumDiffEq.jl mostly behaves just like any other ODESolution in DifferentialEquations.jl – with some added uncertainties and related functionality on top. So, sol can be indexed","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"sol[1]\nsol[end]","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"and has fields sol.t and sol.u which store the time points and mean estimates:","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"sol.t[end]\nsol.u[end]","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"But since sol is a probabilistic numerical ODE solution, it contains a Gaussian distributions over solution values. The marginals of this posterior are stored in sol.pu:","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"sol.pu[end]","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"You can compute means, covariances, and standard deviations via Statistics.jl:","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"using Statistics\nmean(sol.pu[5])\ncov(sol.pu[5])\nstd(sol.pu[5])","category":"page"},{"location":"tutorials/getting_started/#Dense-output","page":"Getting Started","title":"Dense output","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"Probabilistic numerical ODE solvers approximate the posterior distribution","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"p Big( y(t) big y(0) = y_0 doty(t_i) = f_theta(y(t_i) t_i) Big)","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"which describes a posterior not just for the discrete steps but for any t in the continuous space t in 0 T; in classic ODE solvers, this is also known as \"interpolation\" or \"dense output\". The probabilistic solutions returned by our solvers can be interpolated as usual by treating them as functions, but they return Gaussian distributions","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"sol(0.45)\nmean(sol(0.45))","category":"page"},{"location":"tutorials/getting_started/#Next-steps","page":"Getting Started","title":"Next steps","text":"","category":"section"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"Check out one of the other tutorials:","category":"page"},{"location":"tutorials/getting_started/","page":"Getting Started","title":"Getting Started","text":"\"Second Order ODEs and Energy Preservation\" explains how to solve second-order ODEs more efficiently while also better perserving energy or other conserved quantities;\n\"Solving DAEs with Probabilistic Numerics\" demonstrates how to solve differential algebraic equatios in a probabilistic numerical way.","category":"page"},{"location":"tutorials/fenrir/#Parameter-Inference-with-ProbNumDiffEq.jl-and-Fenrir.jl","page":"Parameter Inference","title":"Parameter Inference with ProbNumDiffEq.jl and Fenrir.jl","text":"","category":"section"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"note: Note\nThis is mostly just a copy from the tutorial included in the Fenrir.jl documentation, so have a look there too!","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"using LinearAlgebra\nusing OrdinaryDiffEq, ProbNumDiffEq, Plots\nusing Fenrir\nusing Optimization, OptimizationOptimJL\nstack(x) = copy(reduce(hcat, x)') # convenient\nnothing # hide","category":"page"},{"location":"tutorials/fenrir/#The-parameter-inference-problem-in-general","page":"Parameter Inference","title":"The parameter inference problem in general","text":"","category":"section"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Let's assume we have an initial value problem (IVP)","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"beginaligned\ndoty = f_theta(y t) qquad y(t_0) = y_0\nendaligned","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"which we observe through a set mathcalD = u(t_n)_n=1^N of noisy data points","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"beginaligned\nu(t_n) = H y(t_n) + v_n qquad v_n sim mathcalN(0 R)\nendaligned","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"The question of interest is: How can we compute the marginal likelihood p(mathcalD mid theta)? Short answer: We can't. It's intractable, because computing the true IVP solution exactly y(t) is intractable. What we can do however is compute an approximate marginal likelihood. This is what Fenrir.jl provides. For details, check out the paper.","category":"page"},{"location":"tutorials/fenrir/#The-specific-problem,-in-code","page":"Parameter Inference","title":"The specific problem, in code","text":"","category":"section"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Let's assume that the true underlying dynamics are given by a FitzHugh-Nagumo model","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"function f(du, u, p, t)\n a, b, c = p\n du[1] = c*(u[1] - u[1]^3/3 + u[2])\n du[2] = -(1/c)*(u[1] - a - b*u[2])\nend\nu0 = [-1.0, 1.0]\ntspan = (0.0, 20.0)\np = (0.2, 0.2, 3.0)\ntrue_prob = ODEProblem(f, u0, tspan, p)","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"from which we generate some artificial noisy data","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"true_sol = solve(true_prob, Vern9(), abstol=1e-10, reltol=1e-10)\n\ntimes = 1:0.5:20\nobservation_noise_var = 1e-1\nodedata = [true_sol(t) .+ sqrt(observation_noise_var) * randn(length(u0)) for t in times]\n\nplot(true_sol, color=:black, linestyle=:dash, label=[\"True Solution\" \"\"])\nscatter!(times, stack(odedata), markersize=2, markerstrokewidth=0.1, color=1, label=[\"Noisy Data\" \"\"])","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Our goal is then to recover the true parameter p (and thus also the true trajectoy plotted above) the noisy data.","category":"page"},{"location":"tutorials/fenrir/#Computing-the-negative-log-likelihood","page":"Parameter Inference","title":"Computing the negative log-likelihood","text":"","category":"section"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"To do parameter inference - be it maximum-likelihod, maximum a posteriori, or full Bayesian inference with MCMC - we need to evaluate the likelihood of given a parameter estimate theta_textest. This is exactly what Fenrir.jl's fenrir_nll provides:","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"p_est = (0.1, 0.1, 2.0)\nprob = remake(true_prob, p=p_est)\ndata = (t=times, u=odedata)\nκ² = 1e10\nnll, _, _ = fenrir_nll(prob, data, observation_noise_var, κ²; dt=1e-1)\nnll","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"This is the negative marginal log-likelihood of the parameter p_est. You can use it as any other NLL: Optimize it to compute maximum-likelihood estimates or MAPs, or plug it into MCMC to sample from the posterior. In our paper [3] we compute MLEs by pairing Fenrir with Optimization.jl and ForwardDiff.jl. Let's quickly explore how to do this next.","category":"page"},{"location":"tutorials/fenrir/#Maximum-likelihood-parameter-inference","page":"Parameter Inference","title":"Maximum-likelihood parameter inference","text":"","category":"section"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"To compute a maximum-likelihood estimate (MLE), we just need to maximize theta to p(mathcalD mid theta) - that is, minimize the nll from above. We use Optimization.jl for this. First, define a loss function and create an OptimizationProblem","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"function loss(x, _)\n ode_params = x[begin:end-1]\n prob = remake(true_prob, p=ode_params)\n κ² = exp(x[end]) # the diffusion parameter of the EK1\n return fenrir_nll(prob, data, observation_noise_var, κ²; dt=1e-1)\nend\n\nfun = OptimizationFunction(loss, Optimization.AutoForwardDiff())\noptprob = OptimizationProblem(\n fun, [p_est..., 1e0];\n lb=[0.0, 0.0, 0.0, -10], ub=[1.0, 1.0, 5.0, 20] # lower and upper bounds\n)","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Then, just solve it! Here we use LBFGS:","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"optsol = solve(optprob, LBFGS())\np_mle = optsol.u[1:3]\np_mle # hide","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Success! The computed MLE is quite close to the true parameter which we used to generate the data. As a final step, let's plot the true solution, the data, and the result of the MLE:","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"plot(true_sol, color=:black, linestyle=:dash, label=[\"True Solution\" \"\"])\nscatter!(times, stack(odedata), markersize=2, markerstrokewidth=0.1, color=1, label=[\"Noisy Data\" \"\"])\nmle_sol = solve(remake(true_prob, p=p_mle), EK1())\nplot!(mle_sol, color=3, label=[\"MLE-parameter Solution\" \"\"])","category":"page"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"Looks good!","category":"page"},{"location":"tutorials/fenrir/#Reference","page":"Parameter Inference","title":"Reference","text":"","category":"section"},{"location":"tutorials/fenrir/","page":"Parameter Inference","title":"Parameter Inference","text":"","category":"page"},{"location":"#Probabilistic-Numerical-Differential-Equation-Solvers","page":"Home","title":"Probabilistic Numerical Differential Equation Solvers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"(Image: Banner)","category":"page"},{"location":"","page":"Home","title":"Home","text":"ProbNumDiffEq.jl provides probabilistic numerical solvers to the DifferentialEquations.jl ecosystem. The implemented ODE filters solve differential equations via Bayesian filtering and smoothing and compute not just a single point estimate of the true solution, but a posterior distribution that contains an estimate of its numerical approximation error.","category":"page"},{"location":"","page":"Home","title":"Home","text":"For a short intro video, check out our poster presentation at JuliaCon2021.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Run Julia, enter ] to bring up Julia's package manager, and add the ProbNumDiffEq.jl package:","category":"page"},{"location":"","page":"Home","title":"Home","text":"julia> ]\n(v1.9) pkg> add ProbNumDiffEq","category":"page"},{"location":"#Getting-Started","page":"Home","title":"Getting Started","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"For a quick introduction check out the \"Solving ODEs with Probabilistic Numerics\" tutorial.","category":"page"},{"location":"#Features","page":"Home","title":"Features","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Two extended Kalman filtering-based probabilistic solvers: the explicit EK0 and semi-implicit EK1.\nAdaptive step-size selection with PI control; fully compatible with DifferentialEquations.jl's timestepping options\nOnline uncertainty calibration for multiple different diffusion models (see \"Diffusion models and calibration\")\nDense output\nSampling from the solution\nCallback support\nConvenient plotting through a Plots.jl recipe\nAutomatic differentiation via ForwardDiff.jl\nArbitrary precision via Julia's built-in arbitrary precision arithmetic\nSpecialized solvers for second-order ODEs (see Second Order ODEs and Energy Preservation)\nCompatible with DAEs in mass-matrix ODE form (see Solving DAEs with Probabilistic Numerics)","category":"page"},{"location":"#Related-packages","page":"Home","title":"Related packages","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"probdiffeq: Fast and feature-rich filtering-based probabilistic ODE solvers in JAX.\nProbNum: Probabilistic numerics in Python. It has not only probabilistic ODE solvers, but also probabilistic linear solvers, Bayesian quadrature, and many filtering and smoothing implementations.\nFenrir.jl: Parameter-inference in ODEs with probabilistic ODE solvers. This package builds on ProbNumDiffEq.jl to provide a negative marginal log-likelihood function, which can then be used with an optimizer or with MCMC for parameter inference.","category":"page"},{"location":"implementation/#Solver-Implementation-via-OrdinaryDiffEq.jl","page":"Implementation via OrdinaryDiffEq.jl","title":"Solver Implementation via OrdinaryDiffEq.jl","text":"","category":"section"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"ProbNumDiffEq.jl builds directly on OrdinaryDiffEq.jl to benefit from its iterator interface, flexible step-size control, and efficient Jacobian calculations. But, this requires extending non-public APIs. This page is meant to provide an overview on which parts exactly ProbNumDiffEq.jl builds on.","category":"page"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"For more discussion on the pros and cons of building on OrdinaryDiffEq.jl, see this thread on discourse.","category":"page"},{"location":"implementation/#Building-on-OrdinaryDiffEq.jl","page":"Implementation via OrdinaryDiffEq.jl","title":"Building on OrdinaryDiffEq.jl","text":"","category":"section"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"ProbNumDiffEq.jl shares most of OrdinaryDiffEq.jl's implementation. In particular:","category":"page"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"OrdinaryDiffEq.__init builds the cache and the integrator, and calls OrdinaryDiffEq.initialize!\nOrdinaryDiffEq.solve! implements the actual iterator structure, with\nOrdinaryDiffEq.loopheader!\nOrdinaryDiffEq.perform_step!\nOrdinaryDiffEq.loopfooter!\nOrdinaryDiffEq.postamble!","category":"page"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"ProbNumDiffEq.jl builds around this structure and overloads some of the parts:","category":"page"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"Algorithms: EK0/EK1 <: AbstractEK <: OrdinaryDiffEq.OrdinaryDiffEqAdaptiveAlgorithm\n./src/algorithms.jl provides the algorithms themselves\n./src/alg_utils.jl implements many traits (e.g. relating to autodiff, implicitness, step-size control)\nCache: EKCache <: AbstractODEFilterCache <: OrdinaryDiffEq.OrdinaryDiffEqCache\n./src/caches.jl implements the cache and its main constructor: OrdinaryDiffEq.alg_cache\nInitialization and perform_step!: via OrdinaryDiffEq.initialize! and OrdinaryDiffEq.perform_step!. Implemented in ./src/perform_step.jl.\nCustom postamble by overloading OrdinaryDiffEq.postamble! (which should always call OrdinaryDiffEq._postamble!). This is where we do the \"smoothing\" of the solution. Implemented in ./src/integrator_utils.jl. \nCustom saving by overloading OrdinaryDiffEq.savevalues! (which should always call OrdinaryDiffEq._savevalues!). Implemented in ./src/integrator_utils.jl.","category":"page"},{"location":"implementation/#Building-on-DiffEqBase.jl","page":"Implementation via OrdinaryDiffEq.jl","title":"Building on DiffEqBase.jl","text":"","category":"section"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"DiffEqBase.__init is currently overloaded to transform OOP problems into IIP problems (in ./src/solve.jl).\nThe solution object: ProbODESolution <: AbstractProbODESolution <: DiffEqBase.AbstractODESolution\n./src/solution.jl implements the main parts. Note that the main constructor DiffEqBase.build_solution is called by OrdinaryDiffEq.__init - so OrdinaryDiffEq.jl has control over its inputs.\nThere is also MeanProbODESolution <: DiffEqBase.AbstractODESolution: It allows handling the mean of a probabilistic ODE solution the same way one would handle any \"standard\" ODE solution - e.g. it is compatible with DiffEqDevTools.appxtrue.\nAbstractODEFilterPosterior <: DiffEqBase.AbstractDiffEqInterpolation is the current interpolant, but it does not actually fully handle the interpolation right now. This part might be subject to change soon.\nPlot recipe in ./src/solution_plotting.jl\nSampling in ./src/solution_sampling.jl\nDiffEqBase.prepare_alg(::EK1{0}); closely follows a similar function implemented in OrdinaryDiffEq.jl ./src/alg_utils.jl\nthis also required DiffEqBase.remake(::EK1)","category":"page"},{"location":"implementation/#Other-packages","page":"Implementation via OrdinaryDiffEq.jl","title":"Other packages","text":"","category":"section"},{"location":"implementation/","page":"Implementation via OrdinaryDiffEq.jl","title":"Implementation via OrdinaryDiffEq.jl","text":"DiffEqDevTools.appxtrue is overloaded to work with ProbODESolution (by just doing mean(sol)). This also enables DiffEqDevTools.WorkPrecision to work out of th box.","category":"page"}]
}
diff --git a/previews/PR237/solvers/index.html b/previews/PR237/solvers/index.html
index 50139b98c..9a72b9ff2 100644
--- a/previews/PR237/solvers/index.html
+++ b/previews/PR237/solvers/index.html
@@ -1,11 +1,17 @@
-Solvers · ProbNumDiffEq.jl ProbNumDiffEq.jl provides two solvers: the EK1
and the EK0
. Both based on extended Kalman filtering and smoothing, but the latter relies on evaluating the Jacobian of the vector field. For the best results, use the EK1
.
All solvers are compatible with DAEs in mass-matrix ODE form. They also specialize on second-order ODEs: If the problem is of type SecondOrderODEProblem
, it solves the second-order problem directly; this is more efficient than solving the transformed first-order problem and provides more meaningful posteriors [1] .
EK1(; order=3,
+Solvers · ProbNumDiffEq.jl ProbNumDiffEq.jl provides two solvers: the EK1
and the EK0
. Both based on extended Kalman filtering and smoothing, but the latter relies on evaluating the Jacobian of the vector field. For the best results, use the EK1
.
All solvers are compatible with DAEs in mass-matrix ODE form. They also specialize on second-order ODEs: If the problem is of type SecondOrderODEProblem
, it solves the second-order problem directly; this is more efficient than solving the transformed first-order problem and provides more meaningful posteriors [1] .
EK1(; order=3,
smooth=true,
prior=IWP(order),
diffusionmodel=DynamicDiffusion(),
initialization=TaylorModeInit(),
- kwargs...)
Gaussian ODE filter with first-order vector field linearization.
Arguments
order::Integer
: Order of the integrated Wiener process (IWP) prior.smooth::Bool
: Turn smoothing on/off; smoothing is required for dense output.prior::AbstractODEFilterPrior
: Prior to be used by the ODE filter. By default, uses a 3-times integrated Wiener process prior IWP(3)
. See also: Priors .diffusionmodel::ProbNumDiffEq.AbstractDiffusion
: See Diffusion models and calibration .initialization::ProbNumDiffEq.InitializationScheme
: See Initialization .Some additional kwargs
relating to implicit solvers are supported; check out DifferentialEquations.jl's Extra Options page. Right now, we support autodiff
, chunk_size
, and diff_type
. In particular, autodiff=false
can come in handy to use finite differences instead of ForwardDiff.jl to compute Jacobians.
Examples
julia> solve(prob, EK1())
References
source EK0(; order=3,
+ kwargs...)
Gaussian ODE filter with first-order vector field linearization.
Arguments
order::Integer
: Order of the integrated Wiener process (IWP) prior.smooth::Bool
: Turn smoothing on/off; smoothing is required for dense output.prior::AbstractODEFilterPrior
: Prior to be used by the ODE filter. By default, uses a 3-times integrated Wiener process prior IWP(3)
. See also: Priors .diffusionmodel::ProbNumDiffEq.AbstractDiffusion
: See Diffusion models and calibration .initialization::ProbNumDiffEq.InitializationScheme
: See Initialization .Some additional kwargs
relating to implicit solvers are supported; check out DifferentialEquations.jl's Extra Options page. Right now, we support autodiff
, chunk_size
, and diff_type
. In particular, autodiff=false
can come in handy to use finite differences instead of ForwardDiff.jl to compute Jacobians.
Examples
julia> solve(prob, EK1())
References
source EK0(; order=3,
smooth=true,
prior=IWP(order),
diffusionmodel=DynamicDiffusion(),
- initialization=TaylorModeInit())
Gaussian ODE filter with zeroth-order vector field linearization.
Arguments
order::Integer
: Order of the integrated Wiener process (IWP) prior.smooth::Bool
: Turn smoothing on/off; smoothing is required for dense output.prior::AbstractODEFilterPrior
: Prior to be used by the ODE filter. By default, uses a 3-times integrated Wiener process prior IWP(3)
. See also: Priors .diffusionmodel::ProbNumDiffEq.AbstractDiffusion
: See Diffusion models and calibration .initialization::ProbNumDiffEq.InitializationScheme
: See Initialization .Examples
julia> solve(prob, EK0())
References
source [1] N. Bosch, F. Tronarp, P. Hennig: Pick-and-Mix Information Operators for Probabilistic ODE Solvers (2022) (link )
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+ initialization=TaylorModeInit())
Gaussian ODE filter with zeroth-order vector field linearization.
Arguments
order::Integer
: Order of the integrated Wiener process (IWP) prior.smooth::Bool
: Turn smoothing on/off; smoothing is required for dense output.prior::AbstractODEFilterPrior
: Prior to be used by the ODE filter. By default, uses a 3-times integrated Wiener process prior IWP(3)
. See also: Priors .diffusionmodel::ProbNumDiffEq.AbstractDiffusion
: See Diffusion models and calibration .initialization::ProbNumDiffEq.InitializationScheme
: See Initialization .Examples
julia> solve(prob, EK0())
References
source ExpEK(; L, order=3, kwargs...)
Probabilistic exponential integrator
Probabilistic exponential integrators are a class of integrators for semi-linear stiff ODEs that provide improved stability by essentially solving the linear part of the ODE exactly. In probabilistic numerics, this amounts to including the linear part into the prior model of the solver.
ExpEK
is therefore just a short-hand for EK0
with IOUP
prior:
ExpEK(; order=3, L, kwargs...) = EK0(; prior=IOUP(order, L), kwargs...)
See also RosenbrockExpEK
, EK0
, EK1
.
Arguments
See EK0
for available keyword arguments.
Examples
julia> prob = ODEProblem((du, u, p, t) -> (@. du = - u + sin(u)), [1.0], (0.0, 10.0))
+julia> solve(prob, ExpEK(L=-1))
Reference
[2] Bosch et al, "Probabilistic Exponential Integrators", arXiv (2021)source RosenbrockExpEK(; order=3, kwargs...)
Probabilistic Rosenbrock-type exponential integrator
A probabilistic exponential integrator similar to ExpEK
, but with automatic linearization along the mean numerical solution. This brings the advantage that the linearity does not need to be specified manually, and the more accurate local linearization can sometimes also improve stability; but since the "prior" is adjusted at each step the probabilistic interpretation becomes more complicated.
RosenbrockExpEK
is just a short-hand for EK1
with appropriete IOUP
prior:
RosenbrockExpEK(; order=3, kwargs...) = EK1(; prior=IOUP(order, update_rate_parameter=true), kwargs...)
See also ExpEK
, EK0
, EK1
.
Arguments
See EK1
for available keyword arguments.
Examples
julia> prob = ODEProblem((du, u, p, t) -> (@. du = - u + sin(u)), [1.0], (0.0, 10.0))
+julia> solve(prob, RosenbrockExpEK())
Reference
[2] Bosch et al, "Probabilistic Exponential Integrators", arXiv (2021)source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/dae/index.html b/previews/PR237/tutorials/dae/6a1c530b.svg
similarity index 81%
rename from previews/PR237/dae/index.html
rename to previews/PR237/tutorials/dae/6a1c530b.svg
index ca025e167..a6ba7ca6f 100644
--- a/previews/PR237/dae/index.html
+++ b/previews/PR237/tutorials/dae/6a1c530b.svg
@@ -1,286 +1,90 @@
-
-Differential Algebraic Equations · ProbNumDiffEq.jl ProbNumDiffEq.jl provides probabilistic numerical solvers for differential algebraic equations (DAEs). Currently, we recommend using the semi-implicit EK1
algorithm.
First, define the DAE (here the ROBER problem) as an ODE problem with singular mass matrix:
using ProbNumDiffEq, Plots, LinearAlgebra, OrdinaryDiffEq, ModelingToolkit
-
-function rober(du, u, p, t)
- y₁, y₂, y₃ = u
- k₁, k₂, k₃ = p
- du[1] = -k₁ * y₁ + k₃ * y₂ * y₃
- du[2] = k₁ * y₁ - k₃ * y₂ * y₃ - k₂ * y₂^2
- du[3] = y₁ + y₂ + y₃ - 1
- nothing
-end
-M = [1 0 0
- 0 1 0
- 0 0 0]
-f = ODEFunction(rober, mass_matrix=M)
-prob_mm = ODEProblem(f, [1.0, 0.0, 0.0], (0.0, 1e5), (0.04, 3e7, 1e4))
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
-timespan: (0.0, 100000.0)
-u0: 3-element Vector{Float64}:
- 1.0
- 0.0
- 0.0
We can solve this problem directly with the EK1
:
sol = solve(prob_mm, EK1(), reltol=1e-8, abstol=1e-8)
-plot(
- sol,
- xscale=:log10,
- tspan=(1e-6, 1e5),
- layout=(3, 1),
- legend=false,
- ylabel=["u₁(t)" "u₂(t)" "u₃(t)"],
- xlabel=["" "" "t"],
- denseplot=false,
-)
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-Looks good!
The following is based on the "Automatic Index Reduction of DAEs" tutorial by ModelingToolkit.jl , which demonstrates how the classic Rodas4
solver fails to solve a DAE due to the fact that it is of index 3; which is why ModelingToolkit's automatic index reduction is so useful.
It turns out that our probabilistic numerical solvers can directly solve the index-3 DAE!
First, define the pendulum problem as in the tutorial:
function pendulum!(du, u, p, t)
- x, dx, y, dy, T = u
- g, L = p
- du[1] = dx
- du[2] = T * x
- du[3] = dy
- du[4] = T * y - g
- du[5] = x^2 + y^2 - L^2
-end
-pendulum_fun! = ODEFunction(pendulum!, mass_matrix=Diagonal([1, 1, 1, 1, 0]))
-u0 = [1.0, 0, 0, 0, 0];
-p = [9.8, 1];
-tspan = (0, 5.0);
-pendulum_prob = ODEProblem(pendulum_fun!, u0, tspan, p)
ODEProblem with uType Vector{Float64} and tType Float64. In-place: true
-timespan: (0.0, 5.0)
-u0: 5-element Vector{Float64}:
- 1.0
- 0.0
- 0.0
- 0.0
- 0.0
We can try to solve it directly with one of the classic mass-matrix DAE solvers from OrdinaryDiffEq.jl:
solve(pendulum_prob, Rodas4())
retcode: DtLessThanMin
-Interpolation: specialized 3rd order "free" stiffness-aware interpolation
-t: 5-element Vector{Float64}:
- 0.0
- 1.0e-6
- 1.1e-5
- 3.806859510273279e-5
- 4.549693054277249e-5
-u: 5-element Vector{Vector{Float64}}:
- [1.0, 0.0, 0.0, 0.0, 0.0]
- [1.0, 0.0, -4.8999999999999965e-12, -9.799999999999993e-6, 0.0]
- [1.0, -5.282199999999992e-16, -5.928999999999995e-10, -0.00010779999999999991, -9.04785641150889e-11]
- [1.0, -2.211945263568203e-13, -7.101167872169468e-9, -0.00037307223200678104, -2.651533816040319e-8]
- [1.0, -3.16619714623608e-12, -1.0142856375187924e-8, -0.00044586991931917005, -2.959672249087358e-6]
It does not work! This is because of the index of the DAE; see e.g. this explenation from the tutorial .
Does this also hold for the EK1
solver? Let's find out:
sol = solve(pendulum_prob, EK1())
retcode: Success
-Interpolation: ODE Filter Posterior
-t: 648-element Vector{Float64}:
- 0.0
- 1.0e-6
- 1.1e-5
- 6.293457400357088e-5
- 0.0001717966984100629
- 0.00041700371867394907
- 0.0010432627107189395
- 0.0023838581354260454
- 0.003779145038358919
- 0.005253634231654714
- ⋮
- 4.899718276922523
- 4.916871039932603
- 4.933889556613487
- 4.950079612612157
- 4.964950973409543
- 4.978230637062438
- 4.988492732560967
- 4.996727461904126
- 5.0
-u: 648-element Vector{Vector{Float64}}:
- [1.0, 0.0, 0.0, 0.0, 9.080950660036463e-8]
- [1.0, -7.544081518092871e-16, -4.899999999973862e-12, -9.8e-6, -2.9635909477299587e-9]
- [1.0, -3.5118142675994386e-12, -5.929000001873409e-10, -0.00010780000000000204, -9.407116749247003e-7]
- [0.9999999999999998, -1.9283591178265126e-10, -1.9407726942375187e-8, -0.0006167588252345704, -5.812532083325943e-6]
- [0.9999999999999896, -1.3620046553124631e-9, -1.4461911742009714e-7, -0.0016836076444200826, -1.6053629872312538e-5]
- [0.999999999999637, -8.21501161551736e-9, -8.520712965694651e-7, -0.004086636442996441, -3.9507101119281324e-5]
- [0.9999999999857788, -5.2827069332080524e-8, -5.333145710651967e-6, -0.010223974564920876, -0.00010550428933361312]
- [0.9999999996123107, -3.2263727140651767e-7, -2.784562007587172e-5, -0.023361809722217085, -0.0003162618131183673]
- [0.9999999975512952, -1.0155891982249754e-6, -6.998149236147648e-5, -0.03703562133682991, -0.0007242806505495594]
- [0.9999999908546262, -2.6021660079239735e-6, -0.00013524329482500022, -0.05148561526505908, -0.0014868504136744051]
- ⋮
- [0.9918677550446119, -0.20109991308397726, -0.12727276589419723, -1.567657328158862, -3.7441482887784434]
- [0.987832245764427, -0.2716198645484476, -0.1555231649066295, -1.7256638471631696, -4.576007726086214]
- [0.982513101823426, -0.35582400759258725, -0.18619346370598763, -1.8778218846768593, -5.481283208719376]
- [0.9760088491928434, -0.45004219876151524, -0.2177308643045243, -2.017032550094059, -6.415490158427278]
- [0.9685954917572578, -0.5493915561906875, -0.24864187261484055, -2.1389266061827623, -7.33551148939033]
- [0.9606564704752983, -0.6488912965111842, -0.2777393773684324, -2.241904545274168, -8.20649809026962]
- [0.953580703532598, -0.7329362795843499, -0.301137606051972, -2.317049716858693, -8.911119223489587]
- [0.9472620899569895, -0.8049576742312687, -0.32045990833782334, -2.3741938112672893, -9.49621461341327]
- [0.9445849315579167, -0.8347208413797078, -0.32826712908215605, -2.3960584356227934, -9.733564093090328]
Nope! The EK1
is able to solve the index-3 DAE directly. Pretty cool!
plot(sol)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-The point of the "Automatic Index Reduction of DAEs" tutorial is to demonstrate ModelingToolkit's utility for automatic index reduction, which enables the classic implicit Runge-Kutta solvers such as Rodas5
to solve this DAE. Let's see if that still helps in this context here.
First, modelingtoolkitize
the problem:
traced_sys = modelingtoolkitize(pendulum_prob)
\[ \begin{align}
-\frac{\mathrm{d} x_1\left( t \right)}{\mathrm{d}t} =& x_2\left( t \right) \\
-\frac{\mathrm{d} x_2\left( t \right)}{\mathrm{d}t} =& x_1\left( t \right) x_5\left( t \right) \\
-\frac{\mathrm{d} x_3\left( t \right)}{\mathrm{d}t} =& x_4\left( t \right) \\
-\frac{\mathrm{d} x_4\left( t \right)}{\mathrm{d}t} =& - \alpha_1 + x_3\left( t \right) x_5\left( t \right) \\
-0 =& - \alpha_2^{2} + \left( x_1\left( t \right) \right)^{2} + \left( x_3\left( t \right) \right)^{2}
-\end{align}
- \]
(how cool is this latex output ?!?)
Next, lower the DAE index and simplify it with MTK's dae_index_lowering
and structural_simplify
:
simplified_sys = structural_simplify(dae_index_lowering(traced_sys))
\[ \begin{align}
-\frac{\mathrm{d} x_1\left( t \right)}{\mathrm{d}t} =& x_2\left( t \right) \\
-\frac{\mathrm{d} x_2\left( t \right)}{\mathrm{d}t} =& x_{1}ˍtt\left( t \right) \\
-\frac{\mathrm{d} x_3\left( t \right)}{\mathrm{d}t} =& x_4\left( t \right) \\
-\frac{\mathrm{d} x_4\left( t \right)}{\mathrm{d}t} =& x_{3}ˍtt\left( t \right) \\
-0 =& 2 \left( x_2\left( t \right) \right)^{2} + 2 \left( x_4\left( t \right) \right)^{2} + 2 \left( - \alpha_1 + x_3\left( t \right) x_5\left( t \right) \right) x_3\left( t \right) + 2 \left( x_1\left( t \right) \right)^{2} x_5\left( t \right)
-\end{align}
- \]
Let's build two different ODE problems, and check how well we can solve each:
prob_index3 = ODEProblem(traced_sys, Pair[], tspan)
-prob_index1 = ODEProblem(simplified_sys, Pair[], tspan)
-
-sol3 = solve(prob_index3, EK1())
-sol1 = solve(prob_index1, EK1())
-
-truesol = solve(prob_index1, Rodas4(), abstol=1e-10, reltol=1e-10)
-
-sol1_final_error = norm(sol1.u[end] - truesol.u[end])
-sol1_f_evals = sol1.stats.nf
-sol3_final_error = norm(sol3.u[end] - truesol.u[end])
-sol3_f_evals = sol3.stats.nf
-@info "Results" sol1_final_error sol1_f_evals sol3_final_error sol3_f_evals
┌ Info: Results
-│ sol1_final_error = 0.008830607057805757
-│ sol1_f_evals = 1059
-│ sol3_final_error = 0.062437505355379806
-└ sol3_f_evals = 1389
The error for the index-1 DAE solve is much lower. So it seems that, even if the index-3 DAE could also be solved directly, index lowering might still be beneficial when solving DAEs with the EK1
!
[1] N. Bosch, F. Tronarp, P. Hennig: Pick-and-Mix Information Operators for Probabilistic ODE Solvers (2022) (link )
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
diff --git a/previews/PR237/tutorials/dae/a046ce29.svg b/previews/PR237/tutorials/dae/a046ce29.svg
new file mode 100644
index 000000000..e81d8548b
--- /dev/null
+++ b/previews/PR237/tutorials/dae/a046ce29.svg
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/dae/index.html b/previews/PR237/tutorials/dae/index.html
new file mode 100644
index 000000000..b80ebe470
--- /dev/null
+++ b/previews/PR237/tutorials/dae/index.html
@@ -0,0 +1,143 @@
+
+Differential Algebraic Equations · ProbNumDiffEq.jl ProbNumDiffEq.jl provides probabilistic numerical solvers for differential algebraic equations (DAEs). Currently, we recommend using the semi-implicit EK1
algorithm.
First, define the DAE (here the ROBER problem) as an ODE problem with singular mass matrix:
using ProbNumDiffEq, Plots, LinearAlgebra, OrdinaryDiffEq, ModelingToolkit
+
+function rober(du, u, p, t)
+ y₁, y₂, y₃ = u
+ k₁, k₂, k₃ = p
+ du[1] = -k₁ * y₁ + k₃ * y₂ * y₃
+ du[2] = k₁ * y₁ - k₃ * y₂ * y₃ - k₂ * y₂^2
+ du[3] = y₁ + y₂ + y₃ - 1
+ nothing
+end
+M = [1 0 0
+ 0 1 0
+ 0 0 0]
+f = ODEFunction(rober, mass_matrix=M)
+prob_mm = ODEProblem(f, [1.0, 0.0, 0.0], (0.0, 1e5), (0.04, 3e7, 1e4))
ODEProblem with uType Vector{Float64} and tType Float64 . In-place: true
+timespan: (0.0, 100000.0)
+u0: 3-element Vector{Float64}:
+ 1.0
+ 0.0
+ 0.0
We can solve this problem directly with the EK1
:
sol = solve(prob_mm, EK1(), reltol=1e-8, abstol=1e-8)
+plot(
+ sol,
+ xscale=:log10,
+ tspan=(1e-6, 1e5),
+ layout=(3, 1),
+ legend=false,
+ ylabel=["u₁(t)" "u₂(t)" "u₃(t)"],
+ xlabel=["" "" "t"],
+ denseplot=false,
+)
Looks good!
The following is based on the "Automatic Index Reduction of DAEs" tutorial by ModelingToolkit.jl , which demonstrates how the classic Rodas4
solver fails to solve a DAE due to the fact that it is of index 3; which is why ModelingToolkit's automatic index reduction is so useful.
It turns out that our probabilistic numerical solvers can directly solve the index-3 DAE!
First, define the pendulum problem as in the tutorial:
function pendulum!(du, u, p, t)
+ x, dx, y, dy, T = u
+ g, L = p
+ du[1] = dx
+ du[2] = T * x
+ du[3] = dy
+ du[4] = T * y - g
+ du[5] = x^2 + y^2 - L^2
+end
+pendulum_fun! = ODEFunction(pendulum!, mass_matrix=Diagonal([1, 1, 1, 1, 0]))
+u0 = [1.0, 0, 0, 0, 0];
+p = [9.8, 1];
+tspan = (0, 5.0);
+pendulum_prob = ODEProblem(pendulum_fun!, u0, tspan, p)
ODEProblem with uType Vector{Float64} and tType Float64 . In-place: true
+timespan: (0.0, 5.0)
+u0: 5-element Vector{Float64}:
+ 1.0
+ 0.0
+ 0.0
+ 0.0
+ 0.0
We can try to solve it directly with one of the classic mass-matrix DAE solvers from OrdinaryDiffEq.jl:
solve(pendulum_prob, Rodas4())
retcode: DtLessThanMin
+Interpolation: specialized 3rd order "free" stiffness-aware interpolation
+t: 5-element Vector{Float64}:
+ 0.0
+ 1.0e-6
+ 1.1e-5
+ 3.806859510273279e-5
+ 4.549693054277249e-5
+u: 5-element Vector{Vector{Float64}}:
+ [1.0, 0.0, 0.0, 0.0, 0.0]
+ [1.0, 0.0, -4.8999999999999965e-12, -9.799999999999993e-6, 0.0]
+ [1.0, -5.282199999999992e-16, -5.928999999999995e-10, -0.00010779999999999991, -9.04785641150889e-11]
+ [1.0, -2.211945263568203e-13, -7.101167872169468e-9, -0.00037307223200678104, -2.651533816040319e-8]
+ [1.0, -3.16619714623608e-12, -1.0142856375187924e-8, -0.00044586991931917005, -2.959672249087358e-6]
It does not work! This is because of the index of the DAE; see e.g. this explenation from the tutorial .
Does this also hold for the EK1
solver? Let's find out:
sol = solve(pendulum_prob, EK1())
retcode: Success
+Interpolation: ODE Filter Posterior
+t: 648-element Vector{Float64}:
+ 0.0
+ 1.0e-6
+ 1.1e-5
+ 6.293457400357088e-5
+ 0.0001717966984100629
+ 0.00041700371867394907
+ 0.0010432627107189395
+ 0.0023838581354260454
+ 0.003779145038358919
+ 0.005253634231654714
+ ⋮
+ 4.899718276922523
+ 4.916871039932603
+ 4.933889556613487
+ 4.950079612612157
+ 4.964950973409543
+ 4.978230637062438
+ 4.988492732560967
+ 4.996727461904126
+ 5.0
+u: 648-element Vector{Vector{Float64}}:
+ [1.0, 0.0, 0.0, 0.0, 9.080950660036463e-8]
+ [1.0, -7.544081518092871e-16, -4.899999999973862e-12, -9.8e-6, -2.9635909477299587e-9]
+ [1.0, -3.5118142675994386e-12, -5.929000001873409e-10, -0.00010780000000000204, -9.407116749247003e-7]
+ [0.9999999999999998, -1.9283591178265126e-10, -1.9407726942375187e-8, -0.0006167588252345704, -5.812532083325943e-6]
+ [0.9999999999999896, -1.3620046553124631e-9, -1.4461911742009714e-7, -0.0016836076444200826, -1.6053629872312538e-5]
+ [0.999999999999637, -8.21501161551736e-9, -8.520712965694651e-7, -0.004086636442996441, -3.9507101119281324e-5]
+ [0.9999999999857788, -5.2827069332080524e-8, -5.333145710651967e-6, -0.010223974564920876, -0.00010550428933361312]
+ [0.9999999996123107, -3.2263727140651767e-7, -2.784562007587172e-5, -0.023361809722217085, -0.0003162618131183673]
+ [0.9999999975512952, -1.0155891982249754e-6, -6.998149236147648e-5, -0.03703562133682991, -0.0007242806505495594]
+ [0.9999999908546262, -2.6021660079239735e-6, -0.00013524329482500022, -0.05148561526505908, -0.0014868504136744051]
+ ⋮
+ [0.9918677550446119, -0.20109991308397726, -0.12727276589419723, -1.567657328158862, -3.7441482887784434]
+ [0.987832245764427, -0.2716198645484476, -0.1555231649066295, -1.7256638471631696, -4.576007726086214]
+ [0.982513101823426, -0.35582400759258725, -0.18619346370598763, -1.8778218846768593, -5.481283208719376]
+ [0.9760088491928434, -0.45004219876151524, -0.2177308643045243, -2.017032550094059, -6.415490158427278]
+ [0.9685954917572578, -0.5493915561906875, -0.24864187261484055, -2.1389266061827623, -7.33551148939033]
+ [0.9606564704752983, -0.6488912965111842, -0.2777393773684324, -2.241904545274168, -8.20649809026962]
+ [0.953580703532598, -0.7329362795843499, -0.301137606051972, -2.317049716858693, -8.911119223489587]
+ [0.9472620899569895, -0.8049576742312687, -0.32045990833782334, -2.3741938112672893, -9.49621461341327]
+ [0.9445849315579167, -0.8347208413797078, -0.32826712908215605, -2.3960584356227934, -9.733564093090328]
Nope! The EK1
is able to solve the index-3 DAE directly. Pretty cool!
plot(sol)
The point of the "Automatic Index Reduction of DAEs" tutorial is to demonstrate ModelingToolkit's utility for automatic index reduction, which enables the classic implicit Runge-Kutta solvers such as Rodas5
to solve this DAE. Let's see if that still helps in this context here.
First, modelingtoolkitize
the problem:
traced_sys = modelingtoolkitize(pendulum_prob)
\[ \begin{align}
+\frac{\mathrm{d} x_1\left( t \right)}{\mathrm{d}t} =& x_2\left( t \right) \\
+\frac{\mathrm{d} x_2\left( t \right)}{\mathrm{d}t} =& x_1\left( t \right) x_5\left( t \right) \\
+\frac{\mathrm{d} x_3\left( t \right)}{\mathrm{d}t} =& x_4\left( t \right) \\
+\frac{\mathrm{d} x_4\left( t \right)}{\mathrm{d}t} =& - \alpha_1 + x_3\left( t \right) x_5\left( t \right) \\
+0 =& \left( x_1\left( t \right) \right)^{2} + \left( x_3\left( t \right) \right)^{2} - \alpha_2^{2}
+\end{align}
+ \]
(how cool is this latex output ?!?)
Next, lower the DAE index and simplify it with MTK's dae_index_lowering
and structural_simplify
:
simplified_sys = structural_simplify(dae_index_lowering(traced_sys))
\[ \begin{align}
+\frac{\mathrm{d} x_1\left( t \right)}{\mathrm{d}t} =& x_2\left( t \right) \\
+\frac{\mathrm{d} x_2\left( t \right)}{\mathrm{d}t} =& x_1\left( t \right) x_5\left( t \right) \\
+\frac{\mathrm{d} x_3\left( t \right)}{\mathrm{d}t} =& x_4\left( t \right) \\
+\frac{\mathrm{d} x_4\left( t \right)}{\mathrm{d}t} =& - \alpha_1 + x_3\left( t \right) x_5\left( t \right) \\
+0 =& 2 \left( x_4\left( t \right) \right)^{2} + 2 \left( x_2\left( t \right) \right)^{2} + 2 \left( x_1\left( t \right) \right)^{2} x_5\left( t \right) + 2 x_3\left( t \right) \left( - \alpha_1 + x_3\left( t \right) x_5\left( t \right) \right)
+\end{align}
+ \]
Let's build two different ODE problems, and check how well we can solve each:
prob_index3 = ODEProblem(traced_sys, Pair[], tspan)
+prob_index1 = ODEProblem(simplified_sys, Pair[], tspan)
+
+sol3 = solve(prob_index3, EK1())
+sol1 = solve(prob_index1, EK1())
+
+truesol = solve(prob_index1, Rodas4(), abstol=1e-10, reltol=1e-10)
+
+sol1_final_error = norm(sol1.u[end] - truesol.u[end])
+sol1_f_evals = sol1.stats.nf
+sol3_final_error = norm(sol3.u[end] - truesol.u[end])
+sol3_f_evals = sol3.stats.nf
+@info "Results" sol1_final_error sol1_f_evals sol3_final_error sol3_f_evals
┌ Info: Results
+│ sol1_final_error = 0.0088306071986625
+│ sol1_f_evals = 1059
+│ sol3_final_error = 0.07215192850154105
+└ sol3_f_evals = 1425
The error for the index-1 DAE solve is much lower. So it seems that, even if the index-3 DAE could also be solved directly, index lowering might still be beneficial when solving DAEs with the EK1
!
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/tutorials/dynamical_odes/063ada1d.svg b/previews/PR237/tutorials/dynamical_odes/063ada1d.svg
new file mode 100644
index 000000000..8717b67be
--- /dev/null
+++ b/previews/PR237/tutorials/dynamical_odes/063ada1d.svg
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/dynamical_odes/index.html b/previews/PR237/tutorials/dynamical_odes/0c8e9e28.svg
similarity index 68%
rename from previews/PR237/dynamical_odes/index.html
rename to previews/PR237/tutorials/dynamical_odes/0c8e9e28.svg
index 14177f01c..fff87520e 100644
--- a/previews/PR237/dynamical_odes/index.html
+++ b/previews/PR237/tutorials/dynamical_odes/0c8e9e28.svg
@@ -1,237 +1,52 @@
-
-Second Order ODEs and Energy Preservation · ProbNumDiffEq.jl In this tutorial we consider an energy-preserving , physical dynamical system, given by a second-order ODE.
To efficiently solve second-order ODEs, just define the problem as a SecondOrderODEProblem
. To preserve constant quantities, use the ManifoldUpdate
callback; same syntax as DiffEqCallback.jl's ManifoldProjection
. The Hénon-Heiles model describes the motion of a star around a galactic center, restricted to a plane. It is given by a second-order ODE
\[\begin{aligned}
-\ddot{x} &= - x - 2 x y \\
-\ddot{y} &= y^2 - y - x^2.
-\end{aligned}\]
Our goal is to numerically simulate this system on a time span $t \in [0, T]$ , starting with initial values $x(0)=0$ , $y(0) = 0.1$ , $\dot{x}(0) = 0.5$ , $\dot{y}(0) = 0$ .
A very common approach is to first transform the problem into a first-order ODE by introducing a new variable
\[u = [dx,dy,x,y],\]
to obtain
\[\begin{aligned}
-\dot{u}_1(t) &= - u_3 - 2 u_3 u_4 \\
-\dot{u}_2(t) &= u_4^2 - u_4 - u_4^2 \\
-\dot{u}_3(t) &= u_1 \\
-\dot{u}_4(t) &= u_2.
-\end{aligned}\]
This first-order ODE can then be solved using any conventional ODE solver - including our EK1
:
using ProbNumDiffEq, Plots
-
-function Hénon_Heiles(du, u, p, t)
- du[1] = -u[3] - 2 * u[3] * u[4]
- du[2] = u[4]^2 - u[4] - u[3]^2
- du[3] = u[1]
- du[4] = u[2]
-end
-u0, du0 = [0.0, 0.1], [0.5, 0.0]
-tspan = (0.0, 100.0)
-prob = ODEProblem(Hénon_Heiles, [du0; u0], tspan)
-sol = solve(prob, EK1());
-plot(sol, vars=(3, 4)) # where `vars=(3,4)` is used to plot x agains y
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Instead of first transforming the problem, we can also solve it directly as a second-order ODE, by defining it as a SecondOrderODEProblem
.
function Hénon_Heiles2(ddu, du, u, p, t)
- ddu[1] = -u[1] - 2 * u[1] * u[2]
- ddu[2] = u[2]^2 - u[2] - u[1]^2
-end
-prob2 = SecondOrderODEProblem(Hénon_Heiles2, du0, u0, tspan)
-sol2 = solve(prob2, EK1());
-plot(sol2, vars=(3, 4))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Solving second-order ODEs is not just a matter of convenience - in fact, SciMLBase's SecondOrderODEProblem
is neatly designed in such a way that all the classic solvers from OrdinaryDiffEq.jl can handle it by solving the corresponding first-order ODE. But, transforming the ODE to first order increases the dimensionality of the problem, and comes therefore at increased computational cost; this also motivates classic specialized solvers for second-order ODEs .
The probabilistic numerical solvers from ProbNumDiffEq.jl have the same internal state representation for first and second order ODEs; all that changes is the measurement model [1]. As a result, we can use the EK1
both for first and second order ODEs, but it automatically specializes on the latter to provide a 2x performance boost :
julia> @btime solve(prob, EK1(order=3), adaptive=false, dt=1e-2);
- 766.312 ms (400362 allocations: 173.38 MiB)
-
-julia> @btime solve(prob2, EK1(order=4), adaptive=false, dt=1e-2);
- 388.301 ms (510676 allocations: 102.78 MiB)
In addition to the ODE given above, we know that the solution of the Hénon-Heiles model has to preserve energy over time. The total energy can be expressed as the sum of the potential and kinetic energies, given by
\[\begin{aligned}
-\operatorname{PotentialEnergy}(x,y) &= \frac{1}{2} \left( x^2 + y^2 + 2 x^2 y - \frac{2y^3}{3} \right), \\
-\operatorname{KineticEnergy}(\dot{x}, \dot{y}) &= \frac{1}{2} \left( \dot{x}^2 + \dot{y}^2 \right).
-\end{aligned}\]
In code:
PotentialEnergy(x, y) = 1 // 2 * (x^2 + y^2 + 2x^2 * y - 2 // 3 * y^3)
-KineticEnergy(dx, dy) = 1 // 2 * (dx^2 + dy^2)
-E(dx, dy, x, y) = PotentialEnergy(x, y) + KineticEnergy(dx, dy)
-E(u) = E(u...); # convenient shorthand
E (generic function with 2 methods)
So, let's have a look at how the total energy changes over time when we numerically simulate the Hénon-Heiles model over a long period of time: Standard solve
longprob = remake(prob2, tspan=(0.0, 1e3))
-longsol = solve(longprob, EK1(smooth=false), dense=false)
-plot(longsol.t, E.(longsol.u))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-It visibly loses energy over time, from an initial 0.12967 to a final 0.12899. Let's fix this to get a physically more meaningful solution.
In the language of ODE filters, preserving energy over time amounts to just another measurement model [1]. The most convenient way of updating on this additional zero measurement with ProbNumDiffEq.jl is with the ManifoldUpdate
callback.
The ManifoldUpdate
callback can be thought of a probabilistic counterpart to the ManifoldProjection
callback provided by DiffEqCallbacks.jl.
To do so, first define a (vector-valued) residual function, here chosen to be the difference between the current energy and the initial energy, and build a ManifoldUpdate
callback
residual(u) = [E(u) - E(du0..., u0...)]
-cb = ManifoldUpdate(residual)
DiscreteCallback{ProbNumDiffEq.var"#condition#40", ProbNumDiffEq.var"#affect!#41"{Int64, Float64, Float64, typeof(Main.residual)}, typeof(SciMLBase.INITIALIZE_DEFAULT), typeof(SciMLBase.FINALIZE_DEFAULT)}(ProbNumDiffEq.var"#condition#40"(), ProbNumDiffEq.var"#affect!#41"{Int64, Float64, Float64, typeof(Main.residual)}(100, 1.0e-25, 1.0e-15, Main.residual), SciMLBase.INITIALIZE_DEFAULT, SciMLBase.FINALIZE_DEFAULT, Bool[1, 1])
Then, solve the ODE with this callback
longsol_preserving = solve(longprob, EK1(smooth=false), dense=false, callback=cb)
-plot(longsol.t, E.(longsol.u))
-plot!(longsol_preserving.t, E.(longsol_preserving.u))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Voilà! With the ManifoldUpdate
callback we could preserve the energy over time and obtain a more truthful probabilistic numerical long-term simulation of the Hénon-Heiles model.
[1] N. Bosch, F. Tronarp, P. Hennig: Pick-and-Mix Information Operators for Probabilistic ODE Solvers (2022)
Theme
documenter-light documenter-dark
This document was generated with Documenter.jl version 0.27.24 on Monday 15 May 2023 . Using Julia version 1.9.0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/dynamical_odes/5a3d0b23.svg b/previews/PR237/tutorials/dynamical_odes/5a3d0b23.svg
new file mode 100644
index 000000000..454bea4ca
--- /dev/null
+++ b/previews/PR237/tutorials/dynamical_odes/5a3d0b23.svg
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/dynamical_odes/e650d5f6.svg b/previews/PR237/tutorials/dynamical_odes/e650d5f6.svg
new file mode 100644
index 000000000..fa4baa3c6
--- /dev/null
+++ b/previews/PR237/tutorials/dynamical_odes/e650d5f6.svg
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/dynamical_odes/index.html b/previews/PR237/tutorials/dynamical_odes/index.html
new file mode 100644
index 000000000..ec2beedb1
--- /dev/null
+++ b/previews/PR237/tutorials/dynamical_odes/index.html
@@ -0,0 +1,49 @@
+
+Second Order ODEs and Energy Preservation · ProbNumDiffEq.jl In this tutorial we consider an energy-preserving , physical dynamical system, given by a second-order ODE.
To efficiently solve second-order ODEs, just define the problem as a SecondOrderODEProblem
. To preserve constant quantities, use the ManifoldUpdate
callback; same syntax as DiffEqCallback.jl's ManifoldProjection
. The Hénon-Heiles model describes the motion of a star around a galactic center, restricted to a plane. It is given by a second-order ODE
\[\begin{aligned}
+\ddot{x} &= - x - 2 x y \\
+\ddot{y} &= y^2 - y - x^2.
+\end{aligned}\]
Our goal is to numerically simulate this system on a time span $t \in [0, T]$ , starting with initial values $x(0)=0$ , $y(0) = 0.1$ , $\dot{x}(0) = 0.5$ , $\dot{y}(0) = 0$ .
A very common approach is to first transform the problem into a first-order ODE by introducing a new variable
\[u = [dx,dy,x,y],\]
to obtain
\[\begin{aligned}
+\dot{u}_1(t) &= - u_3 - 2 u_3 u_4 \\
+\dot{u}_2(t) &= u_4^2 - u_4 - u_4^2 \\
+\dot{u}_3(t) &= u_1 \\
+\dot{u}_4(t) &= u_2.
+\end{aligned}\]
This first-order ODE can then be solved using any conventional ODE solver - including our EK1
:
using ProbNumDiffEq, Plots
+
+function Hénon_Heiles(du, u, p, t)
+ du[1] = -u[3] - 2 * u[3] * u[4]
+ du[2] = u[4]^2 - u[4] - u[3]^2
+ du[3] = u[1]
+ du[4] = u[2]
+end
+u0, du0 = [0.0, 0.1], [0.5, 0.0]
+tspan = (0.0, 100.0)
+prob = ODEProblem(Hénon_Heiles, [du0; u0], tspan)
+sol = solve(prob, EK1());
+plot(sol, vars=(3, 4)) # where `vars=(3,4)` is used to plot x agains y
Instead of first transforming the problem, we can also solve it directly as a second-order ODE, by defining it as a SecondOrderODEProblem
.
function Hénon_Heiles2(ddu, du, u, p, t)
+ ddu[1] = -u[1] - 2 * u[1] * u[2]
+ ddu[2] = u[2]^2 - u[2] - u[1]^2
+end
+prob2 = SecondOrderODEProblem(Hénon_Heiles2, du0, u0, tspan)
+sol2 = solve(prob2, EK1());
+plot(sol2, vars=(3, 4))
Solving second-order ODEs is not just a matter of convenience - in fact, SciMLBase's SecondOrderODEProblem
is neatly designed in such a way that all the classic solvers from OrdinaryDiffEq.jl can handle it by solving the corresponding first-order ODE. But, transforming the ODE to first order increases the dimensionality of the problem, and comes therefore at increased computational cost; this also motivates classic specialized solvers for second-order ODEs .
The probabilistic numerical solvers from ProbNumDiffEq.jl have the same internal state representation for first and second order ODEs; all that changes is the measurement model [1] . As a result, we can use the EK1
both for first and second order ODEs, but it automatically specializes on the latter to provide a 2x performance boost :
julia> @btime solve(prob, EK1(order=3), adaptive=false, dt=1e-2);
+ 766.312 ms (400362 allocations: 173.38 MiB)
+
+julia> @btime solve(prob2, EK1(order=4), adaptive=false, dt=1e-2);
+ 388.301 ms (510676 allocations: 102.78 MiB)
In addition to the ODE given above, we know that the solution of the Hénon-Heiles model has to preserve energy over time. The total energy can be expressed as the sum of the potential and kinetic energies, given by
\[\begin{aligned}
+\operatorname{PotentialEnergy}(x,y) &= \frac{1}{2} \left( x^2 + y^2 + 2 x^2 y - \frac{2y^3}{3} \right), \\
+\operatorname{KineticEnergy}(\dot{x}, \dot{y}) &= \frac{1}{2} \left( \dot{x}^2 + \dot{y}^2 \right).
+\end{aligned}\]
In code:
PotentialEnergy(x, y) = 1 // 2 * (x^2 + y^2 + 2x^2 * y - 2 // 3 * y^3)
+KineticEnergy(dx, dy) = 1 // 2 * (dx^2 + dy^2)
+E(dx, dy, x, y) = PotentialEnergy(x, y) + KineticEnergy(dx, dy)
+E(u) = E(u...); # convenient shorthand
E (generic function with 2 methods)
So, let's have a look at how the total energy changes over time when we numerically simulate the Hénon-Heiles model over a long period of time: Standard solve
longprob = remake(prob2, tspan=(0.0, 1e3))
+longsol = solve(longprob, EK1(smooth=false), dense=false)
+plot(longsol.t, E.(longsol.u))
It visibly loses energy over time, from an initial 0.12967 to a final 0.12899. Let's fix this to get a physically more meaningful solution.
In the language of ODE filters, preserving energy over time amounts to just another measurement model [1] . The most convenient way of updating on this additional zero measurement with ProbNumDiffEq.jl is with the ManifoldUpdate
callback.
The ManifoldUpdate
callback can be thought of a probabilistic counterpart to the ManifoldProjection
callback provided by DiffEqCallbacks.jl.
To do so, first define a (vector-valued) residual function, here chosen to be the difference between the current energy and the initial energy, and build a ManifoldUpdate
callback
residual(u) = [E(u) - E(du0..., u0...)]
+cb = ManifoldUpdate(residual)
DiscreteCallback{ProbNumDiffEq.var"#condition#45", ProbNumDiffEq.var"#affect!#46"{Int64, Float64, Float64, typeof(Main.residual)}, typeof(SciMLBase.INITIALIZE_DEFAULT), typeof(SciMLBase.FINALIZE_DEFAULT)}(ProbNumDiffEq.var"#condition#45"(), ProbNumDiffEq.var"#affect!#46"{Int64, Float64, Float64, typeof(Main.residual)}(100, 1.0e-25, 1.0e-15, Main.residual), SciMLBase.INITIALIZE_DEFAULT, SciMLBase.FINALIZE_DEFAULT, Bool[1, 1])
Then, solve the ODE with this callback
longsol_preserving = solve(longprob, EK1(smooth=false), dense=false, callback=cb)
+plot(longsol.t, E.(longsol.u))
+plot!(longsol_preserving.t, E.(longsol_preserving.u))
Voilà! With the ManifoldUpdate
callback we could preserve the energy over time and obtain a more truthful probabilistic numerical long-term simulation of the Hénon-Heiles model.
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/tutorials/exponential_integrators/128669bb.svg b/previews/PR237/tutorials/exponential_integrators/128669bb.svg
new file mode 100644
index 000000000..2c7b9b6cb
--- /dev/null
+++ b/previews/PR237/tutorials/exponential_integrators/128669bb.svg
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/exponential_integrators/8e6e1765.svg b/previews/PR237/tutorials/exponential_integrators/8e6e1765.svg
new file mode 100644
index 000000000..6d16a3c44
--- /dev/null
+++ b/previews/PR237/tutorials/exponential_integrators/8e6e1765.svg
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/exponential_integrators/bceca7c8.svg b/previews/PR237/tutorials/exponential_integrators/bceca7c8.svg
new file mode 100644
index 000000000..cc90a895c
--- /dev/null
+++ b/previews/PR237/tutorials/exponential_integrators/bceca7c8.svg
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/exponential_integrators/f3945cdd.svg b/previews/PR237/tutorials/exponential_integrators/f3945cdd.svg
new file mode 100644
index 000000000..0f4a6f29d
--- /dev/null
+++ b/previews/PR237/tutorials/exponential_integrators/f3945cdd.svg
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/exponential_integrators/index.html b/previews/PR237/tutorials/exponential_integrators/index.html
new file mode 100644
index 000000000..70bab3ff0
--- /dev/null
+++ b/previews/PR237/tutorials/exponential_integrators/index.html
@@ -0,0 +1,39 @@
+
+Probabilistic Exponential Integrators · ProbNumDiffEq.jl Exponential integrators are a class of numerical methods for solving semi-linear ordinary differential equations (ODEs) of the form
\[\begin{aligned}
+\dot{y}(t) &= L y(t) + f(y(t), t), \quad y(0) = y_0,
+\end{aligned}\]
where $L$ is a linear operator and $f$ is a nonlinear function. In a nutshell, exponential integrators solve the linear part of the ODE exactly, and only approximate the nonlinear part. Probabilistic exponential integrators [2] are the probabilistic numerics approach to exponential integrators.
Let's consider a simple semi-linear ODE
\[\begin{aligned}
+\dot{y}(t) &= - y(t) + \sin(y(t)), \quad y(0) = 1.0.
+\end{aligned}\]
We can solve this ODE reasonably well with the standard EK1
and adaptive steps (the default):
using ProbNumDiffEq, Plots, LinearAlgebra
+theme(:default; palette=["#4063D8", "#389826", "#9558B2", "#CB3C33"])
+
+f(du, u, p, t) = (@. du = -u + sin(u))
+u0 = [1.0]
+tspan = (0.0, 20.0)
+prob = ODEProblem(f, u0, tspan)
+
+ref = solve(prob, EK1(), abstol=1e-10, reltol=1e-10)
+plot(ref, color=:black, linestyle=:dash, label="Reference")
But for fixed (large) step sizes this ODE is more challenging: The explicit EK0
method oscillates and diverges due to the stiffness of the ODE, and the semi-implicit EK1
method is stable but the solution is not very accurate.
STEPSIZE = 4
+DM = FixedDiffusion() # recommended for fixed steps
+
+# we don't smooth the EK0 here to show the oscillations more clearly
+sol0 = solve(prob, EK0(smooth=false, diffusionmodel=DM), adaptive=false, dt=STEPSIZE, dense=false)
+sol1 = solve(prob, EK1(diffusionmodel=DM), adaptive=false, dt=STEPSIZE)
+
+plot(ylims=(0.3, 1.05))
+plot!(ref, color=:black, linestyle=:dash, label="Reference")
+plot!(sol0, denseplot=false, marker=:o, markersize=2, label="EK0", color=1)
+plot!(sol1, denseplot=false, marker=:o, markersize=2, label="EK1", color=2)
Probabilistic exponential integrators leverage the semi-linearity of the ODE to compute more accurate solutions for the same fixed step size. You can use either the ExpEK
method and provide the linear part (with the keyword argument L
), or the RosenbrockExpEK
to automatically linearize along the mean of the numerical solution:
sol_exp = solve(prob, ExpEK(L=-1, diffusionmodel=DM), adaptive=false, dt=STEPSIZE)
+sol_ros = solve(prob, RosenbrockExpEK(diffusionmodel=DM), adaptive=false, dt=STEPSIZE)
+
+plot(ylims=(0.3, 1.05))
+plot!(ref, color=:black, linestyle=:dash, label="Reference")
+plot!(sol_exp, denseplot=false, marker=:o, markersize=2, label="ExpEK", color=3)
+plot!(sol_ros, denseplot=false, marker=:o, markersize=2, label="RosenbrockExpEK", color=4)
The solutions are indeed much more accurate than those of the standard EK1
, for the same fixed step size!
Probabilistic exponential integrators "solve the linear part exactly" by including it into the prior model of the solver. Namely, the solver chooses a (q-times) integrated Ornstein-Uhlenbeck prior with rate parameter equal to the linearity. The ExpEK
solver is just a short-hand for an EK0
with appropriate prior:
julia> ExpEK(order=3, L=-1) == EK0(prior=IOUP(3, -1))
true
Similarly, the RosenbrockExpEK
solver is also just a short-hand:
julia> RosenbrockExpEK(order=3) == EK1(prior=IOUP(3, update_rate_parameter=true))
true
This means that you can also construct other probabilistic exponential integrators by hand! In this example the EK1
with IOUP
prior with rate parameter -1
performs extremely well:
sol_expek1 = solve(prob, EK1(prior=IOUP(3, -1), diffusionmodel=DM), adaptive=false, dt=STEPSIZE)
+
+plot(ylims=(0.3, 1.05))
+plot!(ref, color=:black, linestyle=:dash, label="Reference")
+plot!(sol_expek1, denseplot=false, marker=:o, markersize=2, label="EK1 + IOUP")
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/tutorials/fenrir/12b22100.svg b/previews/PR237/tutorials/fenrir/12b22100.svg
new file mode 100644
index 000000000..831336e5f
--- /dev/null
+++ b/previews/PR237/tutorials/fenrir/12b22100.svg
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/fenrir/754fcfb0.svg b/previews/PR237/tutorials/fenrir/754fcfb0.svg
new file mode 100644
index 000000000..55e436596
--- /dev/null
+++ b/previews/PR237/tutorials/fenrir/754fcfb0.svg
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/fenrir/index.html b/previews/PR237/tutorials/fenrir/index.html
new file mode 100644
index 000000000..522641879
--- /dev/null
+++ b/previews/PR237/tutorials/fenrir/index.html
@@ -0,0 +1,63 @@
+
+Parameter Inference · ProbNumDiffEq.jl using LinearAlgebra
+using OrdinaryDiffEq, ProbNumDiffEq, Plots
+using Fenrir
+using Optimization, OptimizationOptimJL
+stack(x) = copy(reduce(hcat, x)') # convenient
Let's assume we have an initial value problem (IVP)
\[\begin{aligned}
+\dot{y} &= f_\theta(y, t), \qquad y(t_0) = y_0,
+\end{aligned}\]
which we observe through a set $\mathcal{D} = \{u(t_n)\}_{n=1}^N$ of noisy data points
\[\begin{aligned}
+u(t_n) = H y(t_n) + v_n, \qquad v_n \sim \mathcal{N}(0, R).
+\end{aligned}\]
The question of interest is: How can we compute the marginal likelihood $p(\mathcal{D} \mid \theta)$ ? Short answer: We can't. It's intractable, because computing the true IVP solution exactly $y(t)$ is intractable. What we can do however is compute an approximate marginal likelihood. This is what Fenrir.jl provides. For details, check out the paper .
Let's assume that the true underlying dynamics are given by a FitzHugh-Nagumo model
function f(du, u, p, t)
+ a, b, c = p
+ du[1] = c*(u[1] - u[1]^3/3 + u[2])
+ du[2] = -(1/c)*(u[1] - a - b*u[2])
+end
+u0 = [-1.0, 1.0]
+tspan = (0.0, 20.0)
+p = (0.2, 0.2, 3.0)
+true_prob = ODEProblem(f, u0, tspan, p)
ODEProblem with uType Vector{Float64} and tType Float64 . In-place: true
+timespan: (0.0, 20.0)
+u0: 2-element Vector{Float64}:
+ -1.0
+ 1.0
from which we generate some artificial noisy data
true_sol = solve(true_prob, Vern9(), abstol=1e-10, reltol=1e-10)
+
+times = 1:0.5:20
+observation_noise_var = 1e-1
+odedata = [true_sol(t) .+ sqrt(observation_noise_var) * randn(length(u0)) for t in times]
+
+plot(true_sol, color=:black, linestyle=:dash, label=["True Solution" ""])
+scatter!(times, stack(odedata), markersize=2, markerstrokewidth=0.1, color=1, label=["Noisy Data" ""])
Our goal is then to recover the true parameter p
(and thus also the true trajectoy plotted above) the noisy data.
To do parameter inference - be it maximum-likelihod, maximum a posteriori, or full Bayesian inference with MCMC - we need to evaluate the likelihood of given a parameter estimate $\theta_\text{est}$ . This is exactly what Fenrir.jl's fenrir_nll
provides:
p_est = (0.1, 0.1, 2.0)
+prob = remake(true_prob, p=p_est)
+data = (t=times, u=odedata)
+κ² = 1e10
+nll, _, _ = fenrir_nll(prob, data, observation_noise_var, κ²; dt=1e-1)
+nll
247.93493522109165
This is the negative marginal log-likelihood of the parameter p_est
. You can use it as any other NLL: Optimize it to compute maximum-likelihood estimates or MAPs, or plug it into MCMC to sample from the posterior. In our paper [3] we compute MLEs by pairing Fenrir with Optimization.jl and ForwardDiff.jl . Let's quickly explore how to do this next.
To compute a maximum-likelihood estimate (MLE), we just need to maximize $\theta \to p(\mathcal{D} \mid \theta)$ - that is, minimize the nll
from above. We use Optimization.jl for this. First, define a loss function and create an OptimizationProblem
function loss(x, _)
+ ode_params = x[begin:end-1]
+ prob = remake(true_prob, p=ode_params)
+ κ² = exp(x[end]) # the diffusion parameter of the EK1
+ return fenrir_nll(prob, data, observation_noise_var, κ²; dt=1e-1)
+end
+
+fun = OptimizationFunction(loss, Optimization.AutoForwardDiff())
+optprob = OptimizationProblem(
+ fun, [p_est..., 1e0];
+ lb=[0.0, 0.0, 0.0, -10], ub=[1.0, 1.0, 5.0, 20] # lower and upper bounds
+)
OptimizationProblem . In-place: true
+u0: 4-element Vector{Float64}:
+ 0.1
+ 0.1
+ 2.0
+ 1.0
Then, just solve
it! Here we use LBFGS:
optsol = solve(optprob, LBFGS())
+p_mle = optsol.u[1:3]
3-element Vector{Float64}:
+ 0.19460319866910258
+ 0.2871398895883631
+ 2.928933162284435
Success! The computed MLE is quite close to the true parameter which we used to generate the data. As a final step, let's plot the true solution, the data, and the result of the MLE:
plot(true_sol, color=:black, linestyle=:dash, label=["True Solution" ""])
+scatter!(times, stack(odedata), markersize=2, markerstrokewidth=0.1, color=1, label=["Noisy Data" ""])
+mle_sol = solve(remake(true_prob, p=p_mle), EK1())
+plot!(mle_sol, color=3, label=["MLE-parameter Solution" ""])
Looks good!
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR237/tutorials/getting_started/086112e1.svg b/previews/PR237/tutorials/getting_started/086112e1.svg
new file mode 100644
index 000000000..3cce5c241
--- /dev/null
+++ b/previews/PR237/tutorials/getting_started/086112e1.svg
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/getting_started/17417dc7.svg b/previews/PR237/tutorials/getting_started/17417dc7.svg
new file mode 100644
index 000000000..72883c10e
--- /dev/null
+++ b/previews/PR237/tutorials/getting_started/17417dc7.svg
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/getting_started/5e55a364.svg b/previews/PR237/tutorials/getting_started/5e55a364.svg
new file mode 100644
index 000000000..b7e9c07c8
--- /dev/null
+++ b/previews/PR237/tutorials/getting_started/5e55a364.svg
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/previews/PR237/tutorials/getting_started/index.html b/previews/PR237/tutorials/getting_started/index.html
new file mode 100644
index 000000000..9f69a0acf
--- /dev/null
+++ b/previews/PR237/tutorials/getting_started/index.html
@@ -0,0 +1,96 @@
+
+Getting Started · ProbNumDiffEq.jl In this tutorial we solve a simple non-linear ordinary differential equation (ODE) with the probabilistic numerical ODE solvers implemented in this package.
If you never used DifferentialEquations.jl, check out their "Getting Started with Differential Equations in Julia" tutorial . It explains how to define and solve ODE problems and how to analyze the solution, so it's a great starting point. Most of ProbNumDiffEq.jl works exaclty as you would expect from DifferentialEquations.jl – just with some added uncertainties and related functionality on top!
In this tutorial, we consider a Fitzhugh-Nagumo model described by an ODE of the form
\[\begin{aligned}
+\dot{y}_1 &= c (y_1 - \frac{y_1^3}{3} + y_2) \\
+\dot{y}_2 &= -\frac{1}{c} (y_1 - a - b y_2)
+\end{aligned}\]
on a time span $t \in [0, T]$ , with initial value $y(0) = y_0$ . In the following, we
define the problem with explicit choices of initial values, integration domains, and parameters, solve the problem with our ODE filters, and visualize the results and the corresponding uncertainties. using ProbNumDiffEq, Plots
+
+function fitz(du, u, p, t)
+ a, b, c = p
+ du[1] = c * (u[1] - u[1]^3 / 3 + u[2])
+ du[2] = -(1 / c) * (u[1] - a - b * u[2])
+end
+u0 = [-1.0; 1.0]
+tspan = (0.0, 20.0)
+p = (0.2, 0.2, 3.0)
+prob = ODEProblem(fitz, u0, tspan, p)
+
+sol = solve(prob, EK1())
+plot(sol)
First, import ProbNumDiffEq.jl
using ProbNumDiffEq
Then, set up the ODEProblem
exactly as you would in DifferentialEquations.jl. Define the vector field
function fitz(du, u, p, t)
+ a, b, c = p
+ du[1] = c * (u[1] - u[1]^3 / 3 + u[2])
+ du[2] = -(1 / c) * (u[1] - a - b * u[2])
+end
and then the ODEProblem
, with initial value u0
, time span tspan
, and parameters p
u0 = [-1.0; 1.0]
+tspan = (0.0, 20.0)
+p = (0.2, 0.2, 3.0)
+prob = ODEProblem(fitz, u0, tspan, p)
To solve the ODE we just use DifferentialEquations.jl's solve
interface, together with one of the algorithms implemented in this package. For now, let's use EK1
:
sol = solve(prob, EK1())
retcode: Success
+Interpolation: ODE Filter Posterior
+t: 267-element Vector{Float64}:
+ 0.0
+ 0.021276864853851562
+ 0.05530062522770621
+ 0.09069833974374658
+ 0.13926827781702378
+ 0.18486670656185625
+ 0.24179366397911012
+ 0.29051816272523345
+ 0.3490769287679599
+ 0.39571551758025386
+ ⋮
+ 19.52620471671648
+ 19.57118993725592
+ 19.618145281565827
+ 19.669683561096146
+ 19.72660662373306
+ 19.789272758467693
+ 19.860208126620186
+ 19.94055004101715
+ 20.0
+u: 267-element Vector{Vector{Float64}}:
+ [-1.0, 1.0]
+ [-0.978397898660792, 1.0098599972789337]
+ [-0.9424079091803093, 1.0253304289278915]
+ [-0.9028542905882085, 1.0410170752594412]
+ [-0.8445349615757095, 1.0618117231749669]
+ [-0.7847703259504633, 1.0804970332988895]
+ [-0.7018976697192764, 1.1025562993298474]
+ [-0.6220689201271808, 1.120179077132381]
+ [-0.5125846235780992, 1.1395948416743367]
+ [-0.4123024260246016, 1.1534759756505177]
+ ⋮
+ [2.0826740294562978, 0.9061101524201414]
+ [2.078744560756929, 0.8805858429639564]
+ [2.073202127513052, 0.8539368332415667]
+ [2.0660462633712124, 0.824700271608408]
+ [2.057329129463756, 0.7924433159689622]
+ [2.0471229128144746, 0.7569883434598085]
+ [2.035086153414764, 0.7169394922557271]
+ [2.0210436519484176, 0.6717007174965183]
+ [2.0104405118668915, 0.6383145073764349]
That's it! we just computed a probabilistic numerical ODE solution!
Let's plot the result with Plots.jl .
using Plots
+plot(sol)
Looks good! Looks like the EK1
managed to solve the Fitzhugh-Nagumo problem quite well.
To learn more about plotting ODE solutions, check out the plotting tutorial for DifferentialEquations.jl + Plots.jl provided here . Most of that works exactly as expected with ProbNumDiffEq.jl.
The plot above looks like a standard ODE solution – but it's not! The numerical errors are just so small that we can't see them in the plot, and the probabilistic error estimates are too. We can visualize them by plotting the errors and error estimates directly:
using OrdinaryDiffEq, Statistics
+reference = solve(prob, Vern9(), abstol=1e-9, reltol=1e-9, saveat=sol.t)
+errors = reduce(hcat, mean.(sol.pu) .- reference.u)'
+error_estimates = reduce(hcat, std.(sol.pu))'
+plot(sol.t, errors, label="error", color=[1 2], xlabel="t", ylabel="err")
+plot!(sol.t, zero(errors), ribbon=3error_estimates, label="error estimate",
+ color=[1 2], alpha=0.2)
The solution object returned by ProbNumDiffEq.jl mostly behaves just like any other ODESolution in DifferentialEquations.jl – with some added uncertainties and related functionality on top. So, sol
can be indexed
julia> sol[1]
2-element Vector{Float64}:
+ -1.0
+ 1.0
julia> sol[end]
2-element Vector{Float64}:
+ 2.0104405118668915
+ 0.6383145073764349
and has fields sol.t
and sol.u
which store the time points and mean estimates:
julia> sol.t[end]
20.0
julia> sol.u[end]
2-element Vector{Float64}:
+ 2.0104405118668915
+ 0.6383145073764349
But since sol
is a probabilistic numerical ODE solution, it contains a Gaussian distributions over solution values. The marginals of this posterior are stored in sol.pu
:
julia> sol.pu[end]
Gaussian{Vector{Float64},PSDMatrix{Float64, Matrix{Float64}}}([2.0104405118668915, 0.6383145073764349], 2x2 PSDMatrix{Float64, Matrix{Float64}}; R=[4.819328867067389e-5 0.0001500862816541403; -4.209242496334452e-5 -0.00013099898185081014; 4.6624624650994785e-7 6.695624542120659e-6; -9.34063581893802e-8 5.806477585391347e-8; 1.3698832861281912e-6 4.548663507958517e-6; -1.6958383599884084e-7 -5.775663746256311e-6; 0.0 0.0; 0.0 0.0])
You can compute means, covariances, and standard deviations via Statistics.jl:
julia> using Statistics
julia> mean(sol.pu[5])
2-element Vector{Float64}:
+ -0.8445349615757095
+ 1.0618117231749669
julia> cov(sol.pu[5])
2x2 PSDMatrix{Float64, Matrix{Float64}}
+ Right square root: R=8×2 Matrix{Float64}:
+ -2.8014e-6 -1.24815e-7
+ 0.0 2.74772e-6
+ 0.0 -2.32934e-21
+ 0.0 -8.8012e-22
+ 0.0 1.65932e-19
+ 0.0 0.0
+ 0.0 0.0
+ 0.0 0.0
julia> std(sol.pu[5])
2-element Vector{Float64}:
+ 2.8014003609811094e-6
+ 2.7505533924662915e-6
Probabilistic numerical ODE solvers approximate the posterior distribution
\[p \Big( y(t) ~\big|~ y(0) = y_0, \{ \dot{y}(t_i) = f_\theta(y(t_i), t_i) \} \Big),\]
which describes a posterior not just for the discrete steps but for any $t$ in the continuous space $t \in [0, T]$ ; in classic ODE solvers, this is also known as "interpolation" or "dense output". The probabilistic solutions returned by our solvers can be interpolated as usual by treating them as functions, but they return Gaussian distributions
julia> sol(0.45)
Gaussian{Vector{Float64},PSDMatrix{Float64, Matrix{Float64}}}([-0.2773821283086793, 1.1675659430627094], 2x2 PSDMatrix{Float64, Matrix{Float64}}; R=[-3.208354407822495e-5 -4.78996984535617e-6; 0.0 1.926478845667932e-5; 0.0 1.4605790175623882e-5; 0.0 1.0839739026001365e-6; 0.0 5.6069326352075e-7; 0.0 0.0; 0.0 0.0; 0.0 0.0])
julia> mean(sol(0.45))
2-element Vector{Float64}:
+ -0.2773821283086793
+ 1.1675659430627094
Check out one of the other tutorials:
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.1.0 on Tuesday 3 October 2023 . Using Julia version 1.9.3.