From 0319dbb228a4ada6e3ab1aaca4cb52cdac045a64 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 4 Dec 2023 19:14:05 +0000 Subject: [PATCH] build based on b2e47a5 --- previews/PR40/.documenter-siteinfo.json | 1 + previews/PR40/api/index.html | 55 ++ previews/PR40/assets/documenter.js | 889 ++++++++++++++++++ .../PR40/assets/themes/documenter-dark.css | 7 + .../PR40/assets/themes/documenter-light.css | 9 + previews/PR40/assets/themeswap.js | 84 ++ previews/PR40/assets/warner.js | 52 + previews/PR40/bench/index.html | 118 +++ previews/PR40/bioequivalence/index.html | 21 + previews/PR40/boot/index.html | 7 + previews/PR40/cuda/index.html | 8 + previews/PR40/custom/index.html | 113 +++ previews/PR40/details/index.html | 13 + previews/PR40/examples/index.html | 235 +++++ previews/PR40/faq/index.html | 2 + previews/PR40/index.html | 2 + previews/PR40/instanduse/index.html | 61 ++ previews/PR40/mi/index.html | 14 + previews/PR40/nlopt/index.html | 8 + previews/PR40/plot1.png | Bin 0 -> 91188 bytes previews/PR40/plot2.png | Bin 0 -> 57534 bytes previews/PR40/ref/index.html | 2 + previews/PR40/search_index.js | 3 + previews/PR40/siteinfo.js | 1 + previews/PR40/validation/index.html | 276 ++++++ 25 files changed, 1981 insertions(+) create mode 100644 previews/PR40/.documenter-siteinfo.json create mode 100644 previews/PR40/api/index.html create mode 100644 previews/PR40/assets/documenter.js create mode 100644 previews/PR40/assets/themes/documenter-dark.css create mode 100644 previews/PR40/assets/themes/documenter-light.css create mode 100644 previews/PR40/assets/themeswap.js create mode 100644 previews/PR40/assets/warner.js create mode 100644 previews/PR40/bench/index.html create mode 100644 previews/PR40/bioequivalence/index.html create mode 100644 previews/PR40/boot/index.html create mode 100644 previews/PR40/cuda/index.html create mode 100644 previews/PR40/custom/index.html create mode 100644 previews/PR40/details/index.html create mode 100644 previews/PR40/examples/index.html create mode 100644 previews/PR40/faq/index.html create mode 100644 previews/PR40/index.html create mode 100644 previews/PR40/instanduse/index.html create mode 100644 previews/PR40/mi/index.html create mode 100644 previews/PR40/nlopt/index.html create mode 100644 previews/PR40/plot1.png create mode 100644 previews/PR40/plot2.png create mode 100644 previews/PR40/ref/index.html create mode 100644 previews/PR40/search_index.js create mode 100644 previews/PR40/siteinfo.js create mode 100644 previews/PR40/validation/index.html diff --git a/previews/PR40/.documenter-siteinfo.json b/previews/PR40/.documenter-siteinfo.json new file mode 100644 index 00000000..92deedbe --- /dev/null +++ b/previews/PR40/.documenter-siteinfo.json @@ -0,0 +1 @@ +{"documenter":{"julia_version":"1.8.5","generation_timestamp":"2023-12-04T19:13:56","documenter_version":"1.2.1"}} \ No newline at end of file diff --git a/previews/PR40/api/index.html b/previews/PR40/api/index.html new file mode 100644 index 00000000..b51c1c23 --- /dev/null +++ b/previews/PR40/api/index.html @@ -0,0 +1,55 @@ + +API · Metida.jl

API

Basic

@covstr

Metida.@covstrMacro
@covstr(ex)

Macros for random/repeated effect model.

Example

@covstr(factor|subject)
source

@lmmformula

Metida.@lmmformulaMacro
@lmmformula(formula, args...)

Macro for made formula with variance-covariance structure representation. @lmmformula could be used for shorter LMM construction.

Example:

lmm = Metida.LMM(@lmmformula(var~sequence+period+formulation,
+random = formulation|subject:CSH,
+repeated = formulation|subject:DIAG),
+df0)

equal to:

lmm = LMM(@formula(var~sequence+period+formulation), df0;
+random = VarEffect(@covstr(formulation|subject), CSH),
+repeated = VarEffect(@covstr(formulation|subject), DIAG),
+)

@lmmformula have 3 components - 1'st is a formula for fixed effect, it's defined like in StstsModels (1st argument just provided to @formula macro). Other arguments should be defined like keywords. repeated keyword define repeated effect part, random - define random effect part. You can use several random factors as in example bellow:

lmm = LMM(@lmmformula(var~sequence+period+formulation,
+random = formulation|subject:CSH,
+random = 1|subject:DIAG,
+repeated = formulation|subject:DIAG),
+df0)

random or repeated structure made by template:

effect formula | blocking factor [/ nested factor] [: covariance structure]

| - devide effect formula form blocking factor definition (necessarily), / and : modificator are optional.

/ work like in MixedModels or in RegressionFormulae - expand factor f|a/b to f|a + f|a&b. It can't be used in repeated effect definition.

: - covariance structure defined right after : (SI, DIAG, CS, CSH, ets...), if : not used then SI used for this effect.

Terms like a+b or a*b shuould not be used as a blocking factors.

source

Metida.CovarianceType

LMM

Metida.LMMType
LMM(model, data; contrasts=Dict{Symbol,Any}(),  random::Union{Nothing, VarEffect, Vector{VarEffect}} = nothing, repeated::Union{Nothing, VarEffect} = nothing)

Make Linear-Mixed Model object.

model: is a fixed-effect model (@formula)

data: tabular data

contrasts: contrasts for fixed factors

random: vector of random effects or single random effect

repeated: is a repeated effect (only one)

See also: @lmmformula

source

VarEffect

Metida.VarEffectType
VarEffect(formula, covtype::T, coding) where T <: AbstractCovarianceType
+
+VarEffect(formula, covtype::T; coding = nothing) where T <: AbstractCovarianceType
+
+VarEffect(formula; coding = nothing)

Random/repeated effect.

  • formula from @covstr(ex) macros.

  • covtype - covariance type (SI, DIAG, CS, CSH, AR, ARH, ARMA, TOEP, TOEPH, TOEPP, TOEPHP)

Note

Categorical factors are coded with FullDummyCoding() by default, use coding for other contrast codeing.

Example

VarEffect(@covstr(1+factor|subject), CSH)
+
+VarEffect(@covstr(1 + formulation|subject), CSH; coding = Dict(:formulation => StatsModels.DummyCoding()))
source

Covariance structures

Metida.Autoregressive

Metida.AutoregressiveFunction
Autoregressive()

Autoregressive covariance type.

AR = Autoregressive()

\[\begin{bmatrix} 1 & \rho & \rho^2 & \rho^3 \\ +\rho & 1 & \rho & \rho^2 \\ \rho^2 & \rho & 1 & \rho \\ +\rho^3 & \rho^2 & \rho & 1 +\end{bmatrix}\sigma^2\]

source

Metida.AutoregressiveMovingAverage

Metida.AutoregressiveMovingAverageFunction
AutoregressiveMovingAverage()

Autoregressive moving average covariance type.

ARMA = AutoregressiveMovingAverage()

\[\begin{bmatrix} 1 & \gamma & \gamma\rho & \gamma\rho^2 \\ +\gamma & 1 & \gamma & \gamma\rho \\ +\gamma\rho & \gamma & 1 & \gamma \\ +\gamma\rho^2 & \gamma\rho & \gamma & 1 +\end{bmatrix}\sigma^2\]

source

Metida.CompoundSymmetry

Metida.CompoundSymmetryFunction
CompoundSymmetry()

Compound symmetry covariance type.

CS = CompoundSymmetry()

\[\begin{bmatrix} 1 & \rho & \rho & \rho \\ +\rho & 1 & \rho & \rho \\ +\rho & \rho & 1 & \rho \\ +\rho & \rho & \rho & 1 +\end{bmatrix}\sigma^2\]

source

Metida.Diag

Metida.DiagFunction
Diag()

Diagonal covariance type.

DIAG = Diag()

\[\begin{bmatrix} \sigma_a^2 & 0 & 0 \\ 0 & \sigma_b^2 & 0 \\ 0 & 0 & \sigma_c^2 \end{bmatrix}\]

source

Metida.HeterogeneousAutoregressive

Metida.HeterogeneousAutoregressiveFunction
HeterogeneousAutoregressive()

Heterogeneous autoregressive covariance type.

ARH = HeterogeneousAutoregressive()

\[\begin{bmatrix} +\sigma_a^2 & \rho\sigma_a\sigma_b & \rho^2\sigma_a\sigma_c & \rho^3\sigma_a\sigma_d \\ +\rho\sigma_b\sigma_a & \sigma_b^2 & \rho\sigma_b\sigma_c & \rho^2\sigma_b\sigma_d \\ +\rho^2\sigma_c\sigma_a & \rho\sigma_c\sigma_b & \sigma_c^2 & \rho\sigma_c\sigma_d \\ +\rho^3\sigma_d\sigma_a & \rho^2\sigma_d\sigma_b & \rho\sigma_d\sigma_c & \sigma_d^2 +\end{bmatrix}\]

source

Metida.HeterogeneousCompoundSymmetry

Metida.HeterogeneousCompoundSymmetryFunction
HeterogeneousCompoundSymmetry()

Heterogeneous compound symmetry covariance type.

CSH = HeterogeneousCompoundSymmetry()

\[\begin{bmatrix} +\sigma_a^2 & \rho\sigma_a\sigma_b & \rho\sigma_a\sigma_c & \rho\sigma_a\sigma_d \\ +\rho\sigma_b\sigma_a & \sigma_b^2 & \rho\sigma_b\sigma_c & \rho\sigma_b\sigma_d \\ +\rho\sigma_c\sigma_a & \rho\sigma_c\sigma_b & \sigma_c^2 & \rho\sigma_c\sigma_d \\ +\rho\sigma_d\sigma_a & \rho\sigma_d\sigma_b & \rho\sigma_d\sigma_c & \sigma_d^2 +\end{bmatrix}\]

source

Metida.HeterogeneousToeplitz

Metida.HeterogeneousToeplitzFunction
HeterogeneousToeplitz()

Heterogeneous toeplitz covariance type. Only for G matrix.

TOEPH = HeterogeneousToeplitz()

\[\begin{bmatrix} +\sigma_a^2 & \rho_1 \sigma_a \sigma_b & \rho_2 \sigma_a \sigma_c & \rho_3 \sigma_a \sigma_d \\ +\rho_1 \sigma_b \sigma_a & \sigma_b^2 & \rho_1 \sigma_b \sigma_c & \rho_2 \sigma_b \sigma_d \\ +\rho_2 \sigma_c \sigma_a & \rho_1 \sigma_c \sigma_b & \sigma_c^2 & \rho_1 \sigma_c \sigma_d \\ +\rho_3 \sigma_d \sigma_a & \rho_2 \sigma_d \sigma_b & \rho_1 \sigma_d \sigma_c & \sigma_d^2 +\end{bmatrix}\]

source

Metida.HeterogeneousToeplitzParameterized

Metida.HeterogeneousToeplitzParameterizedFunction
HeterogeneousToeplitzParameterized(p::Int)

Heterogeneous toeplitz covariance type with parameter p, (number of bands = p - 1, if p = 1 it's equal DIAG structure).

TOEPHP(p) = HeterogeneousToeplitzParameterized(p)

source

Metida.ScaledIdentity

Metida.ScaledIdentityFunction
ScaledIdentity()

Scaled identity covariance type.

SI = ScaledIdentity()

\[\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}\sigma^{2}\]

source

Metida.SpatialExponential

Metida.SpatialExponentialFunction
SpatialExponential()

Spatian Exponential covariance structure. Used only for repeated effect.

\[R_{i,j} = \sigma^{2} * exp(-dist(i,j)/\theta)\]

where dist - Euclidean distance between row-vectors of repeated effect matrix for subject i and j, θ > 0.

SPEXP = SpatialExponential()

source

Metida.SpatialGaussian

Metida.SpatialGaussianFunction
SpatialGaussian()

Spatian Gaussian covariance structure. Used only for repeated effect.

\[R_{i,j} = \sigma^{2} * exp(- dist(i,j)^2 / \theta^2)\]

where dist - Euclidean distance between row-vectors of repeated effect matrix for subject i and j, θ ≠ 0.

SPGAU = SpatialGaussian()

source

Metida.SpatialPower

Metida.SpatialPowerFunction
SpatialPower()

Spatian Power covariance structure. Used only for repeated effect.

\[R_{i,j} = \sigma^{2} * \rho^{dist(i,j)}\]

where dist - Euclidean distance between row-vectors of repeated effect matrix for subject i and j, 1 > ρ > -1.

SPPOW = SpatialPower()

source

Metida.Toeplitz

Metida.ToeplitzFunction
Toeplitz()

Toeplitz covariance type. Only for G matrix.

TOEP = Toeplitz()

\[\begin{bmatrix} 1 & \rho_1 & \rho_2 & \rho_3 \\ +\rho_1 & 1 & \rho_1 & \rho_2 \\ +\rho_2 & \rho_1 & 1 & \rho_1 \\ +\rho_3 & \rho_2 & \rho_1 & 1 +\end{bmatrix}\sigma^2\]

source

Metida.ToeplitzParameterized

Metida.ToeplitzParameterizedFunction
ToeplitzParameterized(p::Int)

Toeplitz covariance type with parameter p, (number of bands = p - 1, if p = 1 it's equal SI structure).

TOEPP(p) = ToeplitzParameterized(p)

source

Metida.Unstructured

Metida.UnstructuredFunction
Unstructured()

Unstructured covariance structure with t*(t+1)/2-t paremeters where t - number of factor levels, t*(t+1)/2-2t of them is covariance (ρ) patemeters.

UN = Unstructured()

source

Methods

Metida.caic

Metida.caicFunction
caic(lmm::LMM)

Conditional Akaike Information Criterion.

source

Metida.coefn

Metida.dof_satter

Metida.dof_satterFunction
dof_satter(lmm::LMM{T}, l) where T

Return Satterthwaite approximation for the denominator degrees of freedom, where l is a contrast vector (estimable linear combination of fixed effect coefficients vector (β).

\[df = \frac{2(LCL')^{2}}{g'Ag}\]

Where: $A = 2H^{-1}$, $g = \triangledown_{\theta}(LC^{-1}_{\theta}L')$

source
dof_satter(lmm::LMM{T}, n::Int) where T

Return Satterthwaite approximation for the denominator degrees of freedom, where n - coefficient number.

source
dof_satter(lmm::LMM{T}) where T

Return Satterthwaite approximation for the denominator degrees of freedom for all coefficients.

source
dof_satter(lmm::LMM{T}, l::Matrix) where T

Return Satterthwaite approximation for the denominator degrees of freedom for conrast matrix l.

For size(l, 1) > 1:

\[df = \frac{2E}{E - rank(LCL')}\]

where:

  • let $LCL' = QΛQ^{-1}$, where $QΛQ^{-1}$ - spectral decomposition of $LCL'$
  • $Lq_i$ is the i-th row of $Q^{-1}L$
  • $A = 2H^{-1}$, $g = \triangledown_{\theta}(Lq_i C^{-1}_{\theta} Lq_i')$
  • $v_i = \frac{2*Λ_{i,i}^2}{g' * A * g}$
  • $E = \sum_{i=1}^n {\frac{v_i}(v_i - 2)}$ for $v_i > 2$
source

Metida.estimate

Metida.estimateFunction
estimate(lmm, l::AbstractVector; level = 0.95, name = "Estimate")

Estimate table for l vector. Satter DF used.

source
estimate(lmm; level = 0.95)

Estimates table. Satter DF used.

source

Metida.getlog

Metida.gmatrix

Metida.hessian

Metida.lcontrast

Metida.nblocks

Metida.rand

Base.randFunction
rand(rng::AbstractRNG, lmm::LMM{T}) where T

Generate random responce vector for fitted 'lmm' model.

source
rand(rng::AbstractRNG, lmm::LMM{T}; theta) where T

Generate random responce vector 'lmm' model, theta covariance vector, and zero means.

source
rand(rng::AbstractRNG, lmm::LMM{T}; theta, beta) where T

Generate random responce vector 'lmm' model, theta covariance vector and mean's vector.

source

Metida.rand

Random.rand!Function
rand!(v::AbstractVector, lmm::LMM) = rand!(default_rng(), v, lmm, lmm.result.theta, lmm.result.beta)

Generate random responce vector for fitted 'lmm' model, store results in v.

source
rand!(rng::AbstractRNG, lmm::LMM{T}; theta) where T

Generate random responce vector 'lmm' model, theta covariance vector, and zero means, store results in v.

source

Metida.raneff

Metida.raneffFunction
raneff(lmm::LMM{T}, i)

Vector of random effect coefficients for block i.

source
raneff(lmm::LMM{T})

Vector of random effect coefficients for all subjects by each random effect.

source

Metida.raneffn

Metida.rankx

Metida.rmatrix

Metida.theta

Metida.thetalength

Metida.vmatrix

Metida.vmatrix!Function
vmatrix!(V, θ, lmm, i)

Update variance-covariance matrix V for i bolock. Upper triangular updated.

source

StatsAPI

Metida.aic

Metida.aicc

StatsAPI.aiccFunction
StatsBase.aicc(lmm::LMM)

Corrected Akaike Information Criterion.

source

Metida.bic

Metida.coef

StatsAPI.coefFunction
StatsBase.coef(lmm::LMM) = copy(lmm.result.beta)

Model coefficients (β).

source

Metida.coefnames

Metida.coeftable

Metida.confint

StatsAPI.confintFunction
StatsBase.confint(lmm::LMM{T}; level::Real=0.95, ddf::Symbol = :satter) where T

Confidece interval for coefficients.

ddf = :satter/:residual

\[CI_{U/L} = β ± SE * t_{ddf, 1-α/2}\]

See also: dof_satter, dof_residual

source
StatsBase.confint(lmm::LMM{T}, i::Int; level::Real=0.95, ddf::Symbol = :satter) where T

Confidece interval for coefficient i.

source

StatsBase.confint(br::BootstrapResult, n::Int; level::Float64=0.95, method=:bp, metric = :coef, delrml = false)

Confidence interval for bootstrap result.

*method:

  • :bp - bootstrap percentile;
  • :rbp - reverse bootstrap percentile;
  • :norm - Normal distribution;
  • :bcnorm - Bias corrected Normal distribution;
  • :jn - bias corrected (jackknife resampling).
source

Metida.crossmodelmatrix

Metida.dof

Metida.dof_residual

StatsAPI.dof_residualFunction
StatsBase.dof_residual(lmm::LMM)

DOF residuals: N - rank(X), where N - total number of observations.

source

Metida.fit

StatsAPI.fitFunction
fit(::Type{T}, f::FormulaTerm, data;
+contrasts=Dict{Symbol,Any}(),  
+random::Union{Nothing, VarEffect, Vector{VarEffect}} = nothing, 
+repeated::Union{Nothing, VarEffect} = nothing,
+kwargs...)

Fit LMM model with @formula.

Keywords see fit!

source
fit(::Type{T}, f::LMMformula, data;
+contrasts=Dict{Symbol,Any}(),  
+kwargs...) where T <: LMM

Fit LMM model with @lmmformula.

Keywords see fit!

source

Metida.fit

StatsAPI.fit!Function
fit!(lmm::LMM{T}; kwargs...
+) where T

Fit LMM model.

Keywords:

  • solver - :default / :nlopt for using with MetidaNLopt.jl/ :cuda for using with MetidaCu.jl
  • verbose - :auto / 1 / 2 / 3 - - 1 - only log, 2 - log and print, 3 - print only errors, other log, 0 (or any other value) - no logging
  • varlinkf - :exp / :sq / :identity ref
  • rholinkf - :sigm / :atan / :sqsigm / :psigm
  • aifirst - first iteration with AI-like method - :default / :ai / :score
  • g_tol - absolute tolerance in the gradient
  • x_tol - absolute tolerance of theta vector
  • f_tol - absolute tolerance in changes of the REML
  • hes - calculate REML Hessian
  • init - initial theta values
  • io - output IO
  • time_limit - time limit = 120 sec
  • iterations - maximum iterations = 300
  • refitinit - true/false - if true - use last values for initial condition (false by default)
  • optmethod - Optimization method. Look at Optim.jl documentation. (Newton by default)
  • singtol - singular tolerance = 1e-8
  • maxthreads - maximum threads = num_cores()
source

islinear

isfitted

Metida.loglikelihood

Metida.modelmatrix

Metida.nobs

Metida.response

Metida.responsename

Metida.stderror

Metida.vcov

Experimental

Metida.SpatialExponentialD

Metida.SpatialExponentialDFunction
SpatialExponentialD()
Warning

Experimental

Same as SpatialExponential, but add D to all diagonal elements.

SPEXPD = SpatialExponentialD()

source

Metida.SpatialGaussianD

Metida.SpatialGaussianDFunction
SpatialGaussianD()
Warning

Experimental

Same as SpatialGaussianD, but add D to all diagonal elements.

SPGAUD = SpatialGaussianD()

source

Metida.SpatialPowerD

Metida.SpatialPowerDFunction
SpatialPowerD()
Warning

Experimental

Same as SpatialPower, but add D to all diagonal elements.

SPPOWD = SpatialPowerD()

source

Metida.dof_contain

Metida.dof_containFunction
dof_contain(lmm, i)
Warning

Experimental! Compute rank(XZi) for each random effect that syntactically contain factor assigned for β[i] element (Where Zi - Z matrix for random effect i). Minimum returned. If no random effect found N - rank(XZ) returned.

source

Metida.typeiii

Metida.typeiiiFunction
typeiii(lmm::LMM{T}; ddf::Symbol = :satter) where T
Warning

Experimental

Type III table.

source

Metida.MILMM

Not API functions

Metida.contrast

Metida.contrastFunction
contrast(lmm, l::AbstractMatrix; name::String = "Contrast", ddf = :satter)

User contrast table. ddf = :satter or :residual or any number for direct ddf setting.

source

Metida.fvalue

Metida.fvalueFunction
fvalue(lmm::LMM, l::Matrix)

F value for contrast matrix l.

\[F = \frac{\beta'L'(LCL')^{-1}L\beta}{rank(LCL')}\]

source

Metida.mulαβαtinc

Metida.mulαβαtinc!Function
mulαβαtinc!(θ::AbstractMatrix, A::AbstractMatrix, B::AbstractMatrix)

θ + A * B * A'

Change θ (only upper triangle). B is symmetric.

source
mulαβαtinc!(θ::AbstractMatrix, A::AbstractMatrix, B::AbstractMatrix, alpha)

θ + A * B * A' * alpha

Change θ (only upper triangle). B is symmetric.

source
mulαβαtinc!(θ::AbstractVector{T}, A::AbstractMatrix, B::AbstractMatrix, a::AbstractVector, b::AbstractVector, alpha) where T

θ + A * B * (a - b) * alpha

Change θ (only upper triangle). B is symmetric.

source

Metida.mulθ₃

Metida.mulθ₃Function
mulθ₃(y, X, β, V::AbstractMatrix{T})::T where T

(y - X * β)' * (-V) * (y - X * β)

use only upper triangle of V

source

Metida.mulαtβinc

Metida.mulαtβinc!Function
mulαtβinc!(θ::AbstractVector{T}, A::AbstractMatrix, b::AbstractVector) where T

θ + A' * b

Change θ.

source

Metida.tname

Metida.raneflenv

diff --git a/previews/PR40/assets/documenter.js b/previews/PR40/assets/documenter.js new file mode 100644 index 00000000..f5311607 --- /dev/null +++ b/previews/PR40/assets/documenter.js @@ -0,0 +1,889 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min', + 'minisearch': 'https://cdn.jsdelivr.net/npm/minisearch@6.1.0/dist/umd/index.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +let timer = 0; +var isExpanded = true; + +$(document).on("click", ".docstring header", function () { + let articleToggleTitle = "Expand docstring"; + + debounce(() => { + if ($(this).siblings("section").is(":visible")) { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + } else { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + articleToggleTitle = "Collapse docstring"; + } + + $(this) + .find(".docstring-article-toggle-button") + .prop("title", articleToggleTitle); + $(this).siblings("section").slideToggle(); + }); +}); + +$(document).on("click", ".docs-article-toggle-button", function () { + let articleToggleTitle = "Expand docstring"; + let navArticleToggleTitle = "Expand all docstrings"; + + debounce(() => { + if (isExpanded) { + $(this).removeClass("fa-chevron-up").addClass("fa-chevron-down"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + + isExpanded = false; + + $(".docstring section").slideUp(); + } else { + $(this).removeClass("fa-chevron-down").addClass("fa-chevron-up"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + isExpanded = true; + articleToggleTitle = "Collapse docstring"; + navArticleToggleTitle = "Collapse all docstrings"; + + $(".docstring section").slideDown(); + } + + $(this).prop("title", navArticleToggleTitle); + $(".docstring-article-toggle-button").prop("title", articleToggleTitle); + }); +}); + +function debounce(callback, timeout = 300) { + if (Date.now() - timer > timeout) { + callback(); + } + + clearTimeout(timer); + + timer = Date.now(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fa-solid", "fa-copy"); + button.setAttribute("aria-label", "Copy this code block"); + button.setAttribute("title", "Copy"); + + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-xmark"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-xmark"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function () { + $("#documenter .docs-navbar").headroom({ + tolerance: { up: 10, down: 10 }, + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'minisearch'], function($, minisearch) { + +// In general, most search related things will have "search" as a prefix. +// To get an in-depth about the thought process you can refer: https://hetarth02.hashnode.dev/series/gsoc + +let results = []; +let timer = undefined; + +let data = documenterSearchIndex["docs"].map((x, key) => { + x["id"] = key; // minisearch requires a unique for each object + return x; +}); + +// list below is the lunr 2.1.3 list minus the intersect with names(Base) +// (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) +// ideally we'd just filter the original list but it's not available as a variable +const stopWords = new Set([ + "a", + "able", + "about", + "across", + "after", + "almost", + "also", + "am", + "among", + "an", + "and", + "are", + "as", + "at", + "be", + "because", + "been", + "but", + "by", + "can", + "cannot", + "could", + "dear", + "did", + "does", + "either", + "ever", + "every", + "from", + "got", + "had", + "has", + "have", + "he", + "her", + "hers", + "him", + "his", + "how", + "however", + "i", + "if", + "into", + "it", + "its", + "just", + "least", + "like", + "likely", + "may", + "me", + "might", + "most", + "must", + "my", + "neither", + "no", + "nor", + "not", + "of", + "off", + "often", + "on", + "or", + "other", + "our", + "own", + "rather", + "said", + "say", + "says", + "she", + "should", + "since", + "so", + "some", + "than", + "that", + "the", + "their", + "them", + "then", + "there", + "these", + "they", + "this", + "tis", + "to", + "too", + "twas", + "us", + "wants", + "was", + "we", + "were", + "what", + "when", + "who", + "whom", + "why", + "will", + "would", + "yet", + "you", + "your", +]); + +let index = new minisearch({ + fields: ["title", "text"], // fields to index for full-text search + storeFields: ["location", "title", "text", "category", "page"], // fields to return with search results + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + } + + return word ?? null; + }, + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!", would not find anything if searching for "add!", only for the entire qualification + tokenize: (string) => string.split(/[\s\-\.]+/), + // options which will be applied during the search + searchOptions: { + boost: { title: 100 }, + fuzzy: 2, + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + } + + return word ?? null; + }, + tokenize: (string) => string.split(/[\s\-\.]+/), + }, +}); + +index.addAll(data); + +let filters = [...new Set(data.map((x) => x.category))]; +var modal_filters = make_modal_body_filters(filters); +var filter_results = []; + +$(document).on("keyup", ".documenter-search-input", function (event) { + // Adding a debounce to prevent disruptions from super-speed typing! + debounce(() => update_search(filter_results), 300); +}); + +$(document).on("click", ".search-filter", function () { + if ($(this).hasClass("search-filter-selected")) { + $(this).removeClass("search-filter-selected"); + } else { + $(this).addClass("search-filter-selected"); + } + + // Adding a debounce to prevent disruptions from crazy clicking! + debounce(() => get_filters(), 300); +}); + +/** + * A debounce function, takes a function and an optional timeout in milliseconds + * + * @function callback + * @param {number} timeout + */ +function debounce(callback, timeout = 300) { + clearTimeout(timer); + timer = setTimeout(callback, timeout); +} + +/** + * Make/Update the search component + * + * @param {string[]} selected_filters + */ +function update_search(selected_filters = []) { + let initial_search_body = ` +
Type something to get started!
+ `; + + let querystring = $(".documenter-search-input").val(); + + if (querystring.trim()) { + results = index.search(querystring, { + filter: (result) => { + // Filtering results + if (selected_filters.length === 0) { + return result.score >= 1; + } else { + return ( + result.score >= 1 && selected_filters.includes(result.category) + ); + } + }, + }); + + let search_result_container = ``; + let search_divider = `
`; + + if (results.length) { + let links = []; + let count = 0; + let search_results = ""; + + results.forEach(function (result) { + if (result.location) { + // Checking for duplication of results for the same page + if (!links.includes(result.location)) { + search_results += make_search_result(result, querystring); + count++; + } + + links.push(result.location); + } + }); + + let result_count = `
${count} result(s)
`; + + search_result_container = ` +
+ ${modal_filters} + ${search_divider} + ${result_count} +
+ ${search_results} +
+
+ `; + } else { + search_result_container = ` +
+ ${modal_filters} + ${search_divider} +
0 result(s)
+
+
No result found!
+ `; + } + + if ($(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").removeClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(search_result_container); + } else { + filter_results = []; + modal_filters = make_modal_body_filters(filters, filter_results); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(initial_search_body); + } +} + +/** + * Make the modal filter html + * + * @param {string[]} filters + * @param {string[]} selected_filters + * @returns string + */ +function make_modal_body_filters(filters, selected_filters = []) { + let str = ``; + + filters.forEach((val) => { + if (selected_filters.includes(val)) { + str += `${val}`; + } else { + str += `${val}`; + } + }); + + let filter_html = ` +
+ Filters: + ${str} +
+ `; + + return filter_html; +} + +/** + * Make the result component given a minisearch result data object and the value of the search input as queryString. + * To view the result object structure, refer: https://lucaong.github.io/minisearch/modules/_minisearch_.html#searchresult + * + * @param {object} result + * @param {string} querystring + * @returns string + */ +function make_search_result(result, querystring) { + let search_divider = `
`; + let display_link = + result.location.slice(Math.max(0), Math.min(50, result.location.length)) + + (result.location.length > 30 ? "..." : ""); // To cut-off the link because it messes with the overflow of the whole div + + if (result.page !== "") { + display_link += ` (${result.page})`; + } + + let textindex = new RegExp(`\\b${querystring}\\b`, "i").exec(result.text); + let text = + textindex !== null + ? result.text.slice( + Math.max(textindex.index - 100, 0), + Math.min( + textindex.index + querystring.length + 100, + result.text.length + ) + ) + : ""; // cut-off text before and after from the match + + let display_result = text.length + ? "..." + + text.replace( + new RegExp(`\\b${querystring}\\b`, "i"), // For first occurrence + '$&' + ) + + "..." + : ""; // highlights the match + + let in_code = false; + if (!["page", "section"].includes(result.category.toLowerCase())) { + in_code = true; + } + + // We encode the full url to escape some special characters which can lead to broken links + let result_div = ` + +
+
${result.title}
+
${result.category}
+
+

+ ${display_result} +

+
+ ${display_link} +
+
+ ${search_divider} + `; + + return result_div; +} + +/** + * Get selected filters, remake the filter html and lastly update the search modal + */ +function get_filters() { + let ele = $(".search-filters .search-filter-selected").get(); + filter_results = ele.map((x) => $(x).text().toLowerCase()); + modal_filters = make_modal_body_filters(filters, filter_results); + update_search(filter_results); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function () { + var settings = $("#documenter-settings"); + $("#documenter-settings-button").click(function () { + settings.toggleClass("is-active"); + }); + // Close the dialog if X is clicked + $("#documenter-settings button.delete").click(function () { + settings.removeClass("is-active"); + }); + // Close dialog if ESC is pressed + $(document).keyup(function (e) { + if (e.keyCode == 27) settings.removeClass("is-active"); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +let search_modal_header = ` + +`; + +let initial_search_body = ` +
Type something to get started!
+`; + +let search_modal_footer = ` + +`; + +$(document.body).append( + ` + + ` +); + +document.querySelector(".docs-search-query").addEventListener("click", () => { + openModal(); +}); + +document.querySelector(".close-search-modal").addEventListener("click", () => { + closeModal(); +}); + +$(document).on("click", ".search-result-link", function () { + closeModal(); +}); + +document.addEventListener("keydown", (event) => { + if ((event.ctrlKey || event.metaKey) && event.key === "/") { + openModal(); + } else if (event.key === "Escape") { + closeModal(); + } + + return false; +}); + +// Functions to open and close a modal +function openModal() { + let searchModal = document.querySelector("#search-modal"); + + searchModal.classList.add("is-active"); + document.querySelector(".documenter-search-input").focus(); +} + +function closeModal() { + let searchModal = document.querySelector("#search-modal"); + let initial_search_body = ` +
Type something to get started!
+ `; + + searchModal.classList.remove("is-active"); + document.querySelector(".documenter-search-input").blur(); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".documenter-search-input").val(""); + $(".search-modal-card-body").html(initial_search_body); +} + +document + .querySelector("#search-modal .modal-background") + .addEventListener("click", () => { + closeModal(); + }); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function () { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button"); + sidebar_button.click(function (ev) { + ev.preventDefault(); + sidebar.toggleClass("visible"); + if (sidebar.hasClass("visible")) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind("click", function (ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass("visible")) { + sidebar.removeClass("visible"); + } + }); +}); + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function () { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css("max-width"), 10); + var L0 = e.width(); + if (L0 > L) { + var h0 = parseInt(e.css("font-size"), 10); + e.css("font-size", (L * h0) / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on("orientationchange", resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function () { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if (typeof active !== "undefined") { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Theme picker setup +$(document).ready(function () { + // onchange callback + $("#documenter-themepicker").change(function themepick_callback(ev) { + var themename = $("#documenter-themepicker option:selected").attr("value"); + if (themename === "auto") { + // set_theme(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); + window.localStorage.removeItem("documenter-theme"); + } else { + // set_theme(themename); + window.localStorage.setItem("documenter-theme", themename); + } + // We re-use the global function from themeswap.js to actually do the swapping. + set_theme_from_local_storage(); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if (typeof window.localStorage !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if (theme !== null) { + $("#documenter-themepicker option").each(function (i, e) { + e.selected = e.value === theme; + }); + } + } +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function () { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if ( + typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === "boolean" && + DOCUMENTER_VERSION_SELECTOR_DISABLED + ) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function (x) { + target_href = version_selector_select + .children("option:selected") + .get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if ( + typeof DOCUMENTER_CURRENT_VERSION !== "undefined" && + $("#version-selector > option").length == 0 + ) { + var option = $( + "" + ); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== "undefined") { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function (i, x) { + return x.text; + }); + DOC_VERSIONS.forEach(function (each) { + var version_url = documenterBaseURL + "/../" + each + "/"; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $( + "" + ); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}); + +}) diff --git a/previews/PR40/assets/themes/documenter-dark.css b/previews/PR40/assets/themes/documenter-dark.css new file mode 100644 index 00000000..9f5449f4 --- /dev/null +++ b/previews/PR40/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +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 +*/}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;overflow:auto}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;overflow-x:hidden}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}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 .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 !important;background-color:#f1f5f9 !important}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:whitesmoke;background-color:#33415580;border-radius:0.6rem}html.theme--documenter-dark .search-result-title{color:whitesmoke}html.theme--documenter-dark .search-result-highlight{background-color:greenyellow;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f50}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} diff --git a/previews/PR40/assets/themes/documenter-light.css b/previews/PR40/assets/themes/documenter-light.css new file mode 100644 index 00000000..2f168c77 --- /dev/null +++ b/previews/PR40/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +.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;overflow:auto}.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;overflow-x:hidden}#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 + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/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}.gap-4{gap:1rem} diff --git a/previews/PR40/assets/themeswap.js b/previews/PR40/assets/themeswap.js new file mode 100644 index 00000000..9f5eebe6 --- /dev/null +++ b/previews/PR40/assets/themeswap.js @@ -0,0 +1,84 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // 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) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the users preference is for dark color scheme + 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 + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - 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 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; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + 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; + // Store the style sheets of inactive themes so that we could disable them + if (themename !== theme) disabled.push(ss); + } + 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; + 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 = ""; + } + } + 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/PR40/assets/warner.js b/previews/PR40/assets/warner.js new file mode 100644 index 00000000..3f6f5d00 --- /dev/null +++ b/previews/PR40/assets/warner.js @@ -0,0 +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; + } + + // 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; + } + + // 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); + } + + 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); +} else { + maybeAddWarning(); +} diff --git a/previews/PR40/bench/index.html b/previews/PR40/bench/index.html new file mode 100644 index 00000000..1c4bff0c --- /dev/null +++ b/previews/PR40/bench/index.html @@ -0,0 +1,118 @@ + +Benchmark · Metida.jl

Benchmark

System

  • CPU: Ryzen 5950x
  • RAM: 64Gb 3200
  • GTX 1070Ti

Data

using Metida, CSV, DataFrames, MixedModels, BenchmarkTools;
+
+rds = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv",  "1fptime.csv"); types = [String, String, Float64, Float64]) |> DataFrame

MixedModels

fm = @formula(response ~ 1 + factor*time + (1 + time|subject&factor))
+@benchmark mm = fit($MixedModel, $fm, $rds, REML=true) seconds = 15
BenchmarkTools.Trial: 10000 samples with 1 evaluation.
+ Range (min … max):  1.140 ms …  10.909 ms  ┊ GC (min … max): 0.00% … 86.12%
+ Time  (median):     1.175 ms               ┊ GC (median):    0.00%
+ Time  (mean ± σ):   1.215 ms ± 563.839 μs  ┊ GC (mean ± σ):  2.78% ±  5.31%
+
+          ▄██▆▃▁          
+  ▁▁▁▂▂▃▅▇██████▇▅▄▃▃▂▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▂
+  1.14 ms         Histogram: frequency by time        1.33 ms <
+
+ Memory estimate: 409.52 KiB, allocs estimate: 6130.

Metida

lmm = LMM(@formula(response ~1 + factor*time), rds;
+random = VarEffect(@covstr(1 + time|subject&factor), CSH),
+)
+@benchmark fit!($lmm, hes = false) seconds = 15
  • Metida v0.12.0
BenchmarkTools.Trial: 1316 samples with 1 evaluation.
+ Range (min … max):   5.394 ms … 186.301 ms  ┊ GC (min … max):  0.00% … 95.48%
+ Time  (median):      7.648 ms               ┊ GC (median):     0.00%
+ Time  (mean ± σ):   11.391 ms ±  19.135 ms  ┊ GC (mean ± σ):  32.70% ± 17.73%
+
+  ██▆
+  ███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▄▁▆▅▄▄▅▄▅▄▄▆▄▆▄▄▄ █
+  5.39 ms       Histogram: log(frequency) by time       112 ms <
+
+ Memory estimate: 22.63 MiB, allocs estimate: 37224.
  • MetidaNLopt v0.4.0 (Metida 0.12.0)
@benchmark fit!($lmm, solver = :nlopt, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
BenchmarkTools.Trial: 274 samples with 1 evaluation.
+ Range (min … max):  47.312 ms … 153.284 ms  ┊ GC (min … max):  0.00% … 67.58%
+ Time  (median):     49.064 ms               ┊ GC (median):     0.00%
+ Time  (mean ± σ):   54.854 ms ±  19.559 ms  ┊ GC (mean ± σ):  10.55% ± 15.98%
+
+  ▅█    
+  ███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆▅▁▁▄▁▁▄▁▄▁▁▄▄▅▁▁▁▁▁▁▁▁▁▁▁▄▁▄▄▁▅▄▁▅▄▄ ▅
+  47.3 ms       Histogram: log(frequency) by time       135 ms <
+
+ Memory estimate: 35.45 MiB, allocs estimate: 301141.
  • MetidaCu v0.4.0 (Metida 0.4)
@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
BenchmarkTools.Trial: 42 samples with 1 evaluation.
+ Range (min … max):  347.642 ms … 461.104 ms  ┊ GC (min … max): 0.00% … 4.12%
+ Time  (median):     350.603 ms               ┊ GC (median):    0.00%
+ Time  (mean ± σ):   358.874 ms ±  23.939 ms  ┊ GC (mean ± σ):  0.27% ± 0.98%
+
+  ▁█     
+  ███▁▃▁▁▁▁▁▁▁▁▅▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▃ ▁
+  348 ms           Histogram: frequency by time          461 ms <
+
+ Memory estimate: 6.86 MiB, allocs estimate: 115020.

Cancer data:

File: hdp.csv , 8525 observations.

Model 1: maximum 377 observation-per-subject (35 subjects)

lmm = Metida.LMM(@formula(tumorsize ~ 1 + CancerStage), hdp;
+random = Metida.VarEffect(Metida.@covstr(1|HID), Metida.DIAG),
+)
  • Metida v0.12.0
@benchmark  Metida.fit!(lmm, hes = false)
BenchmarkTools.Trial: 1 sample with 1 evaluation.
+ Single result which took 6.519 s (1.38% GC) to evaluate,
+ with a memory estimate of 2.33 GiB, over 41654 allocations.
  • MetidaNLopt v0.4.0 (Metida v0.12.0)
@benchmark fit!($lmm, solver = :nlopt, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
BenchmarkTools.Trial: 25 samples with 1 evaluation.
+ Range (min … max):  555.136 ms … 700.605 ms  ┊ GC (min … max): 0.00% … 16.09%
+ Time  (median):     605.713 ms               ┊ GC (median):    7.98%
+ Time  (mean ± σ):   608.768 ms ±  27.220 ms  ┊ GC (mean ± σ):  7.62% ±  3.82%
+
+                    █    ▂
+  ▅▁▁▅▁▁▁▁▁▅▁▁▁▁▁▅▁▅█▅▅▅▅█▅▁▁▅▅▁▅█▁▁▅▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▅ ▁
+  555 ms           Histogram: frequency by time          701 ms <
+
+ Memory estimate: 921.54 MiB, allocs estimate: 62203.
  • MetidaCu v0.4.0 (Metida 0.12.0)
@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
BenchmarkTools.Trial: 5 samples with 1 evaluation.
+ Range (min … max):  3.482 s …   3.650 s  ┊ GC (min … max): 0.00% … 2.73%
+ Time  (median):     3.496 s              ┊ GC (median):    0.00%
+ Time  (mean ± σ):   3.547 s ± 77.924 ms  ┊ GC (mean ± σ):  1.07% ± 1.43%
+
+  ▁   █                                       ▁           ▁
+  █▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁█ ▁
+  3.48 s         Histogram: frequency by time        3.65 s <
+
+ Memory estimate: 913.96 MiB, allocs estimate: 410438.

Model 2: maximum 875 observation-per-subject (20 subjects)

lmm = Metida.LMM(@formula(tumorsize ~ 1 + CancerStage), hdp;
+random = Metida.VarEffect(Metida.@covstr(1|Experience), Metida.SI),
+)
  • MetidaNLopt v0.2.0 (Metida 0.5.1)
@benchmark fit!($lmm, solver = :nlopt, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 1
BenchmarkTools.Trial: 9 samples with 1 evaluation.
+ Range (min … max):  1.651 s …    1.952 s  ┊ GC (min … max): 3.10% … 4.27%
+ Time  (median):     1.797 s               ┊ GC (median):    4.15%
+ Time  (mean ± σ):   1.815 s ± 101.277 ms  ┊ GC (mean ± σ):  3.83% ± 0.82%
+
+  ▁               ▁  ▁ ▁      ▁            ▁ ▁             █
+  █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁█▁█▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁█▁█▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
+  1.65 s         Histogram: frequency by time         1.95 s <
+
+ Memory estimate: 2.47 GiB, allocs estimate: 57729.
  • MetidaCu v0.2.0 (Metida 0.5.1)
@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
BenchmarkTools.Trial: 3 samples with 1 evaluation.
+ Range (min … max):  5.137 s …   5.216 s  ┊ GC (min … max): 1.03% … 2.19%
+ Time  (median):     5.166 s              ┊ GC (median):    1.43%
+ Time  (mean ± σ):   5.173 s ± 39.699 ms  ┊ GC (mean ± σ):  1.55% ± 0.59%
+
+  █                   █                                   █
+  █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
+  5.14 s         Histogram: frequency by time        5.22 s <
+
+ Memory estimate: 2.46 GiB, allocs estimate: 372716.

Model 3: maximum 1437 observation-per-subject (10 subjects)

lmm = Metida.LMM(@formula(tumorsize ~ 1 + CancerStage), hdp;
+random = Metida.VarEffect(Metida.@covstr(1|ntumors), Metida.SI),
+)
  • MetidaNLopt v0.4.0 (Metida 0.12.0)
@benchmark fit!($lmm, solver = :nlopt, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
BenchmarkTools.Trial: 4 samples with 1 evaluation.
+ Range (min … max):  4.305 s …   4.476 s  ┊ GC (min … max): 2.49% … 3.52%
+ Time  (median):     4.372 s              ┊ GC (median):    3.23%
+ Time  (mean ± σ):   4.381 s ± 80.689 ms  ┊ GC (mean ± σ):  3.12% ± 0.47%
+
+  █     █                               █                 █
+  █▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
+  4.3 s          Histogram: frequency by time        4.48 s <
+
+ Memory estimate: 3.83 GiB, allocs estimate: 28068.
  • MetidaCu v0.4.0 (Metida 0.12.0)
@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
BenchmarkTools.Trial: 4 samples with 1 evaluation.
+ Range (min … max):  4.928 s …   4.970 s  ┊ GC (min … max): 1.83% … 1.78%
+ Time  (median):     4.957 s              ┊ GC (median):    1.85%
+ Time  (mean ± σ):   4.953 s ± 18.996 ms  ┊ GC (mean ± σ):  1.90% ± 0.15%
+
+  █                          █                       █    █
+  █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁█ ▁
+  4.93 s         Histogram: frequency by time        4.97 s <
+
+ Memory estimate: 3.39 GiB, allocs estimate: 149182.

Model 4: maximum 3409 observation-per-subject (4 subjects)

  • MetidaCu v0.4.0 (Metida 0.12.0)
lmm = Metida.LMM(@formula(tumorsize ~ 1 + CancerStage), hdp;
+random = Metida.VarEffect(Metida.@covstr(1|CancerStage), Metida.SI),
+)
@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
julia> @benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15
+BenchmarkTools.Trial: 3 samples with 1 evaluation.
+ Range (min … max):  7.343 s …   7.372 s  ┊ GC (min … max): 1.62% … 1.48%
+ Time  (median):     7.346 s              ┊ GC (median):    1.49%
+ Time  (mean ± σ):   7.354 s ± 15.657 ms  ┊ GC (mean ± σ):  1.50% ± 0.11%
+
+  █    █                                                  █
+  █▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
+  7.34 s         Histogram: frequency by time        7.37 s <
+
+ Memory estimate: 5.04 GiB, allocs estimate: 46549.

Conclusion

MixedModels.jl faster than Metida.jl in similar cases, but Metida.jl can be used with different covariance structures for random and repeated effects. MetidaNLopt have better performance but not estimate Hessian matrix of REML. MetidaCu have advantage only for big observation-pes-subject number.

diff --git a/previews/PR40/bioequivalence/index.html b/previews/PR40/bioequivalence/index.html new file mode 100644 index 00000000..47010dd1 --- /dev/null +++ b/previews/PR40/bioequivalence/index.html @@ -0,0 +1,21 @@ + +Bioequivalence · Metida.jl

Type B

using Metida, CSV, DataFrames, CategoricalArrays
+# example data
+df = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv", "df0.csv")) |> DataFrame;
+transform!(df, :subject => categorical, renamecols=false)
+transform!(df, :period => categorical, renamecols=false)
+transform!(df, :sequence => categorical, renamecols=false)
+transform!(df, :formulation => categorical, renamecols=false)
+
+lmm = LMM(@formula(var~sequence+period+formulation), df;
+random = VarEffect(@covstr(1|subject), SI),
+)
+fit!(lmm)
+ci = confint(lmm)[end]
+exp.(ci) .* 100.0
(76.9015145964994, 110.99459058562884)

Type C

lmm =LMM(@formula(var~sequence+period+formulation), df;
+random = VarEffect(@covstr(formulation|subject), CSH),
+repeated = VarEffect(@covstr(formulation|subject), DIAG),
+)
+fit!(lmm)
+ci = confint(lmm)[end]
+exp.(ci) .* 100.0
(73.66277770520527, 115.87469810346369)

Reference

diff --git a/previews/PR40/boot/index.html b/previews/PR40/boot/index.html new file mode 100644 index 00000000..01aa437d --- /dev/null +++ b/previews/PR40/boot/index.html @@ -0,0 +1,7 @@ + +Bootstrap · Metida.jl

Parametric bootstrap

Metida.bootstrap

Metida.bootstrapFunction
bootstrap(lmm::LMM; double = false, n = 100, verbose = true, init = lmm.result.theta, rng = default_rng())

Parametric bootstrap.

Warning

Experimental: API not stable

  • double - use double approach (default - false);
  • n - number of bootstrap samples;
  • verbose - show progress bar;
  • init - initial values for lmm;
  • rng - random number generator.

Parametric bootstrap based on generating random responce vector from known distribution, that given from fitted LMM model.

  • Simple bootstrap:

For one-stage bootstrap variance parameters and coefficients simulated in one step.

  • Double bootstrap:

For double bootstrap (two-tage) variance parameters simulated in first cycle, than they used for simulating coefficients and var(β) on stage two. On second stage parent-model β used for simulations.

lmm = Metida.LMM(@formula(var~sequence+period+formulation), df0m;
+random = Metida.VarEffect(Metida.@covstr(formulation|subject), Metida.CSH),
+)
+Metida.fit!(lmm)
+bt = Metida.bootstrap(lmm; n = 1000, double = true, rng = MersenneTwister(1234))
+confint(bt)

See also: confint, Metida.miboot, Metida.nvar, Metida.tvar, Metida.straps, Metida.sdstraps, Metida.thetastraps

source

Metida.nvar

Metida.nvarFunction
nvar(br::BootstrapResult)

Number of coefficient in the model.

source

Metida.tvar

Metida.tvarFunction
tvar(br::BootstrapResult) = length(br.theta)

Number of theta parameters in the model.

source

Metida.straps

Metida.strapsFunction
straps(br::BootstrapResult, idx::Int)

Return coefficients vector.

source

Metida.sdstraps

Metida.thetastraps

diff --git a/previews/PR40/cuda/index.html b/previews/PR40/cuda/index.html new file mode 100644 index 00000000..57baefbe --- /dev/null +++ b/previews/PR40/cuda/index.html @@ -0,0 +1,8 @@ + +CUDA · Metida.jl

CUDA

Use CuBLAS & CuSOLVER for REML calculation. Optimization with NLopt.jl.

Install:

using Pkg
+Pkg.add("MetidaCu")

Using:

using Metida, MetidaCu, StatsBase, StatsModels, CSV, DataFrames
+df = CSV.File(dirname(pathof(Metida))*"\\..\\test\\csv\\df0.csv") |> DataFrame
+lmm = LMM(@formula(var ~ sequence + period + formulation), df;
+random   = VarEffect(@covstr(formulation|subject), CSH),
+repeated = VarEffect(@covstr(formulation|subject), VC))
+fit!(lmm; solver = :cuda)
diff --git a/previews/PR40/custom/index.html b/previews/PR40/custom/index.html new file mode 100644 index 00000000..5b404d2b --- /dev/null +++ b/previews/PR40/custom/index.html @@ -0,0 +1,113 @@ + +Custom structures · Metida.jl

Custom structures

To make your own covariance structure first you should make struct that <: AbstractCovarianceType:

Example:

struct YourCovarianceStruct <: AbstractCovarianceType end

You also can specify additional field if you need to use them inside gmat!/rmat! functions.

Then you can make function for construction random effect matrix (gmat!) and repeated effect (rmat!). Only upper triangular can be updated.

Function gmat! have 3 arguments: mx - zero matrix, θ - theta vector for this effect, and your custom structure object.

Next this function used to make "random" part of variance-covariance matrix: V' = Z * G * Z'

function Metida.gmat!(mx, θ, ::YourCovarianceStruct)
+    @inbounds @simd for i = 1:size(mx, 1)
+        mx[i, i] = θ[i] ^ 2
+    end
+    nothing
+end

Function rmat! have 4 arguments and add repeated effect to V': V = V' + R (so V = Z * G * Z' + R), mx - V' matrix, θ - theta vector for this effect, rz - subject effect matrix, ct - your covariance type object. For example, rmat! for Heterogeneous Toeplitz Parameterized structure is specified bellow (TOEPHP_ <: AbstractCovarianceType).

function Metida.rmat!(mx, θ, rz, ct::TOEPHP_)
+    l     = size(rz, 2)
+    vec   = rz * (θ[1:l])
+    s   = size(mx, 1)
+    if s > 1 && ct.p > 1
+        for m = 1:s - 1
+            for n = m + 1:(m + ct.p - 1 > s ? s : m + ct.p - 1)
+                @inbounds  mx[m, n] += vec[m] * vec[n] * θ[n - m + l]
+            end
+        end
+    end
+    @inbounds @simd for m = 1:s
+        mx[m, m] += vec[m] * vec[m]
+    end
+    nothing
+end

One more function you shoud make is covstrparam, this function need to know how many parameters included in theta vector for optimization. Function returns number of variance parameters and rho parameters for this structure. Where t - number of columns in individual Z matrix for random effect or number of columns in repeated effect matrix (rZ).

Example for Heterogeneous Autoregressive and Heterogeneous Compound Symmetry structures:

function Metida.covstrparam(ct::Union{ARH_, CSH_}, t::Int)::Tuple{Int, Int}
+    return (t, 1)
+end

For better printing you can add:

function Metida.rcoefnames(s, t, ct::YourCovarianceStruct)
+    return ["σ² ", "γ ", "ρ "]
+end

Where, s - effect schema, t - number of parameters, this function returns names for your covariance structure for printing in LMM output.

Add this method for better printing:

function Base.show(io::IO, ct::YourCovarianceStruct)
+    print(io, "YourCovarianceStruct")
+end

Then just make model and fit it:

lmm = Metida.LMM(@formula(response ~ 1 + factor*time), ftdf2;
+  random = Metida.VarEffect(Metida.@covstr(factor|subject&factor), YourCovarianceStruct()),
+  repeated = Metida.VarEffect(Metida.@covstr(1|subject&factor), YourCovarianceStruct()),
+  )
+  Metida.fit!(lmm)

Example:

using Metida, DataFrames, CSV, CategoricalArrays
+
+ftdf = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv",  "1fptime.csv"); types = [String, String, Float64, Float64]) |> DataFrame
+df0 = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv",  "df0.csv"); types = [String, String, String, String,Float64, Float64]) |> DataFrame
+
+struct CustomCovarianceStructure <: Metida.AbstractCovarianceType end
+function Metida.covstrparam(ct::CustomCovarianceStructure, t::Int)::Tuple{Int, Int}
+    return (t, 1)
+end
+function Metida.gmat!(mx, θ, ct::CustomCovarianceStructure)
+    s = size(mx, 1)
+    @inbounds @simd for m = 1:s
+        mx[m, m] = θ[m]
+    end
+    if s > 1
+        for m = 1:s - 1
+            @inbounds @simd for n = m + 1:s
+                mx[m, n] = mx[m, m] * mx[n, n] * θ[end]
+            end
+        end
+    end
+    @inbounds @simd for m = 1:s
+        mx[m, m] = mx[m, m] * mx[m, m]
+    end
+    nothing
+end
+
+lmm = Metida.LMM(@formula(response ~1 + factor*time), ftdf;
+random = Metida.VarEffect(Metida.@covstr(1 + time|subject&factor), CustomCovarianceStructure()),
+)
+Metida.fit!(lmm)
+
+# for R matrix
+
+function Metida.rmat!(mx, θ, rz, ::CustomCovarianceStructure)
+    vec = Metida.tmul_unsafe(rz, θ)
+    rn    = size(mx, 1)
+    if rn > 1
+        for m = 1:rn - 1
+            @inbounds @simd for n = m + 1:rn
+                mx[m, n] += vec[m] * vec[n] * θ[end]
+            end
+        end
+    end
+        @inbounds  for m ∈ axes(mx, 1)
+        mx[m, m] += vec[m] * vec[m]
+    end
+    nothing
+end
+
+lmm = Metida.LMM(@formula(var~sequence+period+formulation), df0;
+repeated = Metida.VarEffect(Metida.@covstr(period|subject), CustomCovarianceStructure()),
+)
+Metida.fit!(lmm)
Linear Mixed Model: var ~ sequence + period + formulation
+Random 1: 
+   No
+Repeated: 
+    Model: period|subject
+    Type: CustomCovarianceStructure (5)
+Blocks: 5, Maximum block size: 4
+Status: converged (No Errors)
+    -2 logREML: 8.7401    BIC: 22.603
+
+    Fixed-effects parameters:
+───────────────────────────────────────────────────────
+                     Coef.  Std. Error      z  Pr(>|z|)
+───────────────────────────────────────────────────────
+(Intercept)      1.31285     0.28779     4.56    <1e-05
+sequence: 2      0.283193    0.328706    0.86    0.3889
+period: 2        0.152412    0.0881943   1.73    0.0840
+period: 3        0.08        0.136257    0.59    0.5571
+period: 4        0.152412    0.0986418   1.55    0.1223
+formulation: 2  -0.0379392   0.0717112  -0.53    0.5968
+───────────────────────────────────────────────────────
+    Variance components:
+    θ vector: [0.43779, 0.426869, 0.630382, 0.49783, 0.899017]
+  Residual   Val    var   0.19166
+  Residual   Val    var   0.182217
+  Residual   Val    var   0.397381
+  Residual   Val    var   0.247835
+  Residual   Val    rho   0.899017
+
diff --git a/previews/PR40/details/index.html b/previews/PR40/details/index.html new file mode 100644 index 00000000..496673f5 --- /dev/null +++ b/previews/PR40/details/index.html @@ -0,0 +1,13 @@ + +Details · Metida.jl

Details

The solution to the mixed model equations is a maximum likelihood estimate when the distribution of the errors is normal. Maximum likelihood estimates are based on the probability model for the observed responses. In the probability model the distribution of the responses is expressed as a function of one or more parameters. PROC MIXED in SAS used restricted maximum likelihood (REML) approach by default. REML equation can be described with following (Henderson, 1959;Laird et.al. 1982; Jennrich 1986; Lindstrom & Bates, 1988; Gurka et.al 2006).

Metida.jl using optimization with Optim.jl package (Newton's Method) by default. Because variance have only positive values and ρ is limited as -1 ≤ ρ ≤ 1 in Metida.jl "link" function is used. Exponential values is optimizing in variance part and ρ is linked with sigmoid function. All steps perform with differentiable functions with forward automatic differentiation using ForwardDiff.jl package. Also MetidaNLopt.jl and MetidaCu.jl available for optimization with NLopt.jl and solving on CUDA GPU. Sweep algorithm using for variance-covariance matrix inversing in REML calculation.

Model

In matrix notation a mixed effect model can be represented as:

\[y = X\beta + Zu + \epsilon\]

V

\[V_{i} = Z_{i}GZ_i'+R_{i}\]

Henderson's «mixed model equations»

\[\begin{pmatrix}X'R^{-1}X&X'R^{-1}Z\\Z'R^{-1}X&Z'R^{-1}Z+G_{-1}\end{pmatrix} \begin{pmatrix}\widehat{\beta} \\ \widehat{u} \end{pmatrix}= \begin{pmatrix}X'R^{-1}y\\Z'R^{-1}y\end{pmatrix}\]

REML

\[logREML(\theta,\beta) = -\frac{N-p}{2} - \frac{1}{2}\sum_{i=1}^nlog|V_{\theta, i}|- + +-\frac{1}{2}log|\sum_{i=1}^nX_i'V_{\theta, i}^{-1}X_i|-\frac{1}{2}\sum_{i=1}^n(y_i - X_{i}\beta)'V_{\theta, i}^{-1}(y_i - X_{i}\beta)\]

Actually `$L(\theta) = -2logREML = L_1(\theta) + L_2(\theta) + L_3(\theta) + c$ used for optimization, where:

\[L_1(\theta) = \frac{1}{2}\sum_{i=1}^nlog|V_{i}| \\ + +L_2(\theta) = \frac{1}{2}log|\sum_{i=1}^nX_i'V_i^{-1}X_i| \\ + +L_3(\theta) = \frac{1}{2}\sum_{i=1}^n(y_i - X_{i}\beta)'V_i^{-1}(y_i - X_{i}\beta)\]

\[\nabla\mathcal{L}(\theta) = \nabla L_1(\theta) + \nabla L_2(\theta) + \nabla L_3(\theta)\]

\[\mathcal{H}\mathcal{L}(\theta) = \mathcal{H}L_1(\theta) + \mathcal{H}L_2(\theta) + \mathcal{H} L_3(\theta)\]

Initial step

Initial (first) step before optimization may be done:

\[\theta_{n+1} = \theta_{n} - \nabla\mathcal{L}(\theta_{n}) * \mathcal{H}^{'}(\theta_{n}) , where \\ + +\mathcal{H}^{'}(\theta_{n}) = - \mathcal{H}L_1(\theta_{n}) + \mathcal{H} L_3(\theta) , if score \\ + +\mathcal{H}^{'}(\theta_{n}) = \mathcal{H} L_3(\theta_{n}) , if ai +\]

Beta (β)

\[\beta = {(\sum_{i=1}^n X_{i}'V_i^{-1}X_{i})}^{-1}(\sum_{i=1}^n X_{i}'V_i^{-1}y_{i})\]

F

\[F = \frac{\beta'L'(LCL')^{-1}L\beta}{rank(LCL')}\]

Variance covariance matrix of β

\[C = (\sum_{i=1}^{n} X_i'V_i^{-1}X_i)^{-1}\]

Sweep

Details see: https://github.com/joshday/SweepOperator.jl

Apply special function to some part of theta vector.

Variance (var) part

Applied only to variance part.

Exponential function (:exp)

Exponential function applied.

\[ f(x) = exp(x)\]

\[ f^{-1}(x) = log(x)\]

Square function (:sq)

\[ f(x) = x^2\]

\[ f^{-1}(x) = sqrt(x)\]

Identity function (:identity)

\[ f(x) = x\]

\[ f^{-1}(x) = x\]

Covariance (rho) part

Applied only to covariance part.

Sigmoid function (:sigm)

\[ f(x) = 1 / (1 + exp(- x * k)) * 2 - 1\]

\[ f^{-1}(x) = -log(1 / (x + 1) * 2 - 1) / k\]

where $k = 0.1$

Arctangent function (:atan)

\[ f(x) = atan(x)/pi*2\]

\[ f^{-1}(x) = tan(x*pi/2)\]

"Square" sigmoid function (:sqsigm)

\[ f(x) = x / \sqrt{1 + (x)^2}\]

\[ f^{-1}(x) = sign(x) * \sqrt{x^2/(1 - x^2)}\]

Positive sigmoid function (:psigm)

\[ f(x) = 1/(1 + exp(-x / 2))\]

\[ f^{-1}(x) = -log(1/x - 1) * 2\]

Additional parameters (theta) part

No function applied.

diff --git a/previews/PR40/examples/index.html b/previews/PR40/examples/index.html new file mode 100644 index 00000000..96861f7f --- /dev/null +++ b/previews/PR40/examples/index.html @@ -0,0 +1,235 @@ + +Examples · Metida.jl

Example 1 - Continuous and categorical predictors

using Metida, CSV, DataFrames, CategoricalArrays, MixedModels;
+
+rds = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv",  "1fptime.csv"); types = [String, String, Float64, Float64]) |> DataFrame

Metida result:

lmm = LMM(@formula(response ~1 + factor*time), rds;
+random = VarEffect(@covstr(1 + time|subject&factor), CSH),
+)
+fit!(lmm)
Linear Mixed Model: response ~ 1 + factor + time + factor & time
+Random 1: 
+    Model: :(1 + time)|:(subject & factor)
+    Type: CSH (3), Subjects: 40
+Repeated: 
+    Residual only
+Blocks: 40, Maximum block size: 10
+Status: converged (No Errors)
+    -2 logREML: 1300.18    BIC: 1324.12
+
+    Fixed-effects parameters:
+──────────────────────────────────────────────────────────
+                        Coef.  Std. Error      z  Pr(>|z|)
+──────────────────────────────────────────────────────────
+(Intercept)         22.1331     0.304339   72.73    <1e-99
+factor: 1.0          2.00049    0.430401    4.65    <1e-05
+time                 1.11853    0.0264038  42.36    <1e-99
+factor: 1.0 & time   0.404971   0.0373406  10.85    <1e-26
+──────────────────────────────────────────────────────────
+    Variance components:
+    θ vector: [1.2401, 0.101122, -0.0427208, 0.985061]
+  Random 1   σ² (Intercept)   var   1.53785
+  Random 1   σ² time          var   0.0102257
+  Random 1   ρ                rho   -0.0427208
+  Residual   σ²               var   0.970345
+

MixedModels result:

fm = @formula(response ~ 1 + factor*time + (1 + time|subject&factor))
+mm = fit(MixedModel, fm, rds, REML=true)

Minimizing 2    Time: 0:00:00 ( 0.20  s/it)
+  objective:  1426.9231858044589
+

Minimizing 68    Time: 0:00:00 ( 6.54 ms/it)
+Linear mixed model fit by REML
+ response ~ 1 + factor + time + factor & time + (1 + time | subject & factor)
+ REML criterion at convergence: 1300.180759818896
+
+Variance components:
+                    Column   Variance Std.Dev.   Corr.
+subject & factor (Intercept)  1.537850 1.240101
+                 time         0.010226 0.101122 -0.04
+Residual                      0.970345 0.985061
+ Number of obs: 400; levels of grouping factors: 40
+
+  Fixed-effects parameters:
+──────────────────────────────────────────────────────────
+                        Coef.  Std. Error      z  Pr(>|z|)
+──────────────────────────────────────────────────────────
+(Intercept)         22.1331     0.304339   72.73    <1e-99
+factor: 1.0          2.00049    0.4304      4.65    <1e-05
+time                 1.11853    0.0264037  42.36    <1e-99
+factor: 1.0 & time   0.404971   0.0373405  10.85    <1e-26
+──────────────────────────────────────────────────────────

Example 2 - Two random factors (Penicillin data)

Metida:

df          = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv", "Penicillin.csv"); types = [String, Float64, String, String]) |> DataFrame
+df.diameter = float.(df.diameter)
+
+lmm = LMM(@formula(diameter ~ 1), df;
+random = [VarEffect(@covstr(1|plate), SI), VarEffect(@covstr(1|sample), SI)]
+)
+fit!(lmm)
Linear Mixed Model: diameter ~ 1
+Random 1: 
+    Model: 1|plate
+    Type: SI (1), Subjects: 24
+Random 2: 
+    Model: 1|sample
+    Type: SI (1), Subjects: 6
+Repeated: 
+    Residual only
+Blocks: 1, Maximum block size: 144
+Status: converged (No Errors)
+    -2 logREML: 330.861    BIC: 345.749
+
+    Fixed-effects parameters:
+─────────────────────────────────────────────────
+               Coef.  Std. Error      z  Pr(>|z|)
+─────────────────────────────────────────────────
+(Intercept)  22.9722    0.808573  28.41    <1e-99
+─────────────────────────────────────────────────
+    Variance components:
+    θ vector: [0.846704, 1.93156, 0.549923]
+  Random 1   σ²    var   0.716908
+  Random 2   σ²    var   3.73092
+  Residual   σ²    var   0.302415
+

MixedModels:

fm2 = @formula(diameter ~ 1 + (1|plate) + (1|sample))
+mm = fit(MixedModel, fm2, df, REML=true)

Minimizing 2    Time: 0:00:00 ( 0.28  s/it)
+  objective:  366.5302937135882
+

Minimizing 46    Time: 0:00:00 (12.27 ms/it)
+Linear mixed model fit by REML
+ diameter ~ 1 + (1 | plate) + (1 | sample)
+ REML criterion at convergence: 330.86058899096145
+
+Variance components:
+            Column   Variance Std.Dev.
+plate    (Intercept)  0.716908 0.846704
+sample   (Intercept)  3.730907 1.931556
+Residual              0.302415 0.549923
+ Number of obs: 144; levels of grouping factors: 24, 6
+
+  Fixed-effects parameters:
+─────────────────────────────────────────────────
+               Coef.  Std. Error      z  Pr(>|z|)
+─────────────────────────────────────────────────
+(Intercept)  22.9722    0.808572  28.41    <1e-99
+─────────────────────────────────────────────────

Example 3 - Repeated ARMA/AR/ARH

rds = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv",  "1freparma.csv"); types = [String, String, Float64, Float64]) |> DataFrame

ARMA:

lmm = LMM(@formula(response ~ 1 + factor*time), rds;
+random = VarEffect(@covstr(factor|subject&factor), DIAG),
+repeated = VarEffect(@covstr(1|subject&factor), ARMA),
+)
+fit!(lmm)
Linear Mixed Model: response ~ 1 + factor + time + factor & time
+Random 1: 
+    Model: factor|:(subject & factor)
+    Type: DIAG (2), Subjects: 24
+Repeated: 
+    Model: 1|:(subject & factor)
+    Type: ARMA (3)
+Blocks: 24, Maximum block size: 10
+Status: converged See warnings in log.
+    -2 logREML: 348.11    BIC: 375.451
+
+    Fixed-effects parameters:
+──────────────────────────────────────────────────────────
+                        Coef.  Std. Error      z  Pr(>|z|)
+──────────────────────────────────────────────────────────
+(Intercept)         44.3198     0.718497   61.68    <1e-99
+factor: 1.0          5.60925    0.979922    5.72    <1e-07
+time                 0.514843   0.0316349  16.27    <1e-58
+factor: 1.0 & time   0.267151   0.0447385   5.97    <1e-08
+──────────────────────────────────────────────────────────
+    Variance components:
+    θ vector: [2.39579, 2.20751, 0.773677, 0.621233, -0.814062]
+  Random 1   σ² factor: 0.0   var   5.73981
+  Random 1   σ² factor: 1.0   var   4.8731
+  Residual   σ²               var   0.598576
+  Residual   γ                rho   0.621233
+  Residual   ρ                rho   -0.814062
+

AR:

lmm = Metida.LMM(@formula(response ~ 1 + factor*time), rds;
+random = VarEffect(@covstr(factor|subject&factor), DIAG),
+repeated = VarEffect(@covstr(1|subject&factor), AR),
+)
+fit!(lmm)
Linear Mixed Model: response ~ 1 + factor + time + factor & time
+Random 1: 
+    Model: factor|:(subject & factor)
+    Type: DIAG (2), Subjects: 24
+Repeated: 
+    Model: 1|:(subject & factor)
+    Type: AR (2)
+Blocks: 24, Maximum block size: 10
+Status: converged (No Errors)
+    -2 logREML: 710.096    BIC: 731.968
+
+    Fixed-effects parameters:
+──────────────────────────────────────────────────────────
+                        Coef.  Std. Error      z  Pr(>|z|)
+──────────────────────────────────────────────────────────
+(Intercept)         44.3915     1.34686    32.96    <1e-99
+factor: 1.0          5.39757    1.60271     3.37    0.0008
+time                 0.508075   0.0456524  11.13    <1e-28
+factor: 1.0 & time   0.290317   0.0645622   4.50    <1e-05
+──────────────────────────────────────────────────────────
+    Variance components:
+    θ vector: [4.54797, 2.82342, 1.05771, 0.576979]
+  Random 1   σ² factor: 0.0   var   20.684
+  Random 1   σ² factor: 1.0   var   7.9717
+  Residual   σ²               var   1.11875
+  Residual   ρ                rho   0.576979
+

ARH:

lmm = Metida.LMM(@formula(response ~ 1 + factor*time), rds;
+random = VarEffect(@covstr(factor|subject&factor), DIAG),
+repeated = VarEffect(@covstr(1|subject&factor), ARH),
+)
+fit!(lmm)
Linear Mixed Model: response ~ 1 + factor + time + factor & time
+Random 1: 
+    Model: factor|:(subject & factor)
+    Type: DIAG (2), Subjects: 24
+Repeated: 
+    Model: 1|:(subject & factor)
+    Type: ARH (2)
+Blocks: 24, Maximum block size: 10
+Status: converged (No Errors)
+    -2 logREML: 710.096    BIC: 731.968
+
+    Fixed-effects parameters:
+──────────────────────────────────────────────────────────
+                        Coef.  Std. Error      z  Pr(>|z|)
+──────────────────────────────────────────────────────────
+(Intercept)         44.3915     1.34686    32.96    <1e-99
+factor: 1.0          5.39757    1.60271     3.37    0.0008
+time                 0.508075   0.0456524  11.13    <1e-28
+factor: 1.0 & time   0.290317   0.0645622   4.50    <1e-05
+──────────────────────────────────────────────────────────
+    Variance components:
+    θ vector: [4.54797, 2.82342, 1.05771, 0.576979]
+  Random 1   σ² factor: 0.0   var   20.684
+  Random 1   σ² factor: 1.0   var   7.9717
+  Residual   σ² (Intercept)   var   1.11875
+  Residual   ρ                rho   0.576979
+

Example 4 - SAS relation

Model 1

df0 = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv", "df0.csv")) |> DataFrame
+
+lmm = LMM(@formula(var ~ sequence + period + formulation), df0;
+random   = VarEffect(@covstr(formulation|subject), CSH),
+repeated = VarEffect(@covstr(formulation|subject), DIAG),
+)
+fit!(lmm)

SAS code:

PROC MIXED data=df0;
+CLASSES subject sequence period formulation;
+MODEL  var = sequence period formulation/ DDFM=SATTERTH s;
+RANDOM  formulation/TYPE=CSH SUB=subject G V;
+REPEATED/GRP=formulation SUB=subject R;
+RUN;

Model 2

lmm = LMM(
+    @formula(var ~ sequence + period + formulation), df0;
+    random   = VarEffect(@covstr(formulation|subject), SI),
+    repeated = VarEffect(@covstr(formulation|subject), DIAG),
+)
+fit!(lmm)

SAS code:

PROC MIXED data=df0;
+CLASSES subject sequence period formulation;
+MODEL  var = sequence period formulation/ DDFM=SATTERTH s;
+RANDOM  formulation/TYPE=VC SUB=subject G V;
+REPEATED/GRP=formulation SUB=subject R;
+RUN;

Model 3

lmm = LMM(@formula(var ~ sequence + period + formulation), df0;
+    random = VarEffect(@covstr(subject|1), SI)
+    )
+fit!(lmm)

SAS code:

PROC MIXED data=df0;
+CLASSES subject sequence period formulation;
+MODEL  var = sequence period formulation/ DDFM=SATTERTH s;
+RANDOM  subject/TYPE=VC G V;
+RUN;

Example 5 - Working with Effects.jl

using Effects, StatsModels
+
+lmm = LMM(@formula(var ~ sequence + period + formulation), df0;
+    random = VarEffect(@covstr(subject|1), SI)
+    )
+fit!(lmm)
+
+table_model = StatsModels.TableRegressionModel(lmm, lmm.mf, lmm.mm)
+
+emmeans(tm)
+
+effects(Dict(:period => ["1", "2", "3", "4"]), tm)
diff --git a/previews/PR40/faq/index.html b/previews/PR40/faq/index.html new file mode 100644 index 00000000..f41155d1 --- /dev/null +++ b/previews/PR40/faq/index.html @@ -0,0 +1,2 @@ + +F.A.Q. · Metida.jl
  • Q1: Why it working so slow?

Metida.jl work with small and medium datasets. Model fitting is based on variance-covariance matrix inversion at each iteration. That's why if you have big blocks it will work slow. If you have big blocks you can try to use MetidaCu.jl for optimization on CUDA GPU. You can use MetidaNLopt.jl for better performance, but you will not get Hessian matrix at the end of optimization. Also if you don't need to specify repeated-measures (R) covariance part and use SI, DIAG, CS, CSH covariance types for random-effect part (G) you can use MixedModels.jl - it work much faster.

  • Q2: What blocks is?

Blocks depend on subjects. If you have only one random effect block is equivalent to subject. If you have more than one random effect blocks will be made as non-crossing combination for all subject variables.

  • Q3: Why model does not converge?

Optimization of REML function can depend on many factors. In some cases covariance parameters can be correlated (ill-conditioned/singular covariance matrix). So hypersurface in the maximum area can be very flat, that why the result can be different for different starting values (or for different software even REML is near equal). Also, some models can not be fitted for specific data at all. If the model not fitted try to check how meaningful and reasonable is the model or try to guess more robust initial conditions.

  • Q4: Is model fitting is correct?

Use 'lmm.log' to see warnings and errors. If you have warnings and error maybe this model is overspecified. Try to change variance structure or guess more robust initial conditions.

  • Q5: How to choose best variance-covariance structure?

SAS Manual, Mixed Models Analyses Using the SAS System Course Notes:

Unfortunately, our attempt to share a very RECENT perspective by a relatively small number of statistics and statistics related research has somewhat sidetracked the focus of lesson 1. Would like to attempt to provide some clarity to some of the discussion on the discussion forum about the bar chart vs. interval charts. You can use information criteria produced by the MIXED procedure as a tool to help you select the model with the most appropriate covariance structure. The smaller the information criteria value is, the better the model is. Theoretically, the smaller the -2 Res Log Likelihood is, the better the model is. However, you can always make this value smaller by adding parameters to the model. Information criteria attached penalties to the negative -2 Res Log Likelihood value; that is, the more the parameters, the bigger the penalties. Two commonly used information criteria are Akaike's (1974) and Schwartz's (1978). Generally speaking, BIC tends to choose less complex models than AIC. Because choosing a model that is too simple inflates Type I error rate, when Type I error control is the highest priority, you may want to use AIC. On the other hand, if loss of power is more of a concern, BIC might be preferable (Guerin and Stroup 2000). Starting in the Release 8.1, the MIXED procedure produces another information criteria, AICC. AICC is a finite-sample corrected Akaike Information Criterion. For small samples, it reduces the bias produced by AIC; for large samples, AICC converges to AIC. In general, AICC is preferred to AIC. For more information on information criteria, especially AICC, refer to Burnham, K. P. and Anderson, D. R. (1998). The basic idea for repeated measures analysis is that, among plausible within-subject covariance models given a particular study, the model that minimizes AICC or BIC (your choice) is preferable. When AICC or BIC are close, the simpler model is generally preferred.

  • Q6: I have a slightly different results for DF calculation, what's wrong?

Check logs. If final hessian matrix for REML function is ill-conditioned results on differet OS can be slightly different. If possible, try to use more stable covariance structure. Or make an issue on github.

  • Q7: I changed maxthreads settings but nothing happend.

Check the number of execution threads: Threads.nthreads(), maybe you should change julia startup settings. See also julia threads docs.

See also:

  • Barnett, A.G., Koper, N., Dobson, A.J., Schmiegelow, F. and Manseau, M. (2010), Using information criteria to select the correct variance–covariance structure for longitudinal data in ecology. Methods in Ecology and Evolution, 1: 15-24. https://doi.org/10.1111/j.2041-210X.2009.00009.x

  • Guidelines for Selecting the Covariance Structure in Mixed Model Analysis

  • H. J. Keselman,James Algina,Rhonda K. Kowalchuk &Russell D. Wolfinger. A comparison of two approaches for selecting covariance structures in the analysis of repeated measurements. https://doi.org/10.1080/03610919808813497

diff --git a/previews/PR40/index.html b/previews/PR40/index.html new file mode 100644 index 00000000..723b6eac --- /dev/null +++ b/previews/PR40/index.html @@ -0,0 +1,2 @@ + +Home · Metida.jl

Metida

Mixed Models

Multilevel models (also known as hierarchical linear models, linear mixed-effect model, mixed models, nested data models, random coefficient, random-effects models, random parameter models, or split-plot designs) are statistical models of parameters that vary at more than one level. An example could be a model of student performance that contains measures for individual students as well as measures for classrooms within which the students are grouped. These models can be seen as generalizations of linear models (in particular, linear regression), although they can also extend to non-linear models. These models became much more popular after sufficient computing power and software became available. (Wiki)

Metida.jl is a Julia package for fitting mixed-effects models with flexible covariance structure.

Implemented covariance structures:

  • Scaled Identity (SI)
  • Diagonal (DIAG)
  • Autoregressive (AR)
  • Heterogeneous Autoregressive (ARH)
  • Compound Symmetry (CS)
  • Heterogeneous Compound Symmetry (CSH)
  • Autoregressive Moving Average (ARMA)
  • Toeplitz (TOEP)
  • Toeplitz Parameterized (TOEPP)
  • Heterogeneous Toeplitz (TOEPH)
  • Heterogeneous Toeplitz Parameterized (TOEPHP)
  • Spatial Exponential (SPEXP)
  • Spatial Power (SPPOW)
  • Spatial Gaussian (SPGAU)
  • Unstructured (UN)
  • Custom Covariance Type

Limitations

  • Maximum length of block more than ~400 (observation-per-subject).
  • Observation number more than 160 000.
  • For MetidaCu number of blocks more than 40 (maximum length of block more than 4000).

Actually Metida can fit datasets with wore than 160k observation and 40k subjects levels on PC with 64 GB RAM. This is not "hard-coded" limitation, but depends on your model and data structure. Fitting of big datasets can take a lot of time. Optimal dataset size is less than 100k observations with maximum length of block less than 400.

Contents

See also:

Reference

  • Gelman, A.; Hill, J. (2007). Data Analysis Using Regression and Multilevel/Hierarchical Models. New York: Cambridge University Press. pp. 235–299. ISBN 978-0-521-68689-1.
diff --git a/previews/PR40/instanduse/index.html b/previews/PR40/instanduse/index.html new file mode 100644 index 00000000..2c755189 --- /dev/null +++ b/previews/PR40/instanduse/index.html @@ -0,0 +1,61 @@ + +First step · Metida.jl

Installation

import Pkg; Pkg.add("Metida")

Simple example

Step 1: Load data

Load provided data with CSV and DataFrames:

using Metida, CSV, DataFrames, CategoricalArrays
+
+df = CSV.File(joinpath(dirname(pathof(Metida)), "..", "test", "csv", "df0.csv")) |> DataFrame;
Note

Check that all categorical variables are categorical.

transform!(df, :subject => categorical, renamecols=false)
+transform!(df, :period => categorical, renamecols=false)
+transform!(df, :sequence => categorical, renamecols=false)
+transform!(df, :formulation => categorical, renamecols=false)

Step 2: Make model

Make model with @formula macro from StatsModels. Define random and repreated effects with Metida.VarEffect using Metida.@covstr macros. Left side of @covstr is model of effect and right side is a effect itself. Metida.HeterogeneousCompoundSymmetry and Metida.Diag (Diagonal) in example bellow is a model of variance-covariance structure. See also Metida.@lmmformula macro.

Note

In some cases levels of repeated effect should not be equal inside each level of subject or model will not have any sense. For example, it is assumed that usually CSH or UN (Unstructured) using with levels of repeated effect is different inside each level of subject. Metida does not check this!

lmm = LMM(@formula(var~sequence+period+formulation), df;
+random = VarEffect(@covstr(formulation|subject), CSH),
+repeated = VarEffect(@covstr(formulation|subject), DIAG));
Linear Mixed Model: var ~ sequence + period + formulation
+Random 1: 
+    Model: formulation|subject
+    Type: CSH (3), Subjects: 5
+Repeated: 
+    Model: formulation|subject
+    Type: DIAG (2)
+Blocks: 5, Maximum block size: 4
+Not fitted.
+

Step 3: Fit

Just fit the model.

fit!(lmm)
Linear Mixed Model: var ~ sequence + period + formulation
+Random 1: 
+    Model: formulation|subject
+    Type: CSH (3), Subjects: 5
+Repeated: 
+    Model: formulation|subject
+    Type: DIAG (2)
+Blocks: 5, Maximum block size: 4
+Status: converged (No Errors)
+    -2 logREML: 10.0652    BIC: 23.9282
+
+    Fixed-effects parameters:
+───────────────────────────────────────────────────────
+                     Coef.  Std. Error      z  Pr(>|z|)
+───────────────────────────────────────────────────────
+(Intercept)      1.57749     0.334543    4.72    <1e-05
+sequence: 2     -0.170833    0.384381   -0.44    0.6567
+period: 2        0.195984    0.117228    1.67    0.0946
+period: 3        0.145014    0.109171    1.33    0.1841
+period: 4        0.157363    0.117228    1.34    0.1795
+formulation: 2  -0.0791667   0.0903709  -0.88    0.3810
+───────────────────────────────────────────────────────
+    Variance components:
+    θ vector: [0.455584, 0.367656, 1.0, 0.143682, 0.205657]
+  Random 1   σ² formulation: 1   var   0.207557
+  Random 1   σ² formulation: 2   var   0.135171
+  Random 1   ρ                   rho   1.0
+  Residual   σ² formulation: 1   var   0.0206445
+  Residual   σ² formulation: 2   var   0.0422948
+
Check warnings and errors in log.
lmm.log
3-element Vector{Metida.LMMLogMsg}:
+   INFO  : Initial θ: [0.21085850593184405, 0.21085850593184405, 0.0001, 0.21085850593184405, 0.21085850593184405]
+
+   INFO  : Resulting θ: [0.455584290622586, 0.36765619780142395, 0.9999999999967146, 0.1436824286508881, 0.20565739028506558]; 25 iterations.
+
+   INFO  : Model fitted.
+
Type III Tests of Fixed Effects
Warning

Experimental

typeiii(lmm)
 ------------- ---------- ----- --------- -----------
+         Name          F   ndf       ddf        pval 
+ ------------- ---------- ----- --------- -----------
+  (Intercept)    22.2346   1.0   3.16597   0.0159885
+     sequence   0.197525   1.0   3.00055    0.686828
+       period     1.0789   3.0   8.66853    0.407683
+  formulation   0.767409   1.0   5.46311    0.417867
+ ------------- ---------- ----- --------- -----------
+

Model construction

To construct model you can use LMM constructor.

  • model - example: @formula(var ~ sequence + period + formulation)

  • random - effects can be specified like this: VarEffect(@covstr(formulation|subject), CSH). @covstr is a effect model: @covstr(formulation|subject). CSH is a CovarianceType structure. Premade constants: SI, DIAG, AR, ARH, CS, CSH, ARMA, TOEP, TOEPH, UN, ets. If not specified only repeated used.

  • repeated - can be specified like random effect. If not specified VarEffect(@covstr(1|1), SI) used. If no repeated effects specified vector of ones used.

diff --git a/previews/PR40/mi/index.html b/previews/PR40/mi/index.html new file mode 100644 index 00000000..4b562e1e --- /dev/null +++ b/previews/PR40/mi/index.html @@ -0,0 +1,14 @@ + +Multiple imputation · Metida.jl

Multiple imputation

Metida.milmm

Metida.milmmFunction
milmm(mi::MILMM; n = 100, verbose = true, rng = default_rng())

Multiple imputation.

Warning

Experimental: API not stable

For each subject random vector of missing values generated from distribution:

\[X_{imp} \sim N(\mu_{miss \mid obs}, \Sigma_{miss \mid obs})\]

\[\mu_{miss \mid obs} = \mu_1+ \Sigma_{12} \Sigma_{22}^{-1} (x_{obs}- \mu_2)\]

\[\Sigma_{miss \mid obs} = \Sigma_{11}- \Sigma_{12} \Sigma_{22}^{-1} \Sigma_{21}\]

\[x = \begin{bmatrix}x_{miss} \\ x_{obs} \end{bmatrix}; +\mu = \begin{bmatrix}\mu_1 \\ \mu_2 \end{bmatrix}; +\Sigma = \begin{bmatrix} \Sigma_{11} & \Sigma_{12} \\ \Sigma_{21} & \Sigma_{22} \end{bmatrix}\]

Example:

lmm = Metida.LMM(@formula(var~sequence+period+formulation), df0m;
+random = Metida.VarEffect(Metida.@covstr(formulation|subject), Metida.CSH),
+)
+Metida.fit!(lmm)
+mi = Metida.MILMM(lmm, df0m)
+bm = Metida.milmm(mi; n = 100, rng = MersenneTwister(1234))
source
milmm(lmm::LMM, data; n = 100, verbose = true, rng = default_rng())

Multiple imputation in one step. data for lmm and for milmm should be the same, if different data used resulst can be unpredictable.

source

Metida.miboot

Metida.mibootFunction
miboot(mi::MILMM{T}; n = 100, double = true, bootn = 100, verbose = true, rng = default_rng())

Multiple imputation with parametric bootstrap step.

Warning

Experimental: API not stable

Example:

lmm = Metida.LMM(@formula(var~sequence+period+formulation), df0m;
+random = Metida.VarEffect(Metida.@covstr(formulation|subject), Metida.CSH),
+)
+Metida.fit!(lmm)
+mi = Metida.MILMM(lmm, df0m)
+bm = Metida.miboot(mi; n = 100, rng = MersenneTwister(1234))
source
diff --git a/previews/PR40/nlopt/index.html b/previews/PR40/nlopt/index.html new file mode 100644 index 00000000..1903fa9a --- /dev/null +++ b/previews/PR40/nlopt/index.html @@ -0,0 +1,8 @@ + +NLopt · Metida.jl

NLopt

Optimization with NLopt.jl.

Install:

using Pkg
+Pkg.add("MetidaNLopt")

Using:

using Metida, MetidaNLopt, StatsBase, StatsModels, CSV, DataFrames
+df = CSV.File(dirname(pathof(Metida))*"\\..\\test\\csv\\df0.csv") |> DataFrame
+lmm = LMM(@formula(var ~ sequence + period + formulation), df;
+random   = VarEffect(@covstr(formulation|subject), CSH),
+repeated = VarEffect(@covstr(formulation|subject), VC))
+fit!(lmm; solver = :nlopt)

NLopt is a free/open-source library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms.

Optimization with NLopt.jl using gradient-free algirithms is less stable, that why two-step optimization schema used. Results can be slightly different for differens OS and Julia versions. Always look into logs.

diff --git a/previews/PR40/plot1.png b/previews/PR40/plot1.png new file mode 100644 index 0000000000000000000000000000000000000000..b27fdfef881e4e06673430e982e568c9c40ce788 GIT binary patch literal 91188 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
iJe@f;Q6gqwc);PscUcTmYBaxlP34C=; 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

o(yOgtG@OS2 za`*Q0%SeQf0+V92N`I|2thqU0Hw+;};>;ZixgO&If`?tSd+$p5!o``aPGCB zbV8tmuoTe&6i-~%H}LRMa=hmF?R+o}4=0hHr8f$rLJsKbauEd!W-gyRijGaTV_6F8hX^JhG^0 zR(TXMA&4=Xq?VRW{>sROoq%D)V)$lqGH-WsZfwY&b+DSHl8ZZ37(zz}#DSajhoJQ5 zeWKH+0MkAixa{naEZz?WoSdRm-P?m_*S+cdobT9{YQ=z*MYdxLjB<9zX1o|2oq(OC ztQ;Ep8$?7?Q6dQ7;3`ES`^}z~m+&pj*FT}fv@j?knZyEuXvER|(N(tiGG>Z$O$#mW z6B9Wzwh3f-K%5jGAL#2Vn7|y55a5my5`ERj1=3{OIk3FexME`V zH&C;)pi!c*GK9=VMMIO4evpxdVWJJ63U43D%Udie5%uJYjZ3HjD#n6ViTXk=48yp8 z6U+a`5bgeOSddo=8ChO#KvB{npxX?Cg3{B&qV?Pz3V2e>jSy$s@CEY0*`yC3_}scM zzq1d<)AQ`&AAg(S|FHEIP*r~09w>qc0t!gCfHVjwh_uq(-JQ}YDH761w=_r#3epNl zNFymoOLsTC$^YDY?m6#0$G|-X?7hFe*SFSObIth+lS0Z%`pl)i0bln0B7# zO0JAYx1Bfa%L$9Aynao{n}EFP;m+3l93itVCGa5+H>E(?#?N0aJ4ZpuM9waA>*&J5 zqL2CZ_8vxmABkU-c9diJ+neJUZ)9P@03Kmn8r2O)3fKM6QiQ?2;DN z*k`4L2|jx!_5$I~eUSn=pb>ZLUof_n>9TQ&|5CQAtaqDR3+)#WHl+dZ zr4gdE^vPK^6dop9hvRg^4i1uJLuG=z&#|!H%o;2)pdkoes!U{o#-6=HGo~P*G@X`a zbD}bH{Ii5Xm6MspI^acI-1px^^{!bTKcX@)*xSEw<{){-_d3S3i%*x53H_!Q2h?;> z5#-&T^~W?Y@6cfb8>Qp@#KeWKGtijWk4k=akIRlxkD3035MtQ1bjpXvWNd^%K^8-I z&d#vV=C-4Lh~(M6I(Ie0&*a&tcB0$Zco@xgBqeQZxW&#cCH*Xr!=@AKIZvg8kspE) zdrNDD7q{({)v(*^Yk`;;HpfRB8^A;uf$By#>+Ws`(4b0LWMq=W;Us=_{4M3Ks;sEu zV7IK4$Imav%qbzCe*XKw)lJ)y%0>CWu$Ndv!(dYj0Xi9ZG~l^|{-+j+fPh&$2yk-G zzqjAP$CqMw{hB)n6W;ktRaPFduyAnOr^>g{*!ePw6Jlm&^D#D26?b6oedl>hh%S|f zg~sl~CnICOP406|2Co)Q`WXvm;_p+LHYdT0yX1RUmyk2Zt5@&ie%!m05O4VNfm)lW z_(E|x7SUZl1jJj}*=y;`j7-7+ddnfo^l+TV%Wd1gnD5$>h@BsDw(!&Mp@)tJqGxjm4pr6?%cN zv0-5Jc3i`(+Hn@4>6+Zf2gs>GL2T@XAv;FwVv#>OC}0tqnSJ{7CJbH2uVuwhMh zMgzSx0l&_*)CTwTe4Eos;C^8tP+gp%SkXb3@q#(X9|^dj1a9i;0RfQjkNOxW?suOX5?Wv@Y)hyS;tS>sX1%FP?&Fe&DL;y7=H>NUpY8>yGK{CZHT-TLbR z6?PEDYhph1o>UYZoSjoFG~iqGU}Sh9GBHU!k}4?8rs~PS#JPE4+;{HOQsV%jl@$O) zcA9{i$Jtqu0GX>RCu6bjyNCF#&3ZnrDv02b?9EF;yeQWCt1!3PJ#sVwvcM{`A|ZBgWgeX4f2Z9k1RNHGO$DOP5PZhT^`WuE$yg;VwcO`+P@sWB=3?rl7%Lz|>=<%39 zQ*r1YF3KYIT$MEz>OdoJSGU8$9X|f}Qg(#FT+yC~W!p_cyvUI2ZN`~V9VgVKlUQKU|RY6`7O9zzI=iJTX z5Uju~b8fE6?Uj`C7DbBpo{qo$I(|`c9#Ew_mapUs@7}fe9m8qtNV((TG4KoM%F{me z_luYR{2{(bj0<>&nQ`wvFotzVdwQ_2PYmRDIZd&P7V$iNh#m@W8+Zk$Ny8V z`Sckn3Wbx?!rH(8T>^f41QV}s(|pzbe9(|WK`!juji7D{4Yo0Y>S|f#BfY@8SuJdo zDj2i@hx?HMJ3U0e>k~#nI9b3vMWlT57EvZ0O@Lx)iH&m+f5Bw46y@IAP&AMNTEf7W z_bDoR6wMhe;2iw4uc|sItalt&|pmkq%u#PV3DY*?wo%5^gV^sMb`bv z6RUN7AD{GgKb@seJ=6Evf0U89V5;mc4Cdb>B?Z00bY4iBy}Ye^e4ae59T6ZSEAy{T zCj&e0M17+Zd#GMMnn%py;n_L(n_K*nTv+vrOo;N8&ANSngv<{D{qKL$qf#dYb z2Ku$VsiuhgTE^2sd(Y$~Yikd?r&C$(reesT;sxE!GGe1F$#A0#cv6hyhp@V;V-?<` z+0;NfHwToY5)2y~h(0w*P7m!}gJN+4gh2BiisgBF-0zL5nPfGt!$gkEynQ(@Hf;vhDrm!%nz(p5{=MjdXq0U)IPh-;>4rHyRTFo8e z`0wItDPKFsJx{_7sM653c=hfLLO6NvNJ~fid>i`7dFv=X3g-NgjffZ(u#&wHZrETi zW$*R%X;h&Rux4i>goJ?E^}dagYT!E*Az_Ctoz`DGN=m?cJJkYm^$f+_9OqJPe0+@; z(XCrLdvw?b2LSei!$%|Ua*(P`=|010fB;>oTl_1fyS% zzF7LprSI(b1E8Q-&HaK9z7_6&@Ti?h0uWp08G>~(XqHc z%S3j?I~ze6J~0wC#@=2amQ;uf66NFAqoaWCZ~8E-e5!O3O7;8K!bmYzn8PkrfDmM^ zrP|!z8t}7wZm-|!@8vnG75rU=E+D|h-h7?Bc_HGq;5HNQb4(^93k*f=RBHz1g>Stx zOTJhkHAOX*R-7lhyDOtGGSA(yUU={b3BzD-8DFxA*)@DA=4y|KO+_>_0X{4`fspt+ zrcTJlL+*NcV?THc%k|{-24R_=s0QK11r%jDId|Nl@s=fQS3gTf&7Y1VsI5&%1k%3{ z!I)_F_I8HkSN;$c6{U%Ps^u0q$I#TQvA@;S^r>3R{iHY$>skV}n3tx}T~Yh!;9z#? zj<0V(5HuP>LVDHzdr7mR8Co&&@y#y3b6Fo~;y*hUpK0psZEFjIACMW1yVwoE zje-KUm39o+y8I9r8G)-#^6dMsFZ1~?`$u@tKk)l=>^dZuHM4aD^rbt@-&S{-ZsOO` z#l~*-eujT_(rx#_`p*4;573zgmj~DFcCHzN1B;~OOBRhpR&|YW(rQel#rWdFENKD| zEB2DD$yHvae)ou$R*9egi-jLDx`7c@xvhv1Re|rFJ84%VS`Vb9-hT6qcbGj~N4@x@ zlc~C7_aOD*mY-tIz&F7Fp_5a?L8^cN$b^G}bneXrW2-iH)qLKZM4_gxsm&6{w6JXc zP2_#v(iK|l^v!A6#`hjF@?L92fq1ERgS%)nE2}VA5qfoE^KL^DuwLXo;;<*Z*9Nh=O-cY zCWAueh95&s4SV`9eQ?{#1Rf4uwzp?ea&z;oQtgFiq}zAEi<7It?1RdtC*9-owAD`6 z3CyOa`l;qKO${IUs1PF~U0f1hjmeGLFfpO8k2#Hgc6EiL^NcU1L|(jLP&}%PfEzz^ zERZGuU!}hM#4aA)gXe*`xJ;6Q&k{!UE5B%LxevF$5;GJh$F9y4Qygn*qTWy7bdCMH z)bZnc2mhGLQ#uiTj^arLfMok2P+^yp{B5kkfBaWxOugiNzn#fkm*r5+64&F$sQ26Z z(t&@KN3*d3=Zp-WB7MTpFl>^r_gElyAs>YUqiV%;{Mj6ylS=aSwv_<{jo>zL^gIr% ze;sT6mKgtNX<%LZuA%F*zH~VCzV)A*yT!>#&(J(UywLHDuJV}iKO(BHC@M8ICBD<) zJQ9kKGsgT)w9YBkh{whI`axtQ7MjDgS37mbm2Z*j z#`Z<7oj%;B5p=-gy99pSseX}@>t+YyCk+i3@3F>H5~tE@@33e?cK7n-bGNcBdmT-p zL~INK!@yyh8oCn7VjXNC8<|}1Vl?!H9Q1$isyh8(S10a5e zVssRMKER?60ax57PZv3lgx>+%(|L6-pRsO@OrThucUY-G^`22X0MI z!vSDD>?3_`&rBV%pdhHhFmKp&-CM_MVf-D7x0jmqLO&yQAtkkSf>`ikhxH)EatXF^ zLfU}P=73K=S6NtUcG>p~=7a#CJzW3viwWX1|y^Q4zpfCF@w?X!;ZH;c-3XTv}#D)g#L^VqfgMJ0#lGq~4?NxHCu^}6NHs7W{ zD)Xu)>uG9g0CqH-J$^Zga=U?4FtqODAQC?Qo~y-3BId2!Ji{Ksq?Gwq%-RQmMI!OQ z4=2TV`jnI}*lGEytOB#W(iHMs3yUc!o%kIFEc?R;ii%adn%&tsL;1~JXkA?jYC(U8TK(k^+Yo;Kd64M1xRP+(8O8toUv7ShDoZ1RpykLZ$u_-Janvewd#zO`_Woq_J(f=!M$4uEdS(jF9r=tdF`;>Ue<$TRJ!p8B@`ZT)sx6F8;iV3nW;{(BH3B65) z;+H8U1U=>%SvJ}q3ty@e05)%uAe9SfV5z`@8?ktdFxy8~=KRvk>G0X#W#h?b&~=xW zpC~2Cm+zRUdj7gnj4LgFHf~tOQ0OBYEOh_7hL`lr0lt@Qzr~^KBAB6#@aqPiq3+It zWnYCbqWwxL5B2UGv3P2dK|eVHeLquE`Q)5Y*xi9&DcSY={?m9zN51v6i_36Uo|}VH zLrO|;cw7e4lLwHlJme*rn}cvmOl*&3LaM%g{bHb^C}w-daD4nCJ%%b8U}QEE_NE{` z0}Yp5=e*ob*`*?ncumdt6(Uh*jS;Ek!s1`0_62xt6c~XD8oXcVwRh0b=Krh)2qh&M zOw~;wD(e8c7|<*SE5ut^ii&JcAohR#bUcroxMOMgbA&eNow~YrrWR`wIe%u^eIz8< zf4b1XG^mFNke}aQoIbZMCFnvMH+^tIyxc(C=|x~#x&WAEY{i%ldL6`u#@sZV6#tPJ zh2EXZ62=OvFhxh$m_mmpvb9r0;>a*)UW_t(UGx8#C;q@47zq9FvNDS)VgP4z;vwWd zuxzNBQBGH5V>@~2Tk+XAFydZIOOfuzm3MI4_%{mJD0M16VZE@7!ZdojU?K)JA&v9X z{lE!B%OZTk6!dvkdy0YAuRnbedBwalrmury?&89%ugA}(QE7>Thy>Bw#zsTic=iRe zPOxsh{VtVRuN2<%cjI~>^eG7)fi9!qH?8D)2up;dUql<+xvCgeJk_W z{bfVTyG%@|w^1?vdPu6*u96ErPE-;Wmbl45^qGG=DM>6ZFvEt{m7{H;vlJ4(|+3fz1$gF)=zF)_5@H8P- zU?60DP}t|sK~z`1vo8W9QYns+Uq@{2<|*~0(m6OZ!-DWsYx0+Pwi_vE9~^7H_VY&_`Y3Yak6+Oil#1Qqs-1%h`0DZ9#_&m)%* zlZ-ozruj}`z-}XF3BP;0md;HRQ#mrHsD;D3&-%NVHju~WC%au>wGF%RouwXdlI7q8 zraKFG6Lewrbj_z!cV;(^{OoN@<5o}vge&NMn9>mZ!no^~OmyP)#a1_`(FISn(SVuR z;1!0vyz?d+64G;C>gP$_)}@s{--|Nq-}CDNr<)W_6qIhx6V;-F{&A2Q2b`wS{Q40K z14E(v?);3K)S3Rf|4Rdh6eyV)TfX}#C?R6I^PvU?hYEEkR8})0d@@9mk+uF?B_bvy zj#5{r6RnT;)x0DYOVIA`UuJ)NH8C0?N-C;1C+-*&_bUj2tvEr9jGUaTQTu?5=er31 zInGczX4Qn*xNFSb$uZ}|t0#KTbKSBeZj(oK_uDNhFkUj=e)cR+uB>l9yixn={v{cY zicKNb$C4jELZGCsM}F)aAD?%vZ}D+LeJO6E(3`r;)+eu;e9S;uE#ZoXgt{Ddg)(F_IP;>_i3F)C*ZFf*F|y_wU~vt}}H+1}eZilMF1RHV5ob zeE-)@DlZ&pf96cj@KP9wkx`=#H$EQPP=GtSJV?|Bg;Q1^klXQm#=$YWrnR4=$|#$B zp^D7#jqq9HpYd$tFdY__SLb^^niMk+sEa?hw!Rf$-1vpeJA%}5l7ZDMLbG5z75tg! zlIe99gVz1FB9EUzn+3A*U+@ahPPwb|X`b+o|7eSDGh*sV51af-@c75hoUi_4E`o#v zN4lKKC*g#CK9>qQ;d^^6H8p}LK17`}4>Mo+mhyj9ofOt2^6&tM<qMxV>Cbt@CX-%DX9`rZg8XZkr6-&p(ojq{?5IU%vm1EwJ3FFE&l@+~R``vl} zd#zrcbDIljzS&$=CM2{cN`W1GLW^9QiT=g;k%D4#qW)+P@y~wN1ERE6f=3?m4JLdw z{w_hZ-%P67&E4X)<;Ox-{$%~>MwgQt82;fN_0E*oBc6ODC5?urxn;g^oPWUL+pE&e z?_9nUOo9xjUT~ZUsHl($u$y}8_mWfm9VoN(BqJ!O1ne&lR6cR3tM4s{`1lG+P>rYasdQ>@bFi&jU9IwL zhVML}AoHOokf!);hH9tBXSKi=)@_Q#`+Iphi0fZCKutL-%ii&AAo3XhtZGq=fi-f# z^#_kD>n)sZqW?HS1fk8vGig)^U6q!zLIL}xi2dxDPQDtR=MF7Oo zKVTcVrp3N(TC*39_Eio9MQ+K;7sVJA<%?8SGZPaJ4F5%JwzcJaq81vqyIKG_?TZ%? zdTf)`U_{V2Sg5w69K?Lv%Df}+g+ABUSkRK3H2~fO+xzaWQWr+eW0j{*<*tha$?@>2 z>Zec697`wGiYm>8J`(=NnD{CweDmbe(NWNg98h@9(`9ZDM&REsULZGKpUCvn$;m$f zpO%QCPx0wQAt!@sw?J?1=G`hEk2v0<&Bh7k%y5h^c9^`pkDbh5)7RA+nR?oJ-hU9; z^yy20MuWTBS&ah-b?E2-wmv+3rZ=ybk~_HAUtWw|tN<(wSL!`Xsx=>Jj<@X*~(Y;P->Rfw$rKPnsmBOR3gYLJ%A*S~pF)q!g`M&_(6vVQ>CO>{WWZS7~mM5yj`q<=iNvS|oxrUsasb*&%8{bxo zqQ08JoW;Qogc?+gfX`2zUGTmfnF@WR|G$Ys(H6kQOJdv({(v?0PLv9o%hIZ<7FI^x z2`Q_w$jI@n7iHCipT(ckq~0cp%RfV#Kk>SaJi=%Bnj4=PAtNf1%+#=P4@G_ti9cB1)(EGS3YDd*whhSsh~IfP$8a%IrKe=i&I7`v}N%kauk9 z+iTcM^MU8#o%fj5IuG^1t4f$V9W!s z`Q6szdyVLMo+No*@}sSZxFfa$nOcy7n;WnoSC{TnL#iX+O;7A$iD?o|)y*wuu-g!; zYx=G}K*%jHK6NA{1dXOUcXU{jeu%^+zzl*;Lf6{=%oUmJY1-S2IhhDqSy&-}bf8(q zCvajJFsXjPq;9l6%9UGp;RKt{9UP%R$gd%=tQTYnY3M}~utHte<0v4Nq_Ps&eagyx zlN|N+sr`QX97ZvN$<~SP3)A>UHk!?#|JYoWqru zz-u)K=j3t`%X)lqUd0GxZJ;c0J$I4yEq@-Hr+hApdp(n7G*EeLzg@yvcTv_?#6a=D{`+!SlVcpt-$f9MRe^jXy z@m0d*bopQHrT;CcKpM#QG*+9I*8!dd%~}vQ(&j3o+m{bR`_OyOzn1%l(fGvt>JYCR zo7A;MZJEV8+f2XAU*8chDG-1E*15mZ@S2dnu2Q&QhlUj-iPpo4)%}tP2}!!OU4Mo) zO@0AtEna-?ZpLJCBL4H*#ByBF+eE{tRC~Q+vy+7ZfNo?9)K%%1yCkvaOkHbA+yDXNGCM+bgU}ogv_)#d>RZKd) zyP~MskGWMvYV??SZ~uJKe|ugO2A~_W7}_UiXG+l$LQ&r=uAd=z$H&9Q=#@t|P+%Dbk< zKJ0B#5lA%vL?K6fvGF&sTkJ5=(FuvWo(eKCVUzdOt~RYbcQ|Bx`_{mM-ig(NsXvFY ztLu{$9!RFy^m5Xwss(+1+H^8ck^lb}P-?6RmYb{%Z((AZnBD@34SH0>TNjuAFn$Aq z5Iej5-PSkw{1!b9HECOvJUuT2sPDMC?(8;~Y7=oO>k-!54kY2RH7N=BOG&(m#*QQ} zU1&ikFxvWKy8k(YK@+90S5+9FOmx^&WFLa!o znm_0E>+p|Nj_BzpU|n+^l9ha^L8$dLD2G}|hsk7kD|4aoEfTwG>FdejywX+886 z{-Dd7l$sdZg(thM`nJ4%&*!tE)B~ka!mGXlKI_}JA9CVR_+mIYfwrg3BwY8-y?L#X zq~w>9Ax{+_#aLMhsS|h!e5tDNs`W~tktU5t7DPsb40p1+dSb+J2w6dk5!3JN+^J0E zkZL~%VrI!b7w61uaI6Xz0iDUnQwN+k|DA*pGX{*63p2NGqxU-y#Zyvt_KHg0MMRuk zW7IZ_mBPk)L#;OCqmph{n&>@nwvf1nACu8aAs7QGVDR)$uX_%C6P?87>PKb&iv?Kj z?F8Y|%88H(6LaI;dEBAlte}nzXJ04=w_}8pN09Ry*xb8!Z^wOhKPxXV!)HD+#?(hGzR~xL zAz#*CBYbCvI7V$TUwh=JP7U?TG-kbeeO)+_f0=Hr%R_172H&?dfVsQ(l3QmU}_ z5C-ZCa&tuTwV(LUnea4ES&NhM)^#62D)+lz_o%YP#4?F7XuU zg@Z#yLV}txX6~t?fo@$X}C-t9q~e2Lvcj zp9Tb}*=T+vUyzXx*dzGz_wvv@qdzUc5|~)ygp`!@cW*Wt+dm&2z#r;h9mUu8lshbp z-Bc=VF-iV>%63~P`^P)latVL+J<)4xC<8pkBZ5@Q^XU6`gmm84DKg*~GPnQ!{OL3F zwzj54Jv<`rPXM<_8HbY6r6Ikf1hk8v^R|xPXncF0*CeNjy#2&RNId!hb!mx;4a?Q_ zxdS3Q`_6tb-EA#}hudpZxT7m;dwVogR8U;_QdL_QX52x%6K3&hJY0btehhCOQx3yF z6`~osw6ua=0TN2lGg2Pzzd}lTLwN|+4qZ0|!+-YpmNUywSkv|IG(Q_yhmDp( z72n7hAfS;HtQ-7~G=Ex^Xnnyi@0^hOm47c^9tFX~EL)o3_U+Dn#$t_XjK_~VyAa>R z#0<5nS1EZ8d^T==i_FFWT6qWx6|>Un(-FEJ%5d2JRNdYlvDd2K6p&9F7iYhMH9QPN zlTAG%*f56gT90*ojf>BcrvT*kWIZFE@|80UEhJg)uN|g%P2nK0YXkrfRXiNpP8f*(r{XWg7qce#!d>?hG@mthaWfgDCV5 zR4AuXQ-{QKJ(w0^&$Cw8mP8>f2Z$D;m>?EK>&mA17yr?KHL!Qfa0NCli0*hc4 zPnwtezMK_&c2ZJIY~{eJ{PK7>=be%jBk(7rq`+GVDCt_nUga_I+dNhPk2=VD4Qbf{>`nbek=<4rY2lG7uv?fjv>YfsaT_BvPs8Qm!BD8-=ZQdGQ86g_%mU5_++23 zRmdGAz9BTGbiBpk+jN1U!~ik`dV0Az!gO-rX#>L{Ab?9G$z`kH`YbPZAdMUNPnOn0 zen`&8;JmE3-1jJYU~5W6NhmK5XiY=;(Fz~SvR*nZ|B7P(hppZZvS6H5@A@cSN$k$9 zJCM9;Yi~$0(=tIpE;BfVagTK}S1cx~!bGT2*!-?8Vr67Qg6HQgdI(|1I^DPY^IS>E zgX_}eU16aX zd1znPWwmJTOD0R#^EkdlLIT4nUNvET%+TO_t>tqbqnW0&(r6GYC&f@!h6c!^-1d1R9a4|Ox6mtWUAK5K zabcLH*k+KW7t+Svg>3k3x=5E}8JQnfK2Nz>|7d1(*xI8RxoTA6)0{+ezKWCYy+ zOd}5t!ZE<)8gRd#byrPQS;I-x>#Ghza1@kVqXb)qa0IV9ZF>6O<&X^dt9QpaFBu~kz`(ODXe6e zbO{M@@h(eca~)rP(OYQz5Y35%xCSG%F* zjG-p)A9ZDHgc$9DbKeHF+tyHxjkEH!1avMHY6nn>h|uvfGsLTh>q&y{73=n>Ylal7 zD+{3St4~?V{lqSco%{R6bC9e85~KGL?-PPPvDMUkFU;dOD9-Nbjsi+JlnSgzhd=bk zCjt%!Wa#b%7Fya!PxiQ zq-09^k6ZYeTy~(Hl8}Ik?x|gVYIZ*roAD0(VEpT`38zfIzz-?6sff-^qJuGmo5H(m z*4d;>GyPVB-V~UX*&-gFu#*YObwsKE_@Gz7VeQb@v2bvIYG}W`LB4?2_W3ypnScxo zq6Y`~-FcrYX%L>C>;!X!Yy@wtHSH8+D80P(`}g452+$_m+xIB=-Cy|M0p~Q6S27b5 zU{{5$D2j}S{{S10Kv|OrTTzc3Oak+yMM zWoM4dLjnj(&CSE#e93-4zIzuWDs}5bAj*uE=9XQR|1p68VZfnC>2(m?P-hUlL@~)E z#;`f=T3RwvxB9jJ;~ArTk|c$X1o&a?E`WSUe7xdVSpf^37jq=XV|PM2@=+za#jdfA zcJECn8%K~y=ZHnWcyV=wOD>1ltgUnM{no_SD3C50%mUtChxk>_jBf#0W|~U#I0x6c z<`u}-J}vtAzWNz1J%|RbT^_f0VR59C53iz3H-KT@^3=Q%1*grHFZp`*QhWxCOQaIc(GD9l~U-Z>7B zuQM*Efz;3tP~ErzZ{H*jk+hNXsd|vX zva%W&6E`v8kI;Io2Y|_oiyBwk5lJb=yOZ4M%Pv{GpbX|0 zC~J#PU!Sb979SiOaeIaO)C^>GV5TBK$Y|>r`uh{S)A+~_SA}`qV)B=)qe?$!+I`DA zT(|5cCVmE{U76sR_JFT6N1M`U=<5#WGE&)j(hNK)h)Anf-oM7w4|*Yr-O0JdG2$9G zJ)KO9pNwq9gH&I9Tb4TdWA^oIJkpiLf=X7g=IKII+-^5{)mHlU-()u|K_?1}inj9xwcsy3=_gYhE;V_AxZVYK<`_L$$!C;Owv{o;XMB(w~XukwO%?h{*aVXemKx z*xEYiSq24U!cNT7mt0x?@d z=U5Uh+2~nV65bw}7tge=x$g-WY+PcgZ1BXsNQ4 zg6O{C9D@ssZchE5DY#k@tEIw(T#qL>_U*4%$<@D2SoJSwWdAj(^N2r}lBO0HUmNiI z^XH>+2hSrZ^+a%^9D5AAng|ul89~7(oO!p9f;%A50_#maeg>Ypt(c}b+_jku+bJq# z<+b6Ez7L>=VD&pjt7^VUN2jx^=)-Zs2f3^)pbN{UfeUxzsP)^M;kv#ntAZLus!qn9 z&GLdmHow*>@EL6iE~$?F-#-myZv9t^XXo#Cjt0>I=wbt^6I(8N4LFxu8wHQrUIDTA%_-PP6v%!Ot zqqu|wMkXev&+YT~ZvS^pMnV29SI%RoKvsSE;%+C0@u~>+yj-VcP2Nl3Vu0qzSqaarRp@pL(SdhAP3ddUqE7&%Z?WKrYGxD1gBi@d}!o(cGppJr0@X^V9qQc+V z8N})DlV*+-Gq6VsoCUW>6@csO&j%?_0z*T=$`vws`GA}CDdvHZTL zzRBa@wP>403USq)u~_PH3oGY?j@ob?C-#WM(`cz$k%3e$hKFxxSWzg; zS~=Z^Y*zMzjF=c)Lhwo=M|@1cewxqGIX6n+jBDm*VzQ+W!nV(r-dOoHiCxf5 zh?PyuXAJO1QFeS%stwqZXb~YJ_T;37pTx(idQG_?8PbA$b~rY1X;h@3R;I0)Ay{BJ zWU)QXb35jr0IkiTD%kSvDw}|H<@+r#E+P@#c({Qh_IK(`b%LS>Uuyw z9V@F=ZH$rE9>Qj@)R)rsl}h; zJ)&}P0fnV%TkuYXUkSeh!J$bdjgyJbG>-=6+u&Q}7M;ytWc+i31C|&992|z5_@^4B z@7~2F)HoIZLtp!cU_7n#;Pe!{*OQYSLN%CPSA7fy0T?`{kD_7M1{?o;ZY2&b%AWp$ z-=8fHEMQm6&VHVn%av0uk3&1q?0@k0Zb5KD!k>gtG^%XP&z-IQ?Gc`1#^yJl8Yfrt z?p!oAgbdJaEY;?4w(!R!K;yowcM1FR2PS+^kHt6}$QY@WdZ4tL-n`;zW-{)ux%tpr zWH3W7)t{M_W4C+A5OTDY*W~^4_o+VbvbBL~U1&4f8lFGiFcXHS%FW|9G#pCB!<)m(yn0@cDR1=rDx3N&k~#b*JS}{weXQQKc%6`e*#5E{pEfZX67Ov6GOw@i_`rvGWuuL_2gY6$5 z&(t{NR8+8ItE#BbGcf$@&nwZ<)6-k_tMqhU?20d9v9hv~lasqw=kfUtn1s9@nP6OC zfop)l%tjMuTxclT|6J!TWxXBR!+0qsM#hxcQe{=u(yy8hNC7)@t?#_g4m7J@{eDj= zY@#hABlG0RlOk95)4jaHLd*1yJ$F7lym%PJ#>>U4j@eyzVq#(#&ItbZW+6}Wo2b0B}1mZ22tS%xz6Cekd%~^l`T!4uKVheAt5ETHkc!BZ@)8Ks9gL^z~kVf z%las*Ucz&E3tk@Bx+)t>fjW14iQ=i#5Iy!o^rm+Hg`YwpZKke%38Xg`dzIo5C zE-CUTb$-Ntcj<9o?lyyCS@x6-@2BkSh3X$>)KGoTRtwOQGkCGFUAF%Go}5e#?&|L5 zvi;+}+()LaK87iH@xIsnW}_c$IEe~>eUmjeTcmu_%lT&|mKzFn-mINtxXu6bi&~cL zw4|gY>#;ICT-@i+pNCTjeo#eh;73MA20M}Hk-zYZ=^sCGE5wKS+`&XhMMXtUu5Tbq zxZZj7*LbVtFB4N!PhprF+Dpwn}o~u z;&4nKj7j)CkK$~YnV7BL&LQ|MuiJkQQZt|`V4GoQm=)Jl;=jY>-l9nd% z6zTO34+sC0ud#IUTH4wL1qCzpZsj+hr^aPn4OU@ycXw$?iC8$H!^%KbJGo-4*+Aw? zeXm_n35m`S9J-=seW_fmw6yJ=o%CE>V^dR?C%X#~&s*{(?d|Oi3}(TbrZ}+&4-Zc^ zo#$|O#>Cv5YaW&4b~o|m_Q#SET-4hY6&2*<3>V>7O z38T0WQNch}Z>R5lsA^s2_|485P*7y_rSqcSM$}YpHJd=G9gIHh zE!C*VhE)wWXUVUr=?d1nDWK5FH&HL+I zH`lhd%1TPSw*J)Sh(}eTj!fF0?k#3!K14wQgA2R0l@(F}FO7#-97mZck0~iB-(gbt zoa|(M`0zo4Sr3+QhJg3Q#Rb@h{hgnun(X-f`}O*0X#{UyKIF{9u-Rp#q-d$BnHd{D zwf$2gFL3&ZnR#PO-`55VBt1Mlyu2=8W&~kUOpjB0GbLd)Igtx^CB1+DFj^ulEv<;0 zrF~LCLBW3SuOwg?5Y{e74$VFYc&Eh2s~(m{L_{di z!w%8Y+gm#EF)weV(zLssPbP0l+XkKbb8Gr literal 0 HcmV?d00001 diff --git a/previews/PR40/plot2.png b/previews/PR40/plot2.png new file mode 100644 index 0000000000000000000000000000000000000000..1497ee72dce267516a4e2f73b39d7d3cb55b1887 GIT binary patch literal 57534 zcmbq)1w&j-uq^KG?gV#tcXxLP!QCAe_uv-XJwTA)?ry;)xI-W~@8rAp{(^_>E(`3= z>6z)Ss;-GvRhB_UAV2^E14EXRl~e}f^e+ZfncUS_*$k@EVXdE+@i$RR9*U3 zweG;NFmGq8{n?iZnM0%5ZtrU_Aw|LY&vOAtj>+!Vci!?WvsIW(f|I)a&=emP)qOoU9E-JJ+CCitV8TSXol5ZJAxJGbLUKb&haJxOMY>2!OhK$1T*mOH@i394-XGz#zSw> zz>Dk=Q2&3AJc-{5BE+;?wv?7xS{WrKX6HDnfD8(ze+E_26eJKcn3xZre*ij0XaN}(&fY2;7ItAF_&|i&ARH8QC69cC#oz6dk>^J;vVwu- zg8_IbrYJNFIH)knw4x$$ChuRr+Wc@Cal|ETei?KTn3>^mE7Ihbmr~cd8FfRo42@6< z5JE#cdzG7rw}gXwhlfRjX!~|#sh)$B=iLoZlgid3!Z>FIY4milVt!%1pu{ycPqm7e?%4Nk|oerjlq z%pqiCQtB$WOdfN7VC;T^IXM}>b&UuN8~pt$PKE{}DHX1NT>(d$pO{Pu1SkouMpsPc zk&#icfg2GK3YL<$Z9psw>F;Hw$IY!35Vsnn%geP>JS@&fdl~t4_l-VkZO zbwLqfz;`hz4*5agBGUP0J0!Qk#cqkG`yc0Q!fZAL+liUTaH+^B3tc?vxZp4e7L`(y zSXJ8dupi*gp363FE_2+W;o^&n1s&OeRnsr`_YDofiKv}jyXQ4qa~pqe=VyXU7>6r0 zR(nWWo%W+?uGj4F1aMg6T9iPlsA%MzM3QjGGWFuCYcWL>9;S&HFsP_4RKSd%>w0_R zxh)Nsm6i?&sH%sCLNxqZqvI=<85om$t1wns?yxg(6IPMtx_m(GAft zo|}#=A`|~o_P^H+GE4wLscGZT@MMTdJrWVK*E-oYrnsr7aUlf3b=JiGsc?~9)z-qGQs7y^yru0knLwC1su#C@6U)ClPhzNL@ zU5&DuxIV4EzSH>lQ3-#4|HWQ1K*-k4X8(H~3Pi~H9~|dxxC}`7Qx>I4djf2fdOKGTPC9 zBdWl{+UW%cR$ZY)qc0Z<2@#Rd>A$=bh7k^-Q@?j@#((d)@M$tf2IdxBF|3MM-;>+i z0$3k&#Y$ae-LtJ%@tX9tb#)Kd*A2_Z-jr$bcDAMGhwK=+itPiTWWp|cb@D`3F01M1oUH-Y=6AJ{oNLMShW~QAU0^R)smBg zj~!zF9SRSEO=#u>VwxY=-{zv*2vM$_TzLkSQmB>w+}g8=isEC$)SoBd<+$2F&dI6y zDMe3TzoWe!{Bb`~c{G5*u`hW9I1SsH>}MYHDg=U|?zaI|LF|P)JBYK_Tpe zz-P>o9TE}}_`!NAd+C6KHf{XtSB#~^y1KdqX*^XWG9+%z$|KGDo1^>`anaB*Rr=(w zMbl&KyXB2_C>|cPEHW;QLmeKzfv!g34ULUAr%ToN`1s4q%PJyoesd`wJJhXdPcpJ9}uMY{{xQFzuJ; zGop|*?>Jvia?Jm6uZ)ca7l{Y+7L@kjDlUsqGnlBUG+SI`wYAM`X^E?%mo_3^m{%XO z6sIy@T{oyR99wuxHMO#`nlm_7U!l3XzSeCthh9>7JIF9GZg-{jNSZjPx?Gr_-wt8wZO?YZdWYIHLC+Jg~Bkzkm^mq8{-i!)a+% zR2DihFsK>C#vlOcxCnv~CjuqBl_vrzBm?*S+|(MDo6ui4G?X=fpOPK{RS1fv+_OvN zVfOx&J@D20-9!h-tlPuGFukjd7Cep{v}y88jErmR>rG8fBk_dg+xO^jf7vv*`fm0! zxgF5TzY*fw{t%#6%WgFyIp5V;6qE00cFfEB$%}_EKO{Ewvi_^`BS4TO;5!b2K%7hY zr}pjc+V{rq7#PvM%4Qjqn|XP=2heXQB&SGP=}lfN8yhf-Sy2RLCK_R1F??k_*5`}f ze^#vHa~ucQ9^SRs$tp|BBLu!-Q_4`#BgEpEJ=nLkRpjT7EUcK+Nb8Wt#l`|VZ)veo z13-Qvk2_)54BB9sfBvv@sm$Y{9Z~TlLl=Ou&2@o3G ztDBOyb+0`g>Gn03qWFD8$$=S(x<5_KXp+!mJ$I(pS%=cn(k!H-Cl^a(^_z>UZ!?ek z#6Mv7AiPpz_dqJgH*bW#rDgX}X>f#+4_{9YPl#Y{E-H55W}o#liX17-9f^SF`B{Ar zOoQ`oe~aCU`c@V2!DR5m(#k44GBW7(X5{kn(nvTR>5%$Q;tQR$tj9L5JKRd0*@-#; zy7=-GrTzSV`gBMu$R}k+4N4kz!pX=;N|EyuxE*X zfYHDI$-!X7e*IKYBN-@sdz+M>xTX&ULqP?lkYRpfUNLP(FY)8f!H3V1{SiQ_q7JK- zj&HBNGnBQpQtB8EPuMsV>|ft;Rq|1cl#3$pd=)<}o`D1KWd9wl|J>3gh*vCM=;YDFea+OAU_@}3{ zt8gT!^3BvbH{K;J9ZG8G=xAV} zSx{0?q7%ng&?uMV%p{2diXcwZp z@jJvnU+2*sngKO87nDH#`ZYRM=p`@zrPyIl5)@8O24*qbyMTE-j=8=H$HD@Nv^Z8> zi?^|>j?_|14{&9#GYpXwXV^Yn%4F?39}kI=s(_7>`oarSEG2ueNz4xdK@AR?4k1kD zZy)W%qqBBPRj88jWc)y)ZM9ZJs?ZcQF)6O?$HSYZNR?Mpn-hDu+yaV!Fc>IeJ{$KR zf6&##-@Eq{XO=N0dHd*chettap5dTJFf;S@!`>s{`iBV<#Hc{(bl<%>ulP!k?)it1BZ(kpe;Ltp*9z1@?#8d$ykP+v=*qZK1271wSRlmSHX z_L0Xmp~`0Tk7P~4CBu1Lk_iz5p!dPy_wU|q(z_!7rvw;(ph$BLUG+or@{xanLBuhA zd3e!#g^5y(xOH_vEti!v@GdNjiZAt2H1=BEO8Ddc{NeY;Z*c%O2XZPp#y`qB)7LItQE4Yt{Kc^bKf%hLQ6quW@D2Z zju-Y0PmbPWoGk17r-GGdrK14M$A^|FJP|cC3?N3ylx(h4((y%@yi;gX{E=1kl9IC@ z+kuOG$GDAnGKqT=EaVvs?ChD(4iTdN%Pb;r`cG|J&Pz+h$a;_GY{OWn27xW47=9^U zK^GVu?d(~m0%RVGQ8daL_gMhR2fQ>mkxD0|4h=Shg#lPxI__9yH_s(Wc6Jf8rf=Aj zP(o$c4gmwn@!9m*eKIp739YHZ?Tf=uU)bZT+vAG`0PJ$d+?>hA*rEEtW;MHWc>2ue zmW}Nhh2O9W3qRjX@xXRq^{nci|AOS<(O{W=9i18ZCdBKHhlsPY!T0!r7;mClAFUoe zEX~PP>2!7`KxFepR00wTqC;i9L@tv9mNWpgJD}8N>wtjR=*RO`_x>&*od~12ZkH;G z7dL7-I#X`NLId0C6gE&;+XXPaDV`F~pOCJ6?Ci%|I+CyMAyxRB?U*(;x?Kd&(0>T6 zqEcEAsw})wyOsg$<=A?7jwI59A|og?)!2_M>dOAZQOcJ7TM&t!-t`T5a0h=bZ^)x} z&Y+~wPg?-fUNV%ZV_{V|bpLVZ<)0tN#f_xXm{sE0fW@TgP*At|bM|{wkaOIt&hCeRoWLP(%xtt?l)a z4ggGTY<8S?POE~-0i~sXr!4Yo#Oi9F&b%q-Z&xDT-uE}J;ic;9zauqz-arQ06wp2E zjgzyX10eEt05F;cJ6v;fcVEqnyG+iY67IDAN=>Cw=S6P!3Oz5IW1jo_$9KQiBM~_G zz7bN3J_t@Oa$%C2n>JTyHMNEo=*Tdytv#y%-blcE^Ucq5uUvCl1RAd~PN&Jwibu5D89wCXy@P!^HqBDH%5oOSfz+k%z*pc;#R?;^{R#m!IXmt^NnM zLw_zGEyKWCOGW+2TyZAG3?48Ge02h8i^80Ik_qj%IfxI~K4*|6x?WpByH$Y-`@;_2X zhUgfX#$Y`}0r{w91=y=5K|`r@WyVvcWE_}&4`jmK5_^GOi_3dme*u+6_!*8tJGhV4 ze))K(^asw%gV_v89C55(Q&Lv+jL69A(`qxk+fh}MpK`vmAyJviNS=W7si5dI3se&T zN?1Cy-lJz#?{6MFi3C3H zo6CW;253is{~thOL3WMuntg%OSG{k<9SKEU?B zLzb(&fS+=WYUa#S?o+3GIRCdH0iJ(YwIIX6-r&WeoZI`AT2?tC5p~mCX=zx94gIGl zIZI-lTPeYdQl2mAr&QzaxWC&nuI!AA4bJ3yd#n!nt?{Px42^+8>>Nt|L(-rmQ}a5* zK13EWK_aiqB-_i7ueotLCgDE?fH)URXZdm+##9j%Rl?VIEo<qBl#`1IjmT_$?CJoA-V=F+RTM$PQLPiEM*?4`i z6fz$Ew5n!c0U2AzWGLvv?v#PMR1J_`0iHPQ!?aJCEGtQoT&ctMxZ|2ut-}zBs`E`? z)0^ zHp;aR!pg=b-$d>2Uu~}_DOpxz>*<{|9ablj05!#99(igM(qRK9a&8Z%(V5tM#-XS$$kd^=mvL6H)#Bf$4gq%!sXFEGZ@D!+-f} z_fvhUT+h*y8&D|r6TjGoY9f%5`ahDVv&hs#E>v6tbQ_5D-4UTxEkB?QncAP8-5lls zVi+K9MUt@J+rsbxX*ErU3}=6lPBGgOK$WBcOp&wVX@kkx2tgkxA-yG3aYU6L&;ooO zXYxvlgLg9v`x=S|@}+;S%Ja$4fGrmv9~Iq4=ya@^TZK^HeT(pL#d8q%G7ZT7c-U3# zV<{>W94XBMBxssv@c}Q_59_)=9|B3pHbkD)PzvSL(3fi^T-Y8ihbR+w_M~d`iizPk zA#iYj&7hmf&!feq${|eh@r;|D&Fb5%k4vM(9@VS*?DZS&x2xi}xZQ!|?3fDL*JlR* z01w{?0O{M+18SFI@d~h$rHjg7>boL}D02D3qu?~^KPMIc@(oMP{-UNH`t||{yP5o2 zE3R-#6%28kKY`Q>WD^<{^FLp74Jllid20VZYLV)gO`&k)eLJdRHSvTuuXnt@i>syI|Kd|q z>;A-%k^+*(+dVU^^I7VIAXO6#!2 zW@LIfl-HtlzNZJ~cY?*)UDBR0fvE5P49FsZfx0~;3hBpd`B7EBpZ@kV`t!NEP5J%+ zM8i-sI;Nr1rJXyMU2#%&EV#TmMV^m)9ao{k2>M9iU#F(LFSv*V;RthtMdSj7ff+C& z-U`57skfLWf`oxUmO-ss1VPzv##B|I)M+lQvZuWhi=fcZ3=Z$T`snJLuP{&ML}uav zg>-aOxQ2=gyS^JiK)|qlzVIT!M;usYv{(rKFHBoLu!P(@Q#^7R6X1Y8XGl zOw9FOY|;emHdjkKpmxL)x}0EiKSHPo0(m_XSrdXr3+1Ng<9^{+f#%+$i~TB?lhf+j z-ZU`)C1}1Kcfpum?;S>D;E~f+}<{LFhD@stUv#$^t?r^>b~B{1nv1SF?oLk{D+DPN7zvKf%@}D;s{x>3~3dD+ba&mpc2Ba#Eautgyg2~+IT%x8N z1u`sgs!-Labe#Ky!$4G6LW17U18W4@+RmQZS6?o?gk>+hy^%N_X>csgwEdsy@Q^y+ zxVfFU1EdO)0aeUC39zMb32gaN%ylh|aQ$p5vNqcdfYKT`d%a#J1JS}nj(#2ES zo40@9W>JIvlg7-4AO#2nUYK3b>_#JZfQKd}1?;26mHlHi#XQ^V3=LX<9yT?i3zDp@ z+epN(?cU5TFAs^q!mh6N4#P}OH#COSGM!%t5CMIM`1l7g1B2&+NAby+)D$t~0 zPFU`T1)bUg`ZybUxe9PKY-~~SL+@|St^~6SRk=96laNWWs=Bf|zCiltz$77Yj~~f# zGQYL-*oPxgDT`b=gF_b=|7drGX6cT)*&l-{1qM6StrfA7-*d2#S<9thHXv9ZO zj-)h4zz)UD?d*K4e+NU1kH6XkE0ZYBJc6lW`uDOgb!64aTX3UIj4%irJChHSjcxV2 zloQ*_qj!w~u=6dgQ7asj>=-V$v=~g};2|K6=Z9ByL6L+l(3HRkf&iK~9M9_pp7)%-peu8QpN{aqeO896rjOWQL4qyb6d9fQCVm7py@KrvXKfNq2 z4Z}J?s=&eousJz+VIjaR=;+X5U2dtg>m=2ZThg$LE8(}cuJ6P1Nh6T@W(%+H24)NK z__2(QVf4~=(crEJP#8DDk*u191}gPH`|Ds^;{M_*I#bNPUSRyj#pMj zY$y7AIhUQ09+AUCo;F{nY@0_;{#nyN3Y0VptFM0zAWUa)Sk$lZ@^3OrVK+m#$!Vn@ zF5pZ|?z+c|ba5o{tGYl!KKwj5vVSwucLa?5b^F8Y**&DVI9_ucXgw(bSyI&~{?wL= zrnrNEi>sn8qKU)b9}TVibK>9s^8$c5U7-jJL}bnBA&D9h16B8%P*j|xB2wTx{zUrj zWY){I_!Ka75@2rZR?LTyHoDd|BE6=#%l}hM!XPhB4Z8?l{tm3Kt1=MrO2WYcO}XEe zxq@T14pz!}F?1Se1isr37%w+6_N&2Z3@(3}H}jKbQ5`q?8R~ntNXEu|zsW2tf;g-J z_|KrjY5`+z0bJ_nl$5{Vg_nK<7%;IFv};DoTPR@Z>F&67(U>jysuUq*(#wlv!dvH@ z>Tc3INBI`(+)3&h>2~eksY$SF1wh8?>S|Fk)_yyDaADG;>D@)TT%lOAf$LQZR~;QIeS()^WKA85 zekjGP(6JOYpYM7mP$$Y-*v3B4e=m1`Ud0K$X;EP`{<41vn7fOq5?J;_9gabGeHT#9 z*FM|cXm4|Yytx6E{y-!^k_F$~af{Zswj3=i299;m_A*YZDd| zT3ffowe>N*=&JwTTDjeX1I>_^5WQlfh&OZdKSU2_C|VFJYb~ptS(n#a^F^K>wxz9K z98nPo)6oIq z>*r6euV2*SV%Y0-T{2SBc1b@(EhtflM7`T=mYqrA%mRgt{g9cMR$En2F{3N>D&gU2 zSw=S6qvEAx;ihxN#33BFN|?lJXRN*OWa0cosfq@YI_xY(!E*CXBC8=nQfLQiVkdpetD6zylU~G;5 z0M3j%HPzhj;Zwba9&Ks^pM``3)7gcNM+=YKveB;5F-L!3o=8x!u`4P>t*E;+w8CQ$QZvHFK=mw! zM#*X62NR8s#1N2bY9UMp&TstPuNZenIllLK$69bdkzS_q?9NfTE-rY3NIqUj)ir>f zjD-M-06095fCW1f-;Okm!hJUh2m#Sf2-LA*?*P1zL96q-;Kl|TVQe^}me_g7&pZJM zPy?i9hmSafa$aaGA`bIlDD>&?(92mhxRx&tfMCWHqf;L`P$=cHCkfCGc~n#`F}Y6z zUfWsS_%}P);`A%b>=-}2{-)ZkKvwBh(kKJ!2cQCvVT@WnUhup=5Z2T-db8oMNLyNp z7$JV91_=R9nsNEXMbmjIUcR~A>i>}aR^WQ-khRe4!Pr`}nTQfSeNs~JLV5Dn&}(NT z(uBJsbo}T%0Ril$2YM&XQ%wcL;BU=JZf;&z9esJC!HBs0sV|Irq3D#&mr|fvRdfnw6*u{SAh6+ zKUayQ1kgH3`U?W-mYEsYT>FW|RWT1Lst4BuDzAx-Z#3rUL|8s)O--*u(lgJ7{<+&-V|2>^aZZa-s=sh<-tJye_tLZ4-H+`` z_V{>SzaJ9LFO}uKwC2>}71qAU?`ZP)dOwJ7x*d&~mYMZ*B9-f#;K!w;ZCt&pH-4zT7&@ z?953=5j@RZZlHw#NJY3NrUNkctFx^?rn85xz`=n{i-=Ruj8(3(|HlRte*g4bqXUzS z7Be(D-k;9&&t32yrq`s{Rj}3OR{r+vvHo8h2^CfU_45?FSRzj$8nCQK(O;ivun=_h z`^5+SKCia4dyeg|eH9#cVhamnbs&g9xe#ARA}D2K7;x(GfOBLq-Z&#H(cBxy?wic= zRTl8y0X3-fi4f2IM6(sM+EA6_(W&pBP;g+BmOdp<(V!nnAYN@8@WxEV0$QPS!q~Re zRpLs>RaL46v1OmUy=U{3{QZA>dLqfgt*?_OyWiMjz#Cz#;E$Uv;0u$g+u)82nY%xc zYthcGt=((fcqiF#f(O33oUcI#ebilT;HUA(mU=Ffkqa3ap)@*^X`4HG&AJwDk=K@TUCO1TUpArUT53@|Vxr$T|Hd?KfX zLxKU&cPtA98Q9Ci$rB+1*1URo7KQAlwr1~i!Zgyk|JhZ&@Eo%AN(D0~=T7Uk^Bz>4 z@z7+J?sq7QVKO>+pn%Mbbou~z>h2KVlfG*#T$M`Ph0WFV*j!Ret|&2ws<)9Y*n>qh z30u{RDOE$zHI&Iu5zf}m<%U}fWHn%=CS)S#}P<(cTwk!RaQ`!U~K5#48P{9zIzFR0;GWwbw)#3lbe&8 z&j$zIN5lXO2Bc~Yl^Y`BXuD<>B-Y1r%3&;Vri$-Ur`6tfpI5A6+uQ%(a?!zGTtvk{ zS|FGyD8RO8*nLBVc(p8ayf@Px0>AKr9A|ks`sllL zF8!&lZd<;TF0NIr;81lqB^_O1ha+iaW%lRG^V!4o05L%&9z{ZF=(tGv`*SW)Noh!5 za51Gm!NESS4@;bUbff$OeOrH06q^l3Q855}uAMOlUn|jj%T=leHUm%{-P!>;6`i z&BXhCKu!%kHRayI=&>Z5=PyaY$zykxTSZqYyVxRkbb%})^49FrDFRB0i2&d<4{oAR zM7!JWPVn84%PVhg?w|AgSz<`|!t_HcYrs&51Y?AShZYQm>ljSM5}d);c}P!rfkV&0 zW)9MSdgc$7SvrYbtE&3qF`vS$E{rGtq^>@@l@JBDc7E3Peg0}pzdGL9mmjc!`EuGj z%o(ysd_KfT{LSY{M>)>YV3@b~*+w_B8)uehZQbRjXl-*_>DIb_)RNa3?5ZnLhNRCr zzp}|X3he;^uq9N0LZnd+h{QJ|H;?<7Y!(G!wH|#$AXT#7i}gP%Tzo*b&SVeg?u?0b zdE;+0>^L)!gi`(nIDS@JQ2}ZEMeef|ITyB`9xaoU5iu45YgW>PnG>pr$m6pup{GOy zUh$5XDk6DWiPtmd#fAT?OM~v?y^e?LFwrwRA02+}|)i1rLZRf!E(m#_wv4xm{?8x2r$xdup=Azyt(e zL7~O~f#LYGYX%CCQNhxK+Z=`9JMVD9(#zQ&P$j6L7MaIsetXGo)M*;l-=s;mM|Y5 zpN3{lMB^{C{rzZIP%;N5>LtJ8^h*7cldu19Zjn~Td@C&lBClBX?6%=T-O?hfR63-h z)q_R6sp4{SHrCOCjgQ|Jkh3*Djz$mzkI8BV(LaEW1!@LmhmtyxQ(KjBx_~H5@C2vL z0y*7$vC33iJVB4n%itzD}!oz6Gp~Gd{JfPW)CY1 zi5I+I_AN4-bIIITwY4Yj7@JEof54TDI$erE=$YqtmI!vzt^v-}E6lF!5^1XJy$Lv7 z-)eHQ7r%SGaNF9kc{277*xVo@hJ`~{r6?evP{lHrAXO_qSZQ)2B{myj?RU4y5`U4TCLSiowTcdxIH^jvbEAfkqsEvoBDRZ1)f`GbUzi9Eo@{%?JA? z%`BswppVo9-qir(Zs~y5X4Q%1ci2w zU=0rQtL~SCXEs{e(YZPF-Z*>?92R3iw?joRpiu)j9gT$j0l#k4 zxX4?P7kP<3o0{;9LWZfC*a%Hg@zO8msz<(qAbF*5NpU+8>OkqUg|e)HGW?l>AK=EF z1bT3lb+h`#;hInJ*?9$!5Ig&jg=o~&w6vmtRp?Gl6^xXWQ6JRvhMe*#>wU0PoT9HU z43M(@g#`sw_2n}Ze7%FG%AjrbBms5N+yWhM^`>uAX}eI^y6iYbq2&!D`b+%zt+q#G zI*z6`U={}4x;BM=pMYv752!H+N@FEGQXWto4xNGyUwN(UU%0^63m2`-+g}F#y63b4 zHS|z^EN*JHYVu&$hAl4xLcE_q;z*NDm$i)z8XP~>O$B5z1i0gNx}m&{aN4;yO{MW= z_9mQfc$Q-G@65+2RKP4&$Z}tIpP%L9{q?~8o_6etdM)-x1k5BLH5r`+Z z{c6LPxuS2RTd3qE2=Ogz^7uV;`OL>sa4maxTU*VKQ@L_F)_?7TObgVM}&E)i2H1x!QJgQlXhxTqNVekB;W`(iV<$Vd3T!SmSq~5}Bemuy{^L zu5W+=TWUyphSJssoLJon=dM@;OGzQ>s`9w&YXwQ;R(d`OQZ}AXHg#4ub!l0(34z!o zmXNTev*w*;i3sK+{S5$O+h;sU)Gz#M%qB27wVp-C z<)O+GSB2S?W%Qos-Y&DNqi$|z-rvh2n5bzesinRdIM3L*7O|e9iZw5tSIFS%nj6rg8wFBK(TRp#5j6ldTl(@ZjL!=m-`D26#|w(CRo4fvh>oDlEJ;Gc(iQ zzt3fl4_ zYn_R;(a+(Iz&tJ8(Wod@#Vm?^el20!)S{ZWtZ&nk6BdVu>{nY>9X}al;?+Ts4E+Px zlc%=QUn(dB4cP)abDud{F6)cYT-)R3)ur|D zn`+|p^v5dzSMCxUA_5)`4xX^#$w}q)gEk6j9TB%8n|&q)ndr%}Y*2HFx~3MJf&zYf z`(&r!^KMJaq}jmnU;jtvg9^16HVZ6I&$1WJ@dG3h6?zNJEsYI^)FUjHTZGk8Y#gg4 zZLawAE#@M%?oQSEvRy}qfz35(0qq8={@)5Qod%&hrUw;fp}CyVs!^2|K9sLgNHBPU zB)?t3V#+>wT2UAO&_>57!V}PD^Qx%aHjI2Ynmn%8 zWQi(7mCvo@cx#9Z<}Xail_nRE=D20~{7hf2oTidRk(i+U_=NvBL4m{3^!;CK)?4*} z+pic>vQdISgv>(!-P&TAP^>r$bA?Vem6r7*Xr9F;VfHCl~4@d$fPMzc@ zk!~R~N9*@iX4=}?UEf5XQ@DJuclubmA1OFEH0}!2D~W`B|ExRpyq!1Acm~2*p=)bt zRVMKA@nspL3+_J~w^#St?+Cgn`rgBV|OZpc6F&TN={aL~}Y^5X&m0*$D~Xt7@FZ+c$*SBw^$3ie0ZpA9pMOF+d_ zQgT1is3k&uO?xlY44r`Hyp^WSC*V|#e#LEtB53N*N+WHFk= z($d0CLlUe(dIsQBNs#{^rn3`~beRutjxVp?9d0%4ydvP5I{TyOM8b-REwAg_taj-k z{Dg9)fUm0ag_$IvSt7*Wge~JX+9dGF>h5sr>FG&-q+BuUb}tr){$6YzsrjvOF-&O_ znmiSNBB$>ZQiK~zw1F&h_Wc{}Cm4Vo)Xqvh8xazR5!t06`f z>(sQuc6^D*{_Xs&2;^d~3Izlv-)nqZTjMXsV9dOyrv+Ikb6W|~n7b!(Jkn}bZ`IO9 zs?gv_Fagu=)!GG8<_7cUn(9Mzm8}!ZEn{@eqbx1W4WhlQQpb4dWgI_#meQvI8daSU zEi+(c!Q)2C4@4kA{rDRc6@Q^!@oc2Jy$Djs00=R&A>eT*3B*GciTl;$G3g$xD7|9i z+^$M{yuPf>ZAYYz&*2xzx9ejy{|9_Vrkm$8 zXOE#s(g)@cEFnZQYq6qpt?};C)S4FTsi`)%$htzy#+^eL9i8W<+Humt)Hq*W4=qvr zQcdE*CJvzk`KGmy@r#nLtd&$M1_prIW>ypFvU8`V8x;zHg)?t65FQSOhDDVaZN_96 zHI_1EURR#|-;tAI88&k$z}0Yj5McLZ#mm*T!3=VIyupDGhjDfQlRzBK<6hSm3Iluuy_u5f$hx zkDyF^#fTXHwD5hh1CvUAtb#5sHCiBm|MN5`1v5KGO+TiF5#X(`ut004f>!XARZz&x zsx;BnJB8xkG02yua-S})0RC@&3Ec&|H&Da5!gB&zT7a<<7DbeCctK_V*#l?-9Iw>W z4fnh+`Gs`y&GM{Nh!>iAdU&2(w#A4!pvOr5cL?nCY;IQc3Kxfh0rB7{R*qzs*?!!pHdDq$Rlbq{6|Dd)L;p4lDCfmMS_cxxug;i;DQWudKRDRiCw6$r-1>ur%H-x< zyuG~w3012fHtj>KeS#L2zyo%P%AiWu;0`5qMrr9+YzHJZe^I~f;-JsCTA3>C>njiw zcFn!=qtlCS1`{o8CU5!!0G6d-0$yh<+EE+Ey+t4m6bVq%V& z8t0u zOEpjgP`Xz^r)6q;f&61Zu0`rftZRW9GuQYJ)y{LPLkVxgfCslhpb< zy6**G_CGw!PtYlmwj@*M8~*dx?(I3hc#=}77WQUwJYGw{g?ryA3Em;){j_-P>+~0{ zGbv{p^80(N+|I`Ke5yV#U^M&%8UhO1<1s&hSYS4&Vhq&q9YZEzXWhxnEQBV1uu5wf zsk#c`x7WF-yZcAJjN2sr(v8VdGT>6ei1x9Je}L>lEF_Vti)26?uUBs2&J!VRY|P}T zkG*TbM<7p(42AGGW1;`% z2Bym;5fz3$`q5NaeSP4!o)x^>@kI{F{vVCus{eD|a^zwiIQdkg%SJ|iDi9vN`n@zC z`u5T8xY*VcM+;8^c{-a9uuu?R+A|+uz7^Dq)28iRZlbX9)dn=;U0yo7g_YB6Z2sK3 z`U_uO32!}3CQJetq_zZsG{nxi(JWr^6wYHmT|#%9i1twC&tw>}{Cl;Aku{6B{21Ew z&le38g(A-L6ctmu*fw6^(2hdJGg*j(15oVk*CVc-0W(UO(%GJH8Me4mh4{b5M;jOo z&6*bhri4lSiTKf26krT=J)M1?&YTL4qXKE-o)1L2oa0eY{C7S#KKI+~d}yt~3H+^7 z*HYw{06PYCjpSU#SW>P(YFuR1kqlR`vTz@-m`mACYzx~GQPbl?DPQM4!OT*54oDQ2X)XWsLDplH~Z*`Z#=yFu46d*Zh$ZIO0u&0u-OS8Nv^KohH%1^&eX%CRPuX zzP$P5 z!YR${p!cS~H@Tl_LD_(>z&DL~9Z--gsU#_|utXWPt*O-3qtHJuRNS#3QG*;DczrM; zQ30x?^RD1u20+fx}%e9Z6eW}#MZWss21QPsqNJZwNWuewv%x8?6v6{%BhQeawayd_E zUvQmBJ~}!0Z~>SKW`qF`8=Ix8XF_iVxc|#cy0EB!ccQ%v&Cy#W$8U7HqwZRjlO0K?t4s(2E0*~Wy5>XQA*1= zGy!SisI1^y^W$!N=%-}eezd5}y-(euV96jl`?RRF195l-Doup-5(+v6S~GY9>VNlE zu}}zwAnLE*LFQ$${aCV0gY4;|lNbz)RIcfz;q!nY>jxvOb$V%DX;=>R{qXAgz&u7m z!k_iePAcm~fbnb}ng8?e^O|>5)u}PMoWu_4_^5&*7JB&=mCrN4No+_8^yz#Ve?j21 zK(kF${L;Y2bvJ@p2K8=2LPt8S5bx+bdrs>`eYd72EuQ*sY@;t6b*g(NtH+bL-z&tS zmmHiM==OaeL*!wV6b4S0yx%-{`R@DBb&X!g^x-D*V5^YE>4Wo>$#drpYR$Jyy(@wYVpbGiX=| zYUo*N7NUX){B$k!v(4MCJq(Vc*P$WQD?nUX|30_f{c9@ws(z$VW_VOj&>TBd;8Ul2L?DcwFEX+{DXqw=YkSRP7lS+V9wZsOOGEm9 zT%A=|mTeoQ>F#a>q`SMjJEcofy1TneTDnsjq`NysDJeT#Z4@%59P^2$?I&=B$?BZ^m}Y&JPwFa%>W`!v#$9MH=*V!XN4MBt)3o$2`0#EWiR2*yslmky~-R>C*FE5|q&;n*= zW@CHBPepimUvJke3Hy)mic`ic5@5DM-b4`eT0~ZdOB`o4b*q!I8iwJivNk&zs#lvI ziTOo^sjkk(zJ!+yy{>M@6=ZnqK{Rr6bAI*RC;Kp|0nf%vv}+5vD1AGI!tA79 zi?B1Pk=*uI-`#ec!E&lW4?Met0dUC3V0*WkdR}T9`W|sLP3Z6gMNkmf{jI0jW{4{B z(5tKU>d3dYeiMDJf=yiedftHJyItk1PDhwXlA;l#!yd)D%SNccqgkZJk#0(t-e^8m z$8>}JsWh%e5 z<2(lca~iFBX5C~jHYE z%^D06Zk~LJG&b$mAxcLo$}ej3x-`q(BflgVKrZxceN&wsE>Nf_n1ze;{phiYg=r5tzXUX#JQ@q}{vU-Y<^JE4wCdgV?H{ zGrYR%5@tUsD@vMCY;N|Oi_?T<;magQNWp~u7ZdCG_B0gffzT2?Qdzw?>#mtkUdim- zVQ#oIvMV38{-!9Vg#)&Oy%D$^*di(<*ubZVf_Hs3n6a_R{?aKa6ITxyGVm)hod+r{ z9oP&Lrs+6K5%yXhIfpm|b`?oae(8j&`gw*djt82sGZID4zZ8T&j{Yc=pv&6d^y*ud1TE5Ko!8mC!Z0q-xT{)Swa%J_ZbQ7e19wfaD`qI;#M50Dk|s>7wCU) zf5|DS;Je7&a0bB`=}qL*_x?;~5G+Xx@)=v7tYQGTN5L*pr%c%6wCg4%D3hv|k{H)Eq^5|golS#3Q$xWn$34FM&NGS?=2~X5%dDU1}44W()Ye3`4?Dv2C=MtrQ`*v zKsqa7{vMs4wO^71Zs@?Y9))(&;O9X8MMxkb!d*wlmVVo6Viqkh@UswMl1MBp^0V6Z zIwRis_u%0|Xf#p@eL?_}DA2sH7z>2!sZ*zxMqNMs{$l{+#I)KaX<}l08YV6RTz&lc z%T?EAl16sjfBz}={bGY;>EH8%yZPsLbcxEvzDI99K@gvsm_R_{7`Nx<-G6kc6ln)3 zh+`YMGQbnEo%Zz&fdIZ2fF*%G{kV9A?^ znJwZZ{Qq)eFC0oa1&OS^{p3MAPe&>F%H7oNSzb=^lq=Nv0j|3qCTxcuRLC6P;n4rkVT^n>u5aIb&Bh~e5# z0n`Qsq=4|T|E#VYFoA*9q~#SAWUmyYgx~8I&K$sVbY-TezwpEg*QKX(=d8Q3X@769 zJUwv6-Y z=Q_Jgw=DOKlVm$srLsIV!T(&^E3;&$t7Gt=K5feo)9)6tLH4~RKKvXTjCkCEzOj)i zD@y^agvw;M&f2N0J3m~}$63}##kWL~kTPljB1sNT#t7?4uJ%1TDg>qra93O?@ooHI zV9+A1;#Sd&rBvS51`FfPw|DNSg9sy_sTSPOTO8p3arRa#TF|EG4}ZHObZ)}kZ(tj_ z#f?eClCw$+yv5APX|zV&+gIMB;u69_L?avay974h((+Rm9%HXod2#W#xgQ=;+&=f) zLqD1aASpWtkmz=xWHa#KJ4$qrSJfR`r`okYytK78thTka4y`=5vTQOGYs2vFK%`eY zh>Jb-OzkB-EQ7D2)A%=w|wre;ya`)a6GxgvsO;`AkM&zqK>8Lr+)g@?a^aG@I~ zFhDk0Ff3;%tI9gFff!pd1p;~wRgD*bsq$a z#rC-SKBA+b(z`4aT;Qmq$`S9~pA(3Xtkn;!Xz$7v3n~x4u+`MiGa@P~PSR~HakvNoa`RsgYLubO*3EwmAWt>GoC7%4()Y z_5KYYCsnAXq=i+ex?GZZs0cv2d$>HZ`3GqKUG$~*wY9q)MeX?$duy_Q1(zQ>{bd}A zk{wd5u1j0n#x^9Ikcr741Adc}2^T5Cp{=o6;adxizle5J38R}7b%sb&i@&&*n3aSZ zCpaSW{uGmicj}G#^3Df3??)O@T_qTvA|a`%1@{P@3W<`>%m885(-YX&C8NxL2z7L- zdtp}euNm7vys7xjba%(`PFIs`rxBGU&_eFqJAxBbeEikM$In9giGolNv9WaIO|?vx z*2Rq&JUj%#M2U$6+(@gdreDEpi$cG?qImSjJooWssBG^yr=XYD7|Co=R>@gjc*pTF zOZxZgN0(i^>kba+Hdr=Mu} z_}XtSIH$icN#ad{aB*-ay6Ei{6*)o|jVOAjA%68Ry^xNWI-<(T+VM;*VCv|2zv>NZ zNDX&Ns{Wd#xPX_U6|&{*nI*qD(R{tb|M#re|Es#eIN{4X6k?i(xMSIuDI|Q9zl9Lk@|JPA>RVUX@4!3(LllS}Jg@p#VQV zGvd@&)I)+!CPsG_4pk^JGAF7DwLuJ!5Pvz#$XvXe+NH z|apO zT*emdhFTXvO0d3jYPZ}+uY>wLPg2yts-UQSw{zPuaJr+l;ff3)p?=f;0m!yC*R$}+$;z?#SP6G71;wHoWKvQD z7_gzt6;M!t>$2PrMs`d*lXK># zCm^Gi7_v_;RgKc^RoaUnJ3GDamE4o#A|u(jq&&FY-Pt~(WwJ(XFAO;&L zo(jPGSkTPOK=1wV5v-%x>rHa3o(9)~vHKCre%KpNa1o2xmI7d65og0R>N3a#KCU1w-IyWBqEw$mqVOu7p|&Vs;<^xWda15 z&q~#tZpUit8)lO@02o&!X=cx8@e+ZshiT~tDZq-$f-|&ppw_&&yJXNplJg ztg$4EbvFN3b_NDI{bFFA#|S3m)WXWs*4kNT2WHXfX)ygrB)??&X^n>rkG9i&3G4%l ziw6pAY}p_wLmsn5a$WqiFQ&y%_(-&`4vZt?nJzOrO zqbZ>*i3h?TU|1>u!^_+AQg4aZ!u;nCNL!_Q&nA*OyE{B&&K2zLNry)Qf`Hpm=s<8` z;rAlu;7B;&<&=y943bv+>rvwEV>Q+CebIje_xJ1Fx}&L*pI9qkUm7|QoPaX*8Ar-%Rri0SRSCakm)Waxy1Ae^Fs1tO1mC?OEOzHD5j4kZ&Y z^(^u6rFke-azvhY_%-W&`hjs9#6Q+ZkKT7{h_5YVB9vKkBksyiKY6IRLw=Q*5sn2JwB#vSCfn!btn4ze4g>m^}d(Fot$q* z)Pv)44%~F};eDnwTRx2Y>T1c2!48=at$rxtuasm+^F!qY{qtwuLiE|vH`w?6^GCDL2>*F#v z7S}2~E%ss!TC7m(&{;%G1xz9CxR+PT1R_>eqN7~vQ{)9zElrn}b2r@Es^y1EJXe7b;q(A%`YA$}o zVwm{~fN1r@B|saZ#k+0s^f4K{mkmOU3X8)B9?!jfkkjFD#Hw1Q$4(-rdJhxy50ROf z=|kk2@$X`vT(RI-BrPpK!-9pK39jdR*!d|%-lSg<#)cIl|4T@MhieHVhk`^B8^sL2 zO84|QcseF^)hKm*VYOTby10#DWkDkQor(Y!VqPtijqQYP8NOs8&0w1hhSB&3I>K$$ z@V&ZSL`2iC?A9pKek?4&r?Y_W^@#;U>6}pP1YbPq z`bq6f3R`VNXh$p?J3A12{w54St;g$sXTL0}YlcN5(bK*{o|^ot-cx@20t_%|IxBk+9ooweYi8KH&x2?{cEvB1KB;2Hbjd~+T-;t zeNJwf)`@Jwse(o~I{j31So{U}Ap>E*I77Y7K;};{cdsWNuWrhI&1 zqz<7aW?;Pj`>gl;9L)G;Z;r&_kEvTke8*MnSm%oMgI?581pQ z)!?AS>tEhPa`?0uT*gLEM^@79T~|OomxP!pTijD;@ zA6xVj6%}|}T=s!<;pG)i1dEEQrQOP~hKn1cGCfVlYTxzgqkUYFB)d(rO@3-ScsoH# z42^uWOi`}|!RZ^Us_LmP53#yB0_w;}9LO}Iz-6-Pt{W76jczQ0j6&PpasuZu&vPu= zAN5>);49z{f~@*qF$gN5(u!A?v}!x!p&F=HX5cicR0b~%2G2G}WzhT%j%xH}1S|>L z94q20G;WKQZ7kpG)D{1^$EK~mEu&AYWdfq-aM~gmF z8&Q^`I_s{k#@4$L6pg%!n(NX{@k!$MtF<*i{1}yS=G(b`hasknnv*lX8rdsyduL_| z69Pd*w5;=`3ejI=-Jwwr1A&gw(ajC4@smi0hXh;*tE&V;pFikUq@#OnWC{dG$SJ(S%^^Ybr-%-50DgoueA#z{#XtlmkW>7 z@Zf`kMuCGv&-^7%=PniQz;k~&1`hAL62O0a@wRW`wNyi`Xr#r6mAT z$M)CORuVMz3(ta& zifY=_zx$;v)2@?~BQy~W4&}=|Hx14FLP!WC3MzOsEi6ubEi8_Y`{yy>;B0Kf^a-^^ zs%xcOz>!@|8`jND;!F!uK9ngT{#YNu%j+prtN4|KC^i}a2)yqgz)<$_YW9*YAHhe6 zL^#%{8%Twomoz>EUdY~*Nxq6l=u3HDZFp~J$WmRssce*){-u);JAp&Tt^l#} z1zJErzdpXlRvgZPbhDgAJK-o8ftc83AMSs&&-t~n&+K(Jb3b~!abgZ+L^1E#BN zh?L6V)JsxKnON|ZX!^1XwJoyMgqcbvM7~W>6kJwOANbmob=ioztj^uA&2TRq{WJOd zM^gG`TM7AxNB6lXhvLjU1h`Tx6h$kKi?5sfKQDj@IW!#5j=;Ht%h8TOcvXi03KGOo z)I;{nfnB~doJR4Jw4>fY2UXt6iJe6#obgYt!`XSvO^tDl$a~siSY-!oCZ>K<(_fQ` z#|o(k5fb6yfN5>&1opz6UGU%3=mMSMGl5cmY%s)hVS_1fdSHWCXCi4>88weX|71op z9%h8Z_ddV`11YprEP5xD4TJScT=ZDM8d91=lTFPfEeKyuOrS>Q=H&A3UL*!X0D5W` zMxE=tYPc|TS88Ea)SB^7u9L#7PCNBrmq2M*OmW$?()vb>jnnsz)hCwJc?$Tt!^MGx z?@G2U?#}Z9Eam0RAN|J@yIXJ~BEX4V2F}$D9JQ_f0X%yRvYXrb=HLQmTU)9=4Rz1L z$%*%Ew7}xx{34~Zi#m8x6RgYI;-wj~&5J(BC$RV&m6U+&Bpxytt2|l#Hzm>cd8RUw zsnL&a??C<*+sdF=no128O$QW4Muwm@o@R%9(K5o6_iXZ{3ls8xU|T2$YjlA&)zaGZ zQT3uR+x=#0I{WIOB9a#eg3wdI73So`l&vvPcr-ENu2)_j0a08I;r6!CpFfj1?GNpj zdLSbd;}O6~!dl5l&v!>B&w-(N*_p03tf(jqO#j>^e=FuC?cfER(L^B!tho63GxD`} z&z`xNK@LyRw~C}3J!z!|OeNh9?YeWvrJ}2^Z2ZtZ=PdC>GF>=}!Um#{@i&u$t*DlBgF%bYi1&v(Bfe8v4 zP^y}#D<*_=w!%%L9LYk(B`-4h!+(&vvKVfy6QICBLGA2{3%{2R|L?$wCN8hP_**pM z>&JXVZHuqCPJu<@k;|(2sY-?JvA6DE$rk2A#%sae#8h=mMZ3ShKod9PUto+*mb%3R zQ@8LiX#W7*+T(kUTWmAlkO?UpIy5qvs4xJEwN}m*@d$x{g$rydb!0J&V0V`Cn!f5yvqnO3 z0xRrKP+xzZxuM5YS{@5?w73LhF)uGn?&?o`6}=ArFB25TA^oK6m%D_wXv z_H_&tq%#l9^|QrfSts1BJLcc!a`>6;av&{k2$mRy42hTj2@$^}>2&<2{m7Z8tb_yJ zF|bE)egym^5X+v-0N@_5p}3Fr2mvB39|0~dIFX=4wq#N4R&D2p4!RbPMJKo1q#n@5 z90vqoVq8)3H{4?v*@-iKS1FK^f&s#n*-+nJ0yp>nT*=K}Q}UUoC-JOBtCrgQhe@>^ z*d{Fp>0UOd&MHt>+gie7VoqQAPm+VBQXK{Rrl!mslspC&nnE69GVwnB9KGI`Qy4s6 z0Or{BCSc2|sX@{ST2z$$%qmQpolU?cH|ztB^uh+21mZH3Jpsgka1ZEQ#tAdIzbZQw zxLCIP(8*Mv5)}7(F^GA_*C>ifmRB%yaPYE(yemB~F1~yvoQ3KQrsr~bSTyL+3m6Dx zNw`?>#lQVYS8`=54mn#`0n>rc`e|$@q|}$yP)rVii3!v)0Ou6@QNt%mFKjbq)Z${g ze@jbYeWFlMYyrMWUf$JEf2ArJlI>BNCAz%-+-%m!4 z64aip&@gH-l$rTp2Cy9t4iHv!Q_<}KidQ83tV}T5Ps{^ux1Fu6x6^fM(SX+UPjGM$ zFjH3RwR0|$5Tp(gX5Gq5gXbz9!-qd#T)39Li;xfsj9=Fq9!0XSSc#qyI_V@2_8%Obh@Wf_{>aYl`U_)1&6v83`_eqTVmeUI$d#&jzKK=mTo!i z+yJ{Y@bgeh2a=$#$mq<8KF2g7SJsUz zRcM806&Qau{HvQeM)40$aXS*V{<`Ln1C_)Pz{TMVs%hQ##C%}uZ6VXkt8+tN$+a7o31 z)zk!LnYQGcm)bKXeTT8$cQuy1SfP^D4}3sKMQ|A;~f2g`ip6` zluuz(1Q`iDzpsDUgL;cCI$05(W7LR_PnY`^$Xwm17jvDRy}vsI?UfR#xBhH|M8=Ee zDZQOv>2w2Uv;Dg$-Maxet zIXRoZX>&@@T0=`=6^Mz^H8(rEDP>)WfCrNM$d{R zff6PD@jlbT!xZW`!#O;iCQmeCx-q1y3@G07;HfR}#wA4JzDBwNR~+Z|D} zJb0jgFrsdWf}0!2U0^oj0u9PB{^OX8m%=`fNTiGi2i-A)Hjk13u=nzTe#llI(_Y-?*Y)ipp0Cc`#Mx0+9w6gWU=RRL-_lclV! zQFu?5fF%CyMbyUL;?B-CEpZQ6={2xGmq^`*=(ww>?VdJ zOiVlbfM~UIo{&QID}XHoqVHd9zTowy{p;I5{POZ|)2#6mIMT@n;ntJY3>{q{ZgA@C za?&cVQ6(i884VP#R{N`)-~Je(WR4ZBebllqD@qaIM$F{0`||NS&(1>Jd(;9#*Lz0`2Jse6KOi3 zzgx~~qu@uAF2&8*B*G2rHvz2C2kYU&Yyu0ItG{n=eM2@oDl$o_1D`1kkC zQBj%n2rs9#duBrrB!yKI4W3R)3IZ~8T8yr-xEO@>oK8N>SX^xHftrb4v{SFRIi->k zurZ*cpMK0OYpX?}Rf&$DY5r88o8BGg2N1s~K-OtCiEV3G-I zsCo4bzQMsp+v=3dzgk^`wrwBWNPq z+vgq}Tn5ajDEQU7p-#7Rngbi#ubdxEt>NIHy)I)X9_FnF+`s*Oed^uVV1@nl3*ebC zF~P$+6gBjd9Dr1>_f1M?zu-fBD#DDx;`g;-2L8uoB{;CrX{uZ;Q%rRR{|3?fH#YHI1V#kW_*bLYGo*ar8ofx;1Hrq)t{2MU8Gp-eLlVJo5x8FL)r{u|Y0Jf*wVLoSuGJQ%ZVZI9$Qo*KcSw3&pEZ*rz<`Dy@q#p?>F69(H&vpIQE5R z=Aqaidk!tGPyC}-j{a=!!3}6j#%MfX>e$$5!_K?*nFsaeaA2w?=uEuxcnN$IC%30H z00f}rjCk~EuqOmj#23+1+U4}Qt5|zz>q7|B($IfYTWadZpKtx9k!lk!hW z2}C)%&^Rlpon1&))@#dvEf+OG!3Dm`iVB>UkT#r~%OI>X z-+!M;7uOw6GLPvdiLxP7iXjt2Xjd0bzDZ2n8`8gfB;s;>oPczMug%V91S_;0UMwvw z7M;*bEurdz+$_XeB}e{gZSCBom|Nzwd;hHi4Fzx}OH zRs5Vl37Q)r!6WH$^B!{qtS40hYM50FOu^kz&YtL zF&WZXLynv8o@xVKe<}+|kiezz`sAwj`yQ@k<*SolQ!NS&&ABUaC!b}sp^+!J@(A2A zQ{p_d6$s+P!9~YmPq4`^Fr){=u$GsDc8uY;{n3TEUT@7~+CsX;p)v@}#Wu%`482yQ zT)ZsQnWUo0KyB^MBKZo6p5H2Gtu-Mf>=;0*B^63i(%V<#fH%;e*Xi`hAM}M8bpt8H z^Wv;$rMwUU@$`2}4#S_}cO%0-DxD3VY2$xUZ)&|KvZj?#ROIU83-qtRW;!`JyE(d> z%~P+bD>FQ!Rf2#>&!7+@F*5_~>Vt{&GY|AlvW$$~@BHBr05b*ZaNuzE%T89kP)RQoxa%@r&o+m{fEn(Hbjy>QXSt|uRn_Au zc&w330<;~UT$Qq+xVhQOe2N{4`x_l~)l8Bi;kdZIG-0-angUsQM8MkIfmBccg)MMs zQu2sMNK!x1kdZ&%z#A8c-EjMuvyy@x9JB%gV}Nztq=XfG(lg$w?y6D%9qoLhU#8N8?Fc@GnFAqfxSnsds zHhDTWaFm|YN^o(@KR3jh;ItDt{T>wXW^-_qUU*%qNLMg%%FBzzlt<(K{HxgX<@VTlrN{lB$E8ALUWCll>(@4+HL~|iT~JVR?Q*KC2;gfl6!h)&!>ycoO6 z!!mPZCKJYDH&H;cI+1fK>)QP}z7Gbm{(rgMJ+A+~0EBhrS0X@I`QLnljeYmqYjb&A z+-5MOMu)ObsQ9Azu+8wd9I3xQkwQMzD=G}8QUkzuef^|gr|W(v?O>Y_t%|qh=h8SK zT3mmTy?r3`_q|27@vIOpZiZIVQm+~s8Zt36&rDAjmy{S88m6YEIygE`O-@b^Ti=03 zyvfN)@F>vXxORTe=KQ$0HeDd>w^XidlQ9a&!O9rq_-dq%{(U*^`&XS=*l>7OJ8*RKwV<3>8Kow7f$K!}l6<>-t{AR` zsMFB7bCEoAOml8ReQsJS=v7acUY?2`ktDHyL7nYWUjLLL2EqE?1&e;2gG2h;iWhIa z;lk^cBq@4Q=A(CFS(#c2@2iQBtkn1};2pLU7jrEwF6ZX%o-%+~F!=ZH*cwMBj8pGITQgSRHLO#CX5#2fZm3Vz%HAGKK>;)Cx8bB{jCisc>#ujWx1}h{ zH&4~R0m{lb?VoH5L>pZ0?52ieUZvv<0-xpOSnZ7b7x~@TJ|-Hdr|8&J>WBr;f6r^T zMlBow__{^jxRKO_>yD^_U7O)C`|sasbkx4+=vNu57wH(+>u6JRap4%~1FuCy7#t!q zQ@DToiy-M|k0v@Me{qOy>-PPu0YiGy7 z&7BY({iT6W#J@xM9JP|DaRW5kg0RX+T$6p)Susg|Ne{`$2pt3PH!&16acN*7uNx!5J@{0t-#xz>c$=chi;N5=|f$;W^81Sji^lFWe zdE3btb-B5A07c=2S!nyo1a7!nC{E0quey5YC@L7@@hJx1_7^ayVcFcw#o+_3DKxav zztiqT{g+3Y29K|Y6devFb;O^tPCtAW7Vi`4coIZLMo=Zct!F&g?g7_pOPE7^y%|9StCLw|4;6(KdW52WWUJ0U6C)lMo>g;1)tE2*!_l z`?$CNYHOv`F-JVP&Qt8;69D}UsHX084h{gY4fC6}0zG>Gq<+}2{NUx#6TLNIwihn; z!%&HRGw4bXq0a!PbJI^%4*8Xjn_4o>gX6Hl~5?D z=r1KrOaRthv!d$*q&A(DIpxZ$hCwVi;F>|t=ACS0sI7uqb>%oHd=#^?`c*2Q*7j-p z`7qZBymmA~j)Tos`!pKm*!XxuP-rSH9lA{F z6E2Nb6SDAI0IS2@g#Z``lq)+sgFY*TG!g3K8B8;6T+egBDln=G^TdSp3FRcGZ5pK1 zC5jMq=HxamKr}JY_gt-xMX>!>^34~Vl(G>CN5p*X{yigKTx`#4E`6YsC@zu}E6*%&1)*l7*i~j!p@85-}sjYSgBV?1vsO^`U zEXKe)a(Z}}nVRYfSUG@8stBrOF?L1YOt*Nnw9SrYb(D)7Hxl!Ne4to#hn@FmsboD@ zkAp7BMBYGa*Jo};(@%-j}@1c+ES#@s7GV;f@Q)h zF8QGE&ip~f7Meb`;JpM{QWn@@*4O#WhY_Y$ClX>~V=Gh(6N$JddjhbHw6V=Rc|`sZ z0G;B=wWAYoaE3kk`FEU4zivlkaIRGD(};-8!V|F zF6gY_6Wkvo$DQu-LhS5BKzHK9Ez0(O3)zIZS9+8G$;9EJ{eHWGgz~@@4DSK&TM7oG z;2a1unNFS_8#MnX>E{U{!o$~ofQOUpEZiY`Ct*G#g9Z;D`?~3d^6NS|Q^wt%9#+A} z_rpP0mw>xRQCS%i5gq|?jcC9oC-j|Bcyn~4qeE5}s5sNo0yzD)Ho&GzJqH-Un3z0O zNdp584yk47!^D{xb?t~}UjP9(-#Rf53oYIXCmks~z6KtLXzvsf78Zs}t1NPPd4Lf& zFyQmo^B_|eW2G7#mI9%|QJJ%?sFS7c>zLde4E(4oXTy&9>7|acyFXQML2Ky7fj0r$ z^$vMmQsF{m#l_BtC@jX|UpX_GhZf6(O^vptubu!W9~Az9;!p!%iDkEn)gbH0jc)7# zy-x2qu(DVsKjc#O=^u8mqW(WGz}HfOOXp5N(zHo(KSd=+Lr0G%SCzk~w?bC=;BIBL zTb4zq3j_8Ofx9hfswj)fGgSjtY6%`$Nr*bLAXpRJ*n7wH4 zM>#${p}Nz(P_rT5$%EQ@Gyr4NtN=&0AKsF`aOaFA!oj6~4;hqB&xxc3p=q0e8uMol zaF%}dh$l?j$7ww3y*!sm0wpG+2@30^^b+C2N%UNRM?EwMB`)rL-deD{uY+f22U^hn z@5J}&`L~hMX>~G!KGXMZS?R#1C$J*`uk^1hYF)9IlaGk4OzdkR^`ULY0zqU#WB^z7 z&Lq~@_?BYfyxXhE9)Bg<+ya`IIQC6$J8^8N$pZX#-hNZ^A$vt+{Pgq#I|Fs0jZGFG z0^mX0n;$P|^%;OaXBJiPs?73s$H8k;s7a0f+*tC+s2c!IReV1JiI*xYeu_~0R(OSz z(GHda;yov57^~4STVq)vo^NXjjt;^SPaxzBzjn6=oecuJUiQor`3`DX$#8)sMpE5HQ(nOZhjX1}Sj;i_o{ z%E~(~9Cr4rKcRi1Acl09E@nbI_~;Gl6lt(Q_k_=l!JCRu2_5&cn`dNAP3_B*Y|>TV zn>xemoxl^M3&TSee*E3GXVT+ zI+-?foqnH_g4>S4q541D2uLtit0u|G{-hq9RswLTe^2m*{-JjvBzNCei;S&l!2QUj zAP)KL3`hU#(jqYa0|@F?+k|n{2{ZV>sHw+iN7HDRfd%c)`}SE==dVkA`zIH0KQ5fT zoZ2^VqZ7dn4AMYRXhi`{Fu27pF^wGrpd|oYASw#Y|N7#lo1f%iW!v9B$cjOftB1C5 zbA!_#JUSrET`kCx9tw4#&`Zf#CWeI-)hN!q(QiYY`$#DwgRw^nRdnoNj}HRUsaAzd z??}$f=ytc(RaSmN40hG@(eZ+u3f_o+i)@TTJ)e=ZBC@$T7_klxLIA`NlO6zsmX#gi zN}IeN{8O5$S!j*3JrS_N9gwFI>08hO^CkB~)`2hL;u5%20`mT99U$bCyNH#JUvEKVl5Q+^G6YJm0 zKKk*o+D(u-Yb`k?P@vw!$R>qOjr?x#0tb;Nb7tfFZZGu2#H%~d*GRwyK~KM!JvUV& zh?7f144NWXjE8?s5%9$4`0LKJl$nEJjQ2zRPC`QHSsq7`$I|?QWPt2RhoBj7;}Vtm zN0g2wU9aeZwC{(uoqR7GI{Jq|%G$b-qe2iL0?_~{XlcKV?}lIyOrN9gAs8U1AKG9W zN-R3iQNNRXLTj?(=xaZ^pVZcNtm6KA;AHfILZS%cxn+9_i-y>8i^enNWX;th4Lj!9*Rl3eXE>$hx{n9oGap zN)pkYl6iS~PE&Cz3&=8=e?OPHkxLkofG!hIyD^GVYZS-t_WqCRIm_zaQeb&G(1krc z=a)gm3JY6Z14>uduGH)mmq=lowf)&GFi;jPkSirlN zw(ZOCYGP>(YCNQ*!Le-Ma0ZF>;aeWU&`^^Pr}cC{x@dn78zJzdhd@9=V(BL~bAS+C zGDdhlz701oOpcMc-gkF96%NLrT5DdMPoD@LoW|D^Tq(B2!qLf0r|`i3wG03F2q9G9 z9$7Ls0VE`34m==7guGyQ_D16kN{i=ex9nh zZu!iZ-ZpGC<71KD`2IhsI)YyMDyFep_55)==fi%WFpgqMzA&$x(BY~UX`o#url zOYmKfm#cJnbY4N_X2?d!%~jWw+^EXR#1pN5d(1nUG3-_y%QJCu2BB60C7Q|qj6eJ} zDPcSYC39Pw^Wf~_g$}gvKUO&SLv!e0CNQTuX~PKt>IFb>|9`Q;A3-L8Gw@blUcS>B zds|xVuCtSfq7f4>YA%gi6PK53900BvF);yAaT}htHn9DtpPzlPH!1@m;*GDsL+2|1 z632gjd7qU1FtuSqe#XG8#_;h0nyO((FtAi*GAm@W97jlv|JsWpcRnCK9LSn|*8W$N z`2-wjp!E7+qBvgPmVTun=t!mNJUlGorWFs~;mKBS>-^osm(dYGnvj z%2nR8i&*E3unOYxh@fC0gE2ZbGz{8$ZuEQSXTGMe6=t6Q!_!%YWw}LLTLq=NJEglr zK)M?V0g+a^K~lN}1*Jtmk?v0E6r=>{?i2~hGu`Jq-~Pc5z1;816Kl;i=NRKAgzX1* zshi8GvMfgav&%@0zUSqzlLCoAJ@ek{d}gmlhh947Xo_BMNGG(li0=T|BAN)gG@_n> z&w#V=b4fvA4rZ)tnJNC&4fA12puBWE@cr`^S8%C07TM8cBc!Nt=<(*CZsl!pZIPS0 zuer85=`#GvD_1;o{w{=%XWW7q{STZ=frlXsL5?-cG*p+tjG5 z(-;?WHq%RFWTv$!7cs3XV9Co@v|=tUdT#m9Ovu)jnB=X?VvYUb@Ale-_93;KNqX_) zk4fPvyh}UE-IOAA2^tX*$Z!ZQC@gnp{aLj2_u5kehvn{S$Kw_(nbolwG7gUP0u~A% zA1|-xtGyou(@iS@^{4jn^Eq6|k5mTcD1Y#>vH?la;&;BoS!DRt2$g#Fkv>@Hxjguf`P|RRqWGYx(|X>|&+_d%Tx6$xa*zFx8i5+Swt^>OR#WtW{{SA`Bg@8EVUtXL{wHV71CW@(t z#8IKChx3u&F1poTNGbkv_%0|I}Kz*h|{!Nv}?b#y#G zhrqCWdkrzgkSZ#|J*0Y@CxXnh9%!J6p~T03K1`V|raWDMn1J&b)F+nOyA9Du6q)R0{0b?rj;>0ZUeDva&- zNNH)Y3GVy&*tBxSy>T+9gKcTSA1dE6bNSk+(Y`kuVgGdD8<^0Lh^K*TmS%X?HC|PC zd9w4up?f@^hjixj4$f~caE&S;w|9VK8Hh_3k-qm2HW066n8<)lIiUwM?J$h<#bAeX zCO1JG0e%|VdyMMK^J4P@u5p#bnO(!zX0>ui&#>(TvU8ZZ@x;XJW+OZo-nYuh4h)8e zLX*JX|L`n4)8uQHhe&X0JQ!2+_wTkx<2`y>l~cOBC<$O@Uf#{^>?-`=2O~M8BfP1+H(Bjp48=#z z&U*Ar6xA}MT-T75io+xPSs+RlY>I*!Goh;R)(kgs1yAD=bFViuT^Xg1nJXd(831+Sx;z4Q%}+ z1f34@5;!$+{Yt*KVn8V`)CCbu<16XUF0?8N-}(}eQ37Kz?je-B0DNyPR~5E3aGQ^Q z)~zKt@T3WhZIxIb*8BCDlwAQjAVx;ub^d$2v^u`OXIN31*wdY{Z>}n;-a6bbqVb3VTnm&HW}s^TV^x z?liMNw6`ZF(~jZ*&w(Ks{7}bgXyD=oC`e2U=$a&hb&hpe$(lovxBleRHSP|k@T|Fb zJsRm`-7=*4BI9K0S7M45ooa!h2?%e zdLkzTVFeLf5>$YoI$OxfkF*?!Kp=NU7I(Ts6%gaOK)~D)FGcCh^J6S0G5r?9t^xQq zz=!h^y15~no_<&Q>C>H!;gwDlXyT2~f~NRr2- z%N|JjM`RYpyF88bBUH#|roH#}ZRZAIOA9h`Je`esIa6+NAwu+h0Wx=Y9i_ysdkKme zFxzgSWFxGoq`{6@-Mk^-)?2mL;ciGnhE^GwvZZ+DqbyWMkhSgVzgL-F+tA(``^PW> zGYz00KHZ^{gY^WQ8pG=DPtBAJi>M@W&*M7U;3|~gb8t}dn%W>Kpl+uW7}vmdlWt$` zQc!&LOkgqNHTpFo5`>AJ|24hz7)+5yf|l4+4M1|1d#C{LwLjMph=7bG|AgS`3gls} zH`}TRQm3a*PEd#mk>BCsmXy7(r2O_Hro24KdtYGumYM2TgiOAi-29#fGFk=(U~}*9 z-?_=SrX~wOLOQ?DN(e?B_fc47)XNR*`>e78MPQPNk~eY;+1b?)&j3a~C7MY<@gHQB z3++n%yb?J@6gGAc=7EjQG%y6wNl1s*uRG>hnSJ7ecakXo8?Vw0*>Y3XGT7N4gJBdDtb_wdNfc~3hFyRB^;e|kJ01XegWG z3j-|_f9~LkeN#r$|H0r(#MwR=BUCo3el)1{@3Buyuv)u1 z5Vg9yi;dR2^YZfABQ&;~{tj>!8fm|$JfV9QrzL;gX-S=(1Ifi*xfO{7mSI7f%9=Ps z8PYG9Dk>mzBPfW=)k4j(?^%xS60xI0#h^65x~YBc+qq zy6>y3yd{|X6<qnwe3tBeLo($2%LB1sAa%Iuu_5P6T9Dn@IP`APYcts{` z$M}yW{u1tN+d$`X@i{#Mgz<0@CyO<1JUsViy5&#fQl=g0T{MwFFd2i(T4 z^t4%+b)gm+&(v%|Ag!k6R6U-eA{TGRa@RWq9}JA*2-Tns`VtbZ$E!KdZBTi65C0}U zVl0+XO`z4}ro*)YBZ0f<4f(Rs(DTKU$u(P#7ox!<46kjKL)h8Ruk~)esILfO#3nzC z8E0b#vOWqM)xIW=d zz=K0G;)jI^SqUH5B%gnhF)PalZ8hj_fp5KUTvhda@$q0f3Lc)KLt#l+gEy__>N8V z+DP=JLNDLh_$1oeLX`(dHHug$ebT~Gc)48}x??mIUwz8DdwWGEOZM`@%^-1F^l8z~ zHZ~zc#cQvjhh>daev!~bhE5;URabw{4+2aVB3-P8vk_?R%mf58V}Crl4xhiCSzFoo zTwl`QxUFaWm08UWaGk}WkMG>MxWGmQbG4&m4C%v+nZfT*=BToFG|xiu#TmMeoI z12zzi#bZN%;=gRZd-rtkcUq_ZYguu;q3V&RI%${513}u=wWqQQ`t}b0=BfpS_M(=% zkMKcUXkC2C#w*vu0{n2<1{lM*XqiymzptR$)$9Y#Nj?)wiEcd;(=mqKsgX2X`l|3> z%|6MZMCf5&qJ=_JcHmenQn5&q8DeFX{i!IG#e}4+Rf>S5bzj-V;pN|h<@m&qLnlcu zujmi+?kB>RJXXV(o!7TBq6cMpLsho{;qyo`vWeOHo3g1>KV|OBz%1TDblz5pk1Hvrn_S^9 z&o)FR>xa^rH&PH>TQ*uU8y}rD^}Zg8d8U!CVN_Hyp87s?-6|x!u#!J0_)@reycYXe zWB2_gki?ENam+y6)m`&v=cLsTT;xYuQ?pH4U0(j+s8Az6KI!X_uATjpXfq4?fb|I? z+kAW^ENF0%i-e@`9(_Zo+n_{nyz96KVa%imF2XQ1IA}s(WSkiNLP1HX>)>!`Q@83W z@TxPAg7D2LVO&XP|NB(#z^l(w^{yGCHxRxyrVdRP!&=M&>5teia$UKQhAJ$jTLae` zH!2kSw{3Lv3TspJqhxH#@uNlGP*xi?;0N3`G86omWaj6$(H!iT(!{xUZ=AtgMn-+^ zYa>znKd`ye1!IEqhlQqBQnD{R-KZrpZ4KHl#KXf}mWhZa&3oT3Y3O#>tE+#6VR?3r z0ct>HYpb>c2h0=#5uh`Sfc1P!%RHk)fJ*@xBeX`qZs85YAv@Co=J)8x<%vNGM%q0H z=WjkUJK3HgvESC3xIBfI2#wHf`$$hOT+gJdEf~gzY=*hRoLy~U1Ea!0!Q~ZkxnWX2 zW{Ya5Sy@({oe51%!;<42K2=rI28!Q&0#BT+w6^KK`Bg(8FClD(JMe0)x!Z`D5PeEAxke8X;-TPSRN4-D<8j`ME6 z&nEZ2zQe|h$z@QxXHL5spx%#SuP*Q1ustiB_&yTmcE8trkyT)OyEPWQk*@R?%cS7eN1Oy$a;On z#>4CG(;*`@Wn$yN^6u9E@9&{Mp>$&#Lb;;PT0>8guhT0W`(B zAKu5Q3+_?4-5WqLUGBMO@^{^^VZcyOUjex>kf3KWrgUsNuOLW&Q1+)gnZw4~{qkg^ zoDMbF`#e0P0gA=mvS zb9RpKQ5tv0Y&+d|P2`8~C<#g`a4jv3eiD`17=Ib+$dQ;w#+6z!tt}@ZflvJM@k68? z=Py}`l2{vz7#Ab1%3oFh&$Y4D)JCY$G(>xkN+*|hb^RnVk`Sw%f6;u|!zHYjX3cRn3XeE7|L+u^HTqV2n-k~2v zRl2-?Qev;uz_P6~lgfL3^}*(Iqv#baK-ScmXLpwlN;4)lwopQ)My#d$oVh;+{ENEZ zP#gSMoOUqEX~6@Y?3EtpWyI0Z#U1F$!;mytBGX0)2LU8^1_tTF$LG%aPhA8|v~aVt zpF5Tw9N`3K7odVF|5ZX-{MhVs%{dPbBZsj(&BH&dQOQ1DPUUks@@IvwKHoL}B*jG7 z(RO!Z2qv09#I3+J?{Q(r;G0a9BUs3*wpGOc-nDEc+hpF&b{P}#CgvCWhN-EhIK%b_ zbsf$2ROPJ9H^_e=t*lfuJ}vs|&*e}eHzz#01lSv{4sQPqoL1sGvc(4#-B*!`ruMcX z4Jr@MS76u-uQw+aom@OBYLLo<`q|F~Ax!UkhxM$h7wQ5dkUP7Uvck(OqeuQwGgQHZ z&0AzBW97rCM+{jH^DLk@cpqeCrMGimlilD_c0}XU$vwn{w5omreEd&UiFox8pf>>r zKV4nyNa`dQH4hCrxpr)hK;PH?thxqx%3Ww5@g2=5ky%C~@9(a#@q{KiIu230=i7F^B^rbqtJfW-25 zxJC_~>>eJ_(N;vkN1Y9j*l(rM{)#GGlx0R1!dlSR|^d3MM+Zdzrv-Sb7hc7eE;djs9|tC#T-A<0TgYf+ z-Oq;QV%qBE3>G=k&X!p7f4k4eviSDJtRu%!bQC;+3dRTmPwE=M%j{sjs&GPSZOw!a zmr)g?#02aQQBfNH_09!rU9U<=xCu$_vXhjsuNC{#WN$KU)N2xQ&t3JsSAs$J&5dWT zh1ZenqpQQ$0b6sZG|Jdlf33l3p<6;eg>;&6BsDq4dBLGx|Hk5!fDNbpwP5 z%wxPvg9^xNE;>3+T9blTP4^A^`|$&_-0`wY8s*ofWHKC48g%JdSRfds`%P$OruWgQ zoQJ@C02Q75@_W59i$3ausHzYRUdhAaTDLjQq=`>p^#@b;=tD2BZxaMcFj}KYq7%|@ z4hi|QgX^($&tnhTn0EHUWFztI0G)dBIx-+R995%;^_7Pnm!qH=~XJv{15Eg^(q1IHH*-Qo=o zhrK-}&W)mOR=xOlK~0aq@G(z$bCZEMI*cVQj!=fiA9}bf3y<;i3=GP%bKH;JK@%e# z4$tK1sD=TGwRP{B1`{@JP#G5lbkieBN=mZ_x!*kUIFNJUA*T?Q#m_72eauBoV{ws` z4l$jwD(GJW!VFGT^LObJFfh_Rcv3)hY)+S&Mo?V*p`|5zYmD3esk-GmxadKqNA z$iR$GLzB)-MdesPU_Yo2Hw_;@?{=O|!$-r)-<(eT0y#~AiuiZxVc8gTvv-wG%`cn)hKmMRKmvx%kFY0Or)|lA$`97mm%aD3X3ORBnSjx&V zq@l3heD`!JqilLobg-{yBFVP?4%6Luxm5iR!#})*ODFwFT+feCK>uzGyJ{~2k$zRd z&FxcDdZX;gZ-}Mrj$ILer#UWeY1MJ_x0$idXWf=vyYmZ|3L>)T9~!*qw*rhbDvE7r zoYXw;v|A1jvt}PWYyB6j{Dz|L*1zfKfr+aZmjXQ#$GY2Fdwe1Ya6bQ=Ut^E=J!LE| zPJ^kAOYP??eqOxL(6Smic_cP=AohwLbdG+Bcq5P~#PJ39t2&)9Nnf84NQr6GJo&R* z)%LTaH=g4saMSvhf{b8!f5-pJEc=VWsD68V51y8-wgtS!ihuyU`AS{8+vJ<%%SXJT0?8__8lg7!yW1q5h8Upn?=Nh@q zIuG#~C>UtQ-`^;HDXZf9kme?h)6S~rbioG<>8&xa4f0ySxEp4)$;o$#tO|=|UkNKI zYwCtYp(ZB6W4pG-#2lyqEqAY1&NVA_&cuRmX0RVWeZUY>T--aTlji5{o?e?!{GHt( z!SXEWz5B&+xtN+7v7p-0hIO?y7Qx&;5d^4Cwt}hWqc+G}}7DW(KxKhKnN*m6!3tcMAm zP(PKw#p^9mVt((jVri))tZ(f_B{ek?*z^cW4A%|leWRkms{L_0ji*baNwR$;!N5cd zq{{ZeAMIy3My=FJMrfS2@#p=B>g%VsBpGAbJ(3j3kZO%@&o(Wp1TP)jh#bxAcBHg z_ef4MKia^DrTxaGb%8Q<1?3f+v(PBY-0fD)~j5zg76zg^R5H|f#dHT_stp=kS{byGaw~^CNul^2u z?Q$=%KF7yj1S73^IEzSw`Ic5;1TuuK%o>%H0Sq0~XjE~a6u15Pt)x;e+~^IRJZR-M zo;Kb3&w6I6O_OYEL2p#(T3NAe_gDJO$%5WDj@T1X4=OPSjU-=F+0hSTZmaTZzNUK0mLjm0zh88cihpOY{{k z?OX2x$8L0U&Y}FU&^b?nrco^+VfRvxmKN!)RvR@buPY(S0P?FT9hUJ)Pj6Ub9s5nM zi#t{hY8=Y~chxhV6|UsmA}t&0owTWE@BWkDbJ1(TF? zIOCbY*}pYflq^3#{U%>0{rC6u$cTux^zwcsqm~$WmH+ZUUp7xOy+ins(JhXOi!cjo zV`f}YiEe#egar>reKdRb4w4p=(=p)0>m0pT!qx@5df%p-|C&j2WjiKoSNV{ZfPETw z>H$sDfGY&b{V2Vk%6LTm^^Ds)S$~^JNk8cnPzk^gQ2H8rWT>)nSZQfANrekur))!+ zfM@`!Iqtm_^u0Z$FIxOoF>4f_)Eq;z7bPbOKBAaZ`#S!18e2%gL{h5PY209#s=M6x z{}QXG>w@Rs6PJ?>11jh$BMTH{wKD<;arYx10 zn~yS6YrY}}bH+&%d870a@jB5&rO%%i6V#plFu_ULb(n@v=lJilC4X0Kjs&-6Pdu93|Wdli`wYo+{o4+OHFZl$*xNCT`pzsmSST{-A=3EQngf;%Udm=zv&?&Mo96q&!L-gWC4oyC@e|2?4buL^-76yeZ~aPszYUm+K2ditxA7tm>LHgJgYhcZv8Am8 zYh^7d{HalcASo%NF4Q=Ls)S7x9<3%^E7m-uA*XMm{cUALM6&Y?IpyXdBNTO=J!e?~ zP0X(6T%WZDKhB*^%x*632pmpcSMaEOEc(!Wcv#ZyDJV6iZJGpYPz$xTIUOq6M3S-Y zu>YS;HNE*C8o^AeJ!Xk~uD-Umu#?pk(9yXIwQ<&A1IvZmIlbmrvLK15?XZ`+U32P78411zqMR?`RkXH$3EWxG45!#hLDg@L{xO+*{h-C zEOzw4ZnGrgnygoAYZ&6@rwRbiwMUn=3swzS7wLGSypZx-KmE6$;Hjw7NQA z_yAYa=3x6-Yj-}D-SEec*8m1IkHg3=Cr8N|+N5ReX0q$)>2N-&8mDULn5|QWpHl;oP;V2&dK|^3ERfeIvS|U!($0pHB1e z>|R~TJbMQ5NE3yAUP2x1e=-{c2VrUe4Z!kp$UD+?ihD!Kc% z9cnGDw;H3vs#w=(rha~YU=q;O)b#Uf)@OTwO+{6z!vgg%+P9gRe|ERI7EKe`+QzJA z3cv}?2tZLB$#}S$Af4$#PlJ!S^*v1&6H~WI`cn?V-@iuRl$B6B&4v;U>NMsuUT;$5 z0|S%!`t+5;v8a3>hV0sL2vp}sqA6M~<s(*Hy8dAc0k4hUe-sIY)@pg6D z{2J(&@)Ls%6sL`yhQ_X?O=FrX1)YL|iOs?wChE$U)zee$@ah_B>Bpgt=v1+&sjoe% zOV>|5zJ7Z=M_JY?H8ncQV?SL5j-Tn7nK&}RH$?47lwRM!*El_WvDgMR1?SDx@o=M` zkF9NCVd2ij$lsdaViR{9Te!{^qJ3aB_`o{zTM9F!05Z>H;p!aY7q!9rY@FY${qZYOX zCrP(`@}eRgNy&n5kDpk4cG=c>^7wJ>Z8LpHyD1aO$@OEmoey25t=RDoUL`8l~O>OOAU}QuY*$@^WQooP-taTzC3Tf&Y-Q)Gy@%?>@ygYdw z6V-J5)weVh;DjagYp!c`mgj8#GrB!d$f%aCuc?_;9{`4FyPS#&9ww$2T~P#{^RKKY zYb&YJ(z+)r%geVcooI=Opd#7Q>9-(+PkS~#kI9Z#S&X5@tiv(_CpQklC;#+n6Co&0 zE)~54mAwN94Og-wU+S2sZEUu6V(^U%-e-?x_RD<%86~(=UiO97@;F!5=$0>H=H_^K z0PsrTvsvFt#zOmbxxHPT7q*^WgiLysr+o_z9|c9zyO%a(wFyK5kuujs?+H5180^xM z>+79;x?|1BGCuAt2x=*Qp=B);zm5AIoy(wUn#IJa?zR-P*?xbdE4n~42OIx$RE&<; zUyGg^`_v~xvX9lJtWE#@Cn?2*xI4S;gWo(lYgg`=+2y$qIXaqnykUD^uh7UyggG`z zk1_h^&zb}SvzPg!T7DjXmq&O6s@Mow3-6vVLPE96Pxnr{RyL{kN|u(E{MJL{%E|+$ zr>F294`qm+Wq8h~2-v5t53CPmq$MW)`A2WR4l#9!{W%HoE=LQuQf%F@;-8z|%_-)a zG3i|^_&`YZUdhk8v-1f9F!`Je<-cfERp*Po!q!ouAU7>4- zdn1GodzquLiuIrUA+ZaVu0Rg$aAI$Ng9%}G;9+j@gM5Z40{w>Zx@@gbq1x+)mI#?_ z>2S>Qz3J&`_|+Vy%1psdt@Pzx>rQ@g@%QiF{lJ^*F4}UFor2kFPlk(&D3P6e#F13k zxxAETk@qE|DE5IP39tRn(V=y#AB6qwDW`ZL-EuGq7C*nE#Z2jg9vaF(>ASnxJ9mloXeX1)Xw{`8 zU(B$gVsW|Mz=u_DIm2@>j~X+}_4jWmvRZB+m=4s7HY^OP_g;S>Oc#$uBLa~6@86#^ zoD%p4_d0(LW_F6y@L1y-R@PIl2f4VetUH7SJdpQ97s_fWF5deVh`^ThEKB2aZtnW} z`aNVUtW17eUCx8ia@)j|*RbErHwEg-j0xkj(UIqFky@rq``%Bu@;$#O7_0iKPW7=@ z-z63`{KhzEZ4Ek&eSP34fK~Q0Jy;}J(TF&x=@5Wva^Vh*J04t3&GfjeYJ$DJ^qI)| zw^P0thP=0UuFU0;Wa~li6zaAp*F((`cvN_P#h@D+8UjfzL7#A=*NkB*)&5UOXYEJ; z<sqBj@xvPK>7`|}l$89LY5#7zko)%`N(Kb0kH}$roA<%U9{(s6SZVzp{N*gHmE`=W zp#JC19$Q|w@}5`-$IHQ&NG6b3o>fF%m#)(vi9sSRh={ej;*e)1`7^O z;FP{YP(76xb1aG#q#5T|K~FI7E}H2pVL%)j*0y&b?EHkG$RDGtvM=|cQu;vy3hA&1 zgPCz(lws;eEY={+p~v!GSFB!c&83>@_dVvfpFTbI0Y#erJxg_-{Caz~?+)mM>=?Fo ztD_24tHmuJ#~ytkURe&BiM(}kUit|cp2D~Z43NHp$3RUVaw8H#eJFlv-V>h@8}?vo z#(Y}`w6Cv@RaF0m;Ybs-Lwwd^uzo$Re4JT7zTcbAdC1U|{dN~J`62HJoGh)B`s#YN zwq9O;1hwjmF>n&ia@E`N{EFuCdgMkM3(0NLnJ&^)Yj(t%f31Fsb4QM z%bi!aoU>2We0++7h!AOno<{N&7dyF1o71teJ1_Ww9}p1{ZgB4FtRb8No%n&14{T42 zV;B5aVkGqRX5ERvQZQRD_Jw_iQ9rl3nk-n$HEm&RG}~U|bTrcE@uWB5+JyQ!`K|x* zCg_LjjU0ZBTa3)k_PMQyCD<8qY!vb7=?#gm*z? zwCHs3udaY^Qp5%$r>Qi^Rv+Nkf>#@cb3)>d(KDRM{}AqK0MhwE)JvQ zFVJ`~@YyQkvFdq&;B|=Xs}nr&p4Lo0L1~VIJ2FErlWr9 zmNY!`5rtg8#XCqykPFs_f{E$mvb--$PF`odx3{#7Dlaee&jAf{G^f`&<_84Z-$N)l zf1=*!Fj==aXuoe^-O(Xk?EChulV`X}7$8v7W14-yYD~cDwBQ$9m~H)Tv$!)ge`GWW zl8si8p?7Ia0n=9tlp6bv2%HN_5=mr5cYg3<8`jcN-*If7@aUny1m|(1oPh_C#Fu`@ zW3rQzX`l1G29c^-SKiVq{GxRuyUC2F!yam%1RV55P3C9vf34rV*ApR7*I)t8*}DYr zf-H*$~Ss%`K2{_p1399PH`nV_%a5aV+IE8>n*BkJ@}hL9Wb z(UE@T1J4E3y()A>IwA`D+X1g!lzJ<|wcvRA@fQ1)8EkgA^8wnAUf=gBj5wh=8f>jvYJeMV2ZB z$94zS+w_=+$`I<;J>LEi<$5G0A^wh34-w6BXt*N&EziwfQ*ycBJ);f%o5w}m zl;8Nn?$@c6{b0iGWz;Fty5sxR{iiYE>sSmT`<<=6=A`P_`*jSj?o4K1dr-6yrVK_F zye7p8V+j!!o+=AG_T|ujtu6uL>$yGL^*36PiTGfEk3k1jO?x{Hzt_6~nzxVhS3d_4 zy?3aN5{ygc?o3mC`m~EoeQu3Wm#Iiz*Z~d2*6hv9y$)p@&ZjC?=SfG78^_27 ztgbJZ@I-$+W}V$erg?fFr`_{$W+D}>_eECHoa? z8b7X<3k|l3b=krOw|bor5Yj?I+I%CdT-ehr^(#J~42kab#OCbdHEe`a>8L-V`F+|g zcDA_R$gKLTR-;%mh>MYj2QogOX+4lcC)O+xt5LO;YSj3OccD#wLOGJ(%t_%3Fk*LS zCQs))G57c3MIA^2R4p2jSs(5;g=ty5Y#u@{Ek34e6|#Xy=j8#!VLv(}|LA4*91oQD z3aV@Us6WS_50S$*+1XjrHIYY^^`>v2LmCVEe^(2){02`8iV1(tiVBnbeVd8<|Fr;r z>yFjnpZFYn(P@{IwogXK2N4VxCry((+DxtM7WU30%p*AVb0iMC7nV9e7mwHa%(g!P zd;1+2seTWfUoMneVR$#_FEoUj_)EI*fVkX_4X}9#SQ;)%k7;Q5H2#%%Mj>UN?oj!@ zhF8e~1#S-w&9ygCrb(42Cp|7?T6M|{W-bi(E76BEWM$p8om}320>d8$b*syZI{n%z z>WBCH`XCQjQWBb#VrSnL0+Jutt^OdVkxV9hx`hq<*S=fxx0u%J%cIMKh=|8#v@I7= zq)}U-a(MI`8NSRL3Irzd?ahcz8G457W(tt~!tCS~qmeO$CO=d@hxzRkb+iUjyetzr zgDp;lTLin|b88T5fCYof?>DLh%A_`nUB(As(NbwiPZR8UF( zHndkij%vX-w6pu?K5C8*cPr0bOnvr$7wt1h2q-}N;;jqAM|K@8+2^@K}aP??j-1-k@pa}}1mW&Ws;B4RdcR>g6#0dt!NL zbn;<>P-6%7PcU&dxNj>&O+SUf0?_7!Al`tU{&^ofYM*+v#_2<@vm5!^#Bq#}`ME0> zNpYnRLPIo!LI|XOvP4vqY&TeC>@}1av}TpqMk1o#2kiI7iPz%YsVS%0y`n`l-WzzL z#Lm!jZSwBKW1nJVGSoS*+!;j-H$Z-MzL<)~2;;g=nOQ%AX; z{jRS_M5HdvBh~gNap_L#$&0-PtBSAnRul&OlSOM9ll(i}64ovSgu;FT82rMIjhvid zTW@RYp6cqI1}hBX#u5X)rV`s0=K2zdR0WcqI-sDVqJVM*&jO9GIexWW$#>0O2S+1oo>gi608?AB;YP(sBAJyO*7Ldx*F(A2bmYw8hyK zkVRqig+wJ|K`(ygv`LfnfIS2fe*ljuaSaLh*u)WsP5>TcLpL=wZqy^igtsQ@Ey_|? zG!rWrypy@^o}P-FKaTvIkm0$73m4DBj`0^77S(K*rG97`qa&lCTpZ;aZge{O5F2O- z+#XB7%fYIyp={B7FB1Y^nFCV0;*3 zfWhMr4WrgKJCiho=Iw|vRHe@tR9=@lIv&Lui>14}Cktu1nyH6NkeP=57)(@0gEjYWNEx6VNSy&yI?^xIEg|ytTo&sV>zcmAAF0q8waZ z{q)q#T$OXBz*7O)`AP`z*v)5{d~kbXo*`F1Uz#N$Nf-Gjft8}d9tEEb6poI=m{7Ro z+(tBZcAbz?(0m4JL%nBh?;bXP?|bPjbbJhV1!l?sU`HV&eBlr#bI;m(=zPq`*Ehs9 z4gCqS;$QFXqR@DCyek-qEMbYge&B&2vWMON^{P(%a72HNzQGftjVt2hQROs<7CDD>L$>ceV0!v4OuW0e<# zQd%u-X1P*%(f>Y9lxA1SPt3)2Vl+7grCi^hQ%;tK%gJdY6E53G95xGnUdeh$aRu($ z8sr&oZN0Dy$)K2?rY7v@Krrty8zcrA{1~2jHvnnjT#SR6!)n2k_})F$ZyZ;l=8)%? zv4E_gltTYkx*VK7Kqre5{Oying>I^hMcuSPYJ3rKL+&y)`uu%!5zl`nK>Y zOs7Az*aoqp#>e|9zra%~OXq&irF+ol?DBwmUfQjzDTIp?3rjrW^&Q{eeOzvM^fbF^ z-E#PZ1&pMe&q5NkzkVB!k9RnjgbSV6hGuGLD2V#?Z~XUW?zFzK$}wpws_~zYb_~4~ zNOy?lH2cYRw`G=Vbo}$ru9@vT7G@k_Q97P?iRv54Z?P*Jg2)87S>VZ3Kt@7vJw2S) znYXamCZ@npSC7XgWot&sk{OL{FL!?>JU!zxF1$XtyG84M!UE=Fa6Wg+G+nUVL%4q( zps+%HGVC_aQ}AXQa4$>!@<+;&BmRZ73eW20?f&+v33 zd#5y+L_?Pp?c&M~vPk3D0v5Fmef|DoL$HlfQi9UQFpjL}$%dJTU_?8|f9H<2z6AY7 z!q8AqlfEvM!Dax2A+$lT9=)DxbWdYYKu3D>1{{obMc(Q!nK_>65E5=*Y0!rtd@YJ; z6f>=kKt*Hs^Lqk)mH{--te=V+K6>Q#;rUmc<&Dgv(;1jlyACf6aJp+##8Ru^hTd~* zerS|Rodtfer9E~>n~E`LXoQq;dNb$4-u3mPl*MPrlK7T4lFI;M{M&02FQ1iAqB6Iw z9|_0E?TJfch@3{xE0qvOMCn6}H!a&ezLWa?Ruq(AuQ!T+3vYq_Oqn|?oW@FwAuV{7 z3DHyuT{)H7)GWCfyFyB`Y1h)ydE{?f8yrJfOWm}MEr}tSCRY^-JXT$3JGQiRh}{X| z5;^B<%k;+;QH|%~9#r{H*!M>tiHTV;-2L@~zI<)3Gh+)2CxRo4I#yyyVr<{k=T_@n zpHXlbx?hJLu76KM4Q(G7h+fdv)O7y)du?%Xk^8|^flg%#a^b_hoq@jjRQ~H-3{mn! z3|bJl5Asd{Ql6z1JLDzT?#mzu8R4R7a$b?s*H6yOG_kT`n5nd%seynhIst*x*?QMB zLC0q;zV&y4cLh_wp#J_H|Ng$Mt=cIrE+iNS1y4{!pofG#fY9~-I3iw`d*Y-r*oaxM zi~cNyHn+%Xhho{ z5jN+T`YNX!Mz0H5^*mUaQ5;)@H(k~{FczrI{<;`7A!A7JN@Dv-!!=UdDuwD+w*`iX z5E>`$d(PEbSyeTzNB3!DauOQl&}G(Oc@N$4bt*_bxwyPM^H4~EE_pT@QSxpi56_SJ zH=n4VXkZ5g>BKz>%GU-6=Ly&Km7Ivot2A*FMiDQKKL-Ih*;3UG8QZ~Fbw@kqgWXaA z!|dEnQ<41Q(Pf`I!8rH6xR^zZ;^W7#zsFetPnU={>#H}z-N#L6eAiQ~=e>7|-)5kB zD}K?kwY9y;DlWE%_H?bIUcL@$=yKyh%gUL~lP9lye9qj21{MNp0}ds>w6;PWOhR5{ z)Tj$Tx3@R=VwS%Q@=uS9jI6Lu&lI=Z&RdN!yw5Se)K+KSZ_O+eGACXUwCLq$A>W;} zF_L;w?U=b2hEc)zG5&guv#gA3%0$D^Fzq2h3wBuGM?+E3MsZGR7v+CvfA_6@P=9r{j?nL?5AAO8y`e?SPuiClABi3+Z!~Dq1!a6ue1KF5&Q9xzE_xO8vEZJYL zl&)wZLj!~2XU!K7gzMt!I_BnYWA@BGSzqhw?=eUsz$Y;~cOoLP5@wXsZi=m$!$VSH zGWoM9n-)5P!&m^VoJ?RO(_GSsA|=2SlaJ*I3JRk1`=fcYRASsH;5dH;*KF?9M#j$1 z;<2?KF_`t_P{RFR_ho->oH~elT!B7)@g)ZV0kJ5dzyB;Q5t4)iBpj6MFLXQ{M79|e z<$L;6!=x0JM$T4!zjJWDb;E`-LaP)t2`3WN@YjT<0er*5Sdx;5XOjknJkmjIa4trU z{?Yl;9x?;|4P+O-)4qLiP+kL>Vqf%&Vj{k&OVIFWEttHf4tsm*k(gwQHorDdR{f-q zLizaQm^aZS3~}T>FLry4fCBxs@n@~6Uv1xu(=2!O_r&Pr%7W}s>y7eto@%*kw1;fP zz3oBdr2dqKXcENrJVpcA{h^(|zZeRcWHP4<$VjX2mwvjVt2;;hYNdxvo}DphlK{Hs zSH5 zs#V^(lIG;x6LWBY!lBr{kY*JJH{|Z~JShe2Ze>HmxQ2I;%mSZ^Y!HITtq)mV4ep1> zfTK7(9y@!197Ie{4}b0iB<;ddT2?gZ;$j8-`0p=pS4kg61cLFX^%`R=_kS9@_HZb- z_AQhVnqg!sOfyLHg_1)kr(0pq&Hbg=iM-awnyTD7~?p@#o0ZP#RLL7panR4z1HjMcg6S*J* z+7GvF>>PJ&))&~c}g*v*k=33Aeves7m_I`c+sim32co1~T z+Uu~^meosj&G=Sui-&P`G`R~ z;$i@k1O<-bBPPL;&z>z}XQ*Hn{PhY*X2b#Up?|Z0TY|@?|Wdo>xluELtY+_*vC~RVip2msh@%f9xe}Nafc0K7gMv9(9MMYU4hzCuz z7-#JviSDwY3=7xu>@=a6UPcM_M}SgC)Wm5VPLr(2ysn+Cn~L3?e9#9i*@lMxl2d0s zO)t%qRX-nWM98c?RlT2Jpvd6V0{F!M ziG8F&6Qn!AFob_5pb@eiqUW!t1qP;3bYHf#9>f%Yo9RS_^;+-dMZK%4svhjUAio*3 z8Ha~cHY!N&F@ayang%3-BAWjXw=7Y_mek-pZ7Kr}{X zRaFDOM3QJ`6Lm6c)r6 zmU7+zRB1DO&VRjQWEKIL6M3g~x`{ZUbgh?I&sz-&m@hB6aBKcG76 zVnYctmHM?9-_{Td83RE$P0Q}kp~RS&nE1fmlDAl_Wa)5G{{D z-Hf+4z;p`_Xy6fR#5F;BTI9D?l;Pl7CstKw$hG6nSfkBr97ZQkA`nlx*-%!RYpOU_ z3UE_CzbD}!1g=JqlQ^g3(`p@JI6f|B$8^$$zZ`i*G01mf0qdkdd{$g+WxGLN-(*^Q zchenv{}I^rO-icgJW|1R++nT<$kR(J|D8Y>^zL0xwZ+bj<>h~!)d>~VyYBB~u>dD} zLU{*$dU|R~un4XF(QR8=4&X@O5EHwF#<>R~JaoFh<);o71emXy zkYt2Wn@}##Le9m7qUqDp(7}>W@RA@FJWbd3e-m_a3z1~1ad9!^s;cQNq{iBf{@t~P z64sHjkOnxQU zIj|kj)s7aai^{INJ{VqA)8<|f$o;=bpg#6&{X7c_8x#rzeV(4mmhSz9d(MCyI~Zuo zM+|^}ugs5R0%^$LAWT;SUueneMaZgjbu|<&9IVUTFNH(`Uf!>LO4yE&Dg5vbX1bX~ zC4%Y1s;;gcc}m(Pr=5JbOVF-94rS=M`PLI?{ur#HDAVIrP-G#}%qI`N?dHE5R^NXgYU-}DL!#1qkw6Qkb?v`BtE6!AUKKuxn9qJ0Q1oC z_pq1%mv(n|cjWSHm)OUlq5QDVESp57b!AmmAyn$4}j>^)1s}_2W!++RbMjH;Ywkv7^AGZ+DJnKAZomZhK7ky@y7j=95f1b z=Iq&7zHh#+J7=E9JY>;3d*>L-*@@NRs4+O1up@7N%wu)mpKU4#uF=l4W}!I>%>akC z4M0q7Z3Ola+)sgl@8(eCj5Ws}T&uA@4=8JFcw@P`gjz%z%ovhWGQOwrdBe(hSncRMe4mXtnO`OwwX)znnP;Vh-QxYq(eR}7vvZFPCB z()Y~+h(`cw24F}fNU3*E%S#eaj9Wq%#94j*xzhUM?(P#46OVstyPfGl-x3uY3$Nig z<6ru86cUI;Vv^eay?+#a-454CdZxfdE~W1EVYB`vziZfDod*Q)ujZQYIHQ#OdwroBZu92^kv~hn&WH%Wq2f!GlJH*^0qnW@l$1#0Q9N=UhDbnpabj z`J$jO@_TnbSZdmBh)s2L#=)$Inv!?p@we_~?eiYxF-6@uapHZ62p!Zo+OsJY2J4!N z@#ComncCXgrPhxhKW1eq#}aW$i92E*f>I$iWm6saHw1tt(%w4B>b3x=dnCmvSwktFFs~vMz2lIx`kdwPSA|pEQ9?J>PNhr|Bd>siGV~F>|zkmDE{U88d{OvFzQc_ZJ z(r7JjA0P2z7VBTSy3En*I9|XbCVB^jn{SyP@Fw4Kb$)t?Wc~`(@2ID5U~plgXQ9Y) z*&gPc8jr`L1;U93K%jy3@cpu;*cFO3GB%la<-&rfpqwC&+O^ zq3~Q6yX0i$hA3-wR&jBBQWC}9o=T;*&Aq*faddQ)k&)>;`-7?~Cvug(ys6n69Joi+ zp%<=@Q&dP;T3$wC%pRWqL{T9AZUD_+xw7%WX?J%ESod)m-0i?of!EfC>{;I-P)pgx zXRracXh~n1ZvuHg=tAk~NAKF(XNHn3LqkG3<{pyQxw>|Py}$xh9tZM5hRICrp59*9 zQ>S2od*28>y{2mF1g2)MfJV=a^BdL8(_rw?=(zdc6pi+2X6U+xP7M%RZjSAKvLrgs z{M$Hx22?JbI*K=A6GjfX*qoCWE7+EYULqYZP@El5<~YX5iIDT@?Bu zk;n+-tN4@kVZTx+l)ylCO-;=Sot4k`O2x&+H5Hn<*#`9-PHt{)E7(p>&b~h}k(vzB zM}R@g$;mB=maeEMG4rG*O;2{)z`z->nmffMB@XuX@`=wYeOiKpg5JXHxH3Ktg$Xop zy7`s9M-BeKUC+<&=kXdWWo2c(SJ?pp0SA&)Q(uorOG}gT_dxIh%Mf>Kj>g|d1tP3M x4fp^3@BiT=DI%apOiXN>y*0u4zg?KKij3-3@$%ZK+XknK+1pU8*~Bx^{|5$&ffxV) literal 0 HcmV?d00001 diff --git a/previews/PR40/ref/index.html b/previews/PR40/ref/index.html new file mode 100644 index 00000000..c99b32b8 --- /dev/null +++ b/previews/PR40/ref/index.html @@ -0,0 +1,2 @@ + +Citation & Reference · Metida.jl

Citation & Reference

Sweep algorithm

  • Sweep based on SweepOperator.jl. Thanks to @joshday and @Hua-Zhou.

  • http://hua-zhou.github.io/teaching/biostatm280-2019spring/slides/12-sweep/sweep.html

More:

  • Section 7.4-7.6 of Numerical Analysis for Statisticians by Kenneth Lange (2010).

  • The paper A tutorial on the SWEEP operator by James H. Goodnight (1979).

REML & Parameter estimation

  • Henderson, C. R., et al. “The Estimation of Environmental and Genetic Trends from Records Subject to Culling.” Biometrics, vol. 15, no. 2, 1959, pp. 192–218. JSTOR, www.jstor.org/stable/2527669.

  • Laird, Nan M., and James H. Ware. “Random-Effects Models for Longitudinal Data.” Biometrics, vol. 38, no. 4, 1982, pp. 963–974. JSTOR, www.jstor.org/stable/2529876.

  • Lindstrom & J.; Bates, M. (1988). Newton—Raphson and EM Algorithms for Linear Mixed-Effects Models for Repeated-Measures Data. Journal of the American Statistical Association. 83. 1014. 10.1080/01621459.1988.10478693.

  • Gurka, Matthew. (2006). Selecting the Best Linear Mixed Model under REML. The American Statistician. 60. 19-26. 10.1198/000313006X90396.

  • Sang Hong Lee, Julius H.J. van der Werf. An efficient variance component approach implementing an average information REML suitable for combined LD and linkage mapping with a general complex pedigree. Genetics Selection Evolution, BioMed Central, 2006, 38 (1), pp.25-43. ⟨hal-00894558⟩

  • F.N. Gumedze, T.T. Dunne, Parameter estimation and inference in the linear mixed model, Linear Algebra and its Applications, Volume 435, Issue 8, 2011, Pages 1920-1944, ISSN 0024-3795, https://doi.org/10.1016/j.laa.2011.04.015. (http://www.sciencedirect.com/science/article/pii/S002437951100320X)

AI algorithm

  • D.L. Johnson, R. Thompson, Restricted Maximum Likelihood Estimation of Variance Components for Univariate Animal Models Using Sparse Matrix Techniques and Average Information, Journal of Dairy Science, Volume 78, Issue 2, 1995, Pages 449-456, ISSN 0022-0302, https://doi.org/10.3168/jds.S0022-0302(95)76654-1. (http://www.sciencedirect.com/science/article/pii/S0022030295766541)

  • Mishchenko, Kateryna & Holmgren, Sverker & Rönnegård, Lars. (2007). Newton-type Methods for REML Estimation in Genetic Analysis of Quantitative Traits. Journal of Computational Methods in Science and Engineering. 8. 10.3233/JCM-2008-81-203.

  • Matilainen K, Mäntysaari EA, Lidauer MH, Strandén I, Thompson R. Employing a Monte Carlo algorithm in Newton-type methods for restricted maximum likelihood estimation of genetic parameters. PLoS One. 2013;8(12):e80821. Published 2013 Dec 10. doi:10.1371/journal.pone.0080821

Covariance structures

  • Wolfinger, Russ. (1993). Covariance structure selection in general mixed models. Communications in Statistics-simulation and Computation - COMMUN STATIST-SIMULAT COMPUT. 22. 1079-1106. 10.1080/03610919308813143.

  • Wolfinger, Russ. (1996). Heterogeneous Variance: Covariance Structures for Repeated Measures. Journal of Agricultural, Biological, and Environmental Statistics. 1. 205. 10.2307/1400366.

  • Littell, Ramon & Pendergast, Jane & Natarajan, Ranjini. (2000). Modelling covariance structure in the analysis of repeated measures data. Statistics in Medicine. 19. 1793-1819. 10.1002/1097-0258(20000715)19:13%3C1793::AID-SIM482%3E3.0.CO;2-Q.

  • QUINTAL, SILVANA SILVA RED, VIANA, ALEXANDRE PIO, CAMPOS, BIANCA MACHADO, VIVAS, MARCELO, & AMARAL JÚNIOR, ANTONIO TEIXEIRA DO. (2017). ANALYSIS OF STRUCTURES OF COVARIANCE AND REPEATABILITY IN GUAVA SEGREGANTING POPULATION. Revista Caatinga, 30(4), 885-891. https://doi.org/10.1590/1983-21252017v30n408rc

  • McNeish, D., Harring, J. Covariance pattern mixture models: Eliminating random effects to improve convergence and performance. Behav Res 52, 947–979 (2020). https://doi.org/10.3758/s13428-019-01292-4

And more

  • Giesbrecht, F. G., and Burns, J. C. (1985), "Two-Stage Analysis Based on a Mixed Model: Large-sample Asymptotic Theory and Small-Sample Simulation Results," Biometrics, 41, 853-862.

  • Jennrich, R., & Schluchter, M. (1986). Unbalanced Repeated-Measures Models with Structured Covariance Matrices. Biometrics, 42(4), 805-820. doi:10.2307/2530695

  • Fletcher, Roger (1987), Practical methods of optimization (2nd ed.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8

  • Wolfinger et al., (1994) Computing gaussian likelihoods and their derivatives for general linear mixed models doi: 10.1137/0915079

  • Hrong-Tai Fai & Cornelius (1996) Approximate F-tests of multiple degree of freedom hypotheses in generalized least squares analyses of unbalanced split-plot experiments, Journal of Statistical Computation and Simulation, 54:4, 363-378, DOI: 10.1080/00949659608811740

  • Schaalje GB, McBride JB, Fellingham GW. Adequacy of approximations to distributions of test statistics in complex mixed linear models. J Agric Biol Environ Stat. 2002;7:512–24.

  • Wright, Stephen, and Jorge Nocedal (2006) "Numerical optimization." Springer

  • Van Peer, A. (2010), Variability and Impact on Design of Bioequivalence Studies. Basic & Clinical Pharmacology & Toxicology, 106: 146-153. doi:10.1111/j.1742-7843.2009.00485.x

Julia packages

  • Revels, Jarrett & Lubin, Miles & Papamarkou, Theodore. (2016). Forward-Mode Automatic Differentiation in Julia.

  • Mogensen et al., (2018). Optim: A mathematical optimization package for Julia. Journal of Open Source Software, 3(24), 615,doi: 10.21105/joss.00615

CuSolver & CuBLAS

  • https://docs.nvidia.com/cuda/cusolver/index.html

  • https://docs.nvidia.com/cuda/cublas/index.htm

Reference dataset

  • Bioequivalence reference datasets: Schütz, H., Labes, D., Tomashevskiy, M. et al. Reference Datasets for Studies in a Replicate Design Intended for Average Bioequivalence with Expanding Limits. AAPS J 22, 44 (2020). https://doi.org/10.1208/s12248-020-0427-6

  • sleepstudy.csv: Gregory Belenky, Nancy J. Wesensten, David R. Thorne, Maria L. Thomas, Helen C. Sing, Daniel P. Redmond, Michael B. Russo and Thomas J. Balkin (2003) Patterns of performance degradation and restoration during sleep restriction and subsequent recovery: a sleep dose-response study. Journal of Sleep Research 12, 1–12.

  • Penicillin.csv: O.L. Davies and P.L. Goldsmith (eds), Statistical Methods in Research and Production, 4th ed., Oliver and Boyd, (1972), section 6.6

  • Pastes.csv: O.L. Davies and P.L. Goldsmith (eds), Statistical Methods in Research and Production, 4th ed., Oliver and Boyd, (1972), section 6.5

  • ChickWeight.csv:

    • Crowder, M. and Hand, D. (1990), Analysis of Repeated Measures, Chapman and Hall (example 5.3)
    • Hand, D. and Crowder, M. (1996), Practical Longitudinal Data Analysis, Chapman and Hall (table A.2)
    • Pinheiro, J. C. and Bates, D. M. (2000) Mixed-effects Models in S and S-PLUS, Springer.
  • RepeatedPulse.csv: Data supplied by a student at Oberlin College.

See also: https://vincentarelbundock.github.io/Rdatasets/datasets.html

diff --git a/previews/PR40/search_index.js b/previews/PR40/search_index.js new file mode 100644 index 00000000..fecea01e --- /dev/null +++ b/previews/PR40/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"nlopt/#NLopt","page":"NLopt","title":"NLopt","text":"","category":"section"},{"location":"nlopt/","page":"NLopt","title":"NLopt","text":"Optimization with NLopt.jl.","category":"page"},{"location":"nlopt/","page":"NLopt","title":"NLopt","text":"Install:","category":"page"},{"location":"nlopt/","page":"NLopt","title":"NLopt","text":"using Pkg\nPkg.add(\"MetidaNLopt\")","category":"page"},{"location":"nlopt/","page":"NLopt","title":"NLopt","text":"Using:","category":"page"},{"location":"nlopt/","page":"NLopt","title":"NLopt","text":"using Metida, MetidaNLopt, StatsBase, StatsModels, CSV, DataFrames\ndf = CSV.File(dirname(pathof(Metida))*\"\\\\..\\\\test\\\\csv\\\\df0.csv\") |> DataFrame\nlmm = LMM(@formula(var ~ sequence + period + formulation), df;\nrandom = VarEffect(@covstr(formulation|subject), CSH),\nrepeated = VarEffect(@covstr(formulation|subject), VC))\nfit!(lmm; solver = :nlopt)","category":"page"},{"location":"nlopt/","page":"NLopt","title":"NLopt","text":"NLopt is a free/open-source library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms.","category":"page"},{"location":"nlopt/","page":"NLopt","title":"NLopt","text":"Optimization with NLopt.jl using gradient-free algirithms is less stable, that why two-step optimization schema used. Results can be slightly different for differens OS and Julia versions. Always look into logs. ","category":"page"},{"location":"cuda/#CUDA","page":"CUDA","title":"CUDA","text":"","category":"section"},{"location":"cuda/","page":"CUDA","title":"CUDA","text":"Use CuBLAS & CuSOLVER for REML calculation. Optimization with NLopt.jl.","category":"page"},{"location":"cuda/","page":"CUDA","title":"CUDA","text":"Install:","category":"page"},{"location":"cuda/","page":"CUDA","title":"CUDA","text":"using Pkg\nPkg.add(\"MetidaCu\")","category":"page"},{"location":"cuda/","page":"CUDA","title":"CUDA","text":"Using:","category":"page"},{"location":"cuda/","page":"CUDA","title":"CUDA","text":"using Metida, MetidaCu, StatsBase, StatsModels, CSV, DataFrames\ndf = CSV.File(dirname(pathof(Metida))*\"\\\\..\\\\test\\\\csv\\\\df0.csv\") |> DataFrame\nlmm = LMM(@formula(var ~ sequence + period + formulation), df;\nrandom = VarEffect(@covstr(formulation|subject), CSH),\nrepeated = VarEffect(@covstr(formulation|subject), VC))\nfit!(lmm; solver = :cuda)","category":"page"},{"location":"bioequivalence/#Type-B","page":"Bioequivalence","title":"Type B","text":"","category":"section"},{"location":"bioequivalence/","page":"Bioequivalence","title":"Bioequivalence","text":"using Metida, CSV, DataFrames, CategoricalArrays\n# example data\ndf = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"df0.csv\")) |> DataFrame;\ntransform!(df, :subject => categorical, renamecols=false)\ntransform!(df, :period => categorical, renamecols=false)\ntransform!(df, :sequence => categorical, renamecols=false)\ntransform!(df, :formulation => categorical, renamecols=false)\n\nlmm = LMM(@formula(var~sequence+period+formulation), df;\nrandom = VarEffect(@covstr(1|subject), SI),\n)\nfit!(lmm)\nci = confint(lmm)[end]\nexp.(ci) .* 100.0","category":"page"},{"location":"bioequivalence/#Type-C","page":"Bioequivalence","title":"Type C","text":"","category":"section"},{"location":"bioequivalence/","page":"Bioequivalence","title":"Bioequivalence","text":"lmm =LMM(@formula(var~sequence+period+formulation), df;\nrandom = VarEffect(@covstr(formulation|subject), CSH),\nrepeated = VarEffect(@covstr(formulation|subject), DIAG),\n)\nfit!(lmm)\nci = confint(lmm)[end]\nexp.(ci) .* 100.0","category":"page"},{"location":"bioequivalence/#Reference","page":"Bioequivalence","title":"Reference","text":"","category":"section"},{"location":"bioequivalence/","page":"Bioequivalence","title":"Bioequivalence","text":"Annex I for EMA’s Guideline on the Investigation of Bioequivalence\nFDA Guidance for Industry: Statistical Approaches to Establishing Bioequivalence, APPENDIX F","category":"page"},{"location":"boot/#Parametric-bootstrap","page":"Bootstrap","title":"Parametric bootstrap","text":"","category":"section"},{"location":"boot/#Metida.bootstrap","page":"Bootstrap","title":"Metida.bootstrap","text":"","category":"section"},{"location":"boot/","page":"Bootstrap","title":"Bootstrap","text":"Metida.bootstrap","category":"page"},{"location":"boot/#Metida.bootstrap","page":"Bootstrap","title":"Metida.bootstrap","text":"bootstrap(lmm::LMM; double = false, n = 100, verbose = true, init = lmm.result.theta, rng = default_rng())\n\nParametric bootstrap.\n\nwarning: Warning\nExperimental: API not stable\n\ndouble - use double approach (default - false);\nn - number of bootstrap samples;\nverbose - show progress bar;\ninit - initial values for lmm;\nrng - random number generator.\n\nParametric bootstrap based on generating random responce vector from known distribution, that given from fitted LMM model.\n\nSimple bootstrap:\n\nFor one-stage bootstrap variance parameters and coefficients simulated in one step. \n\nDouble bootstrap:\n\nFor double bootstrap (two-tage) variance parameters simulated in first cycle, than they used for simulating coefficients and var(β) on stage two. On second stage parent-model β used for simulations. \n\nlmm = Metida.LMM(@formula(var~sequence+period+formulation), df0m;\nrandom = Metida.VarEffect(Metida.@covstr(formulation|subject), Metida.CSH),\n)\nMetida.fit!(lmm)\nbt = Metida.bootstrap(lmm; n = 1000, double = true, rng = MersenneTwister(1234))\nconfint(bt)\n\nSee also: confint, Metida.miboot, Metida.nvar, Metida.tvar, Metida.straps, Metida.sdstraps, Metida.thetastraps\n\n\n\n\n\n","category":"function"},{"location":"boot/#Metida.nvar","page":"Bootstrap","title":"Metida.nvar","text":"","category":"section"},{"location":"boot/","page":"Bootstrap","title":"Bootstrap","text":"Metida.nvar","category":"page"},{"location":"boot/#Metida.nvar","page":"Bootstrap","title":"Metida.nvar","text":"nvar(br::BootstrapResult)\n\nNumber of coefficient in the model.\n\n\n\n\n\n","category":"function"},{"location":"boot/#Metida.tvar","page":"Bootstrap","title":"Metida.tvar","text":"","category":"section"},{"location":"boot/","page":"Bootstrap","title":"Bootstrap","text":"Metida.tvar","category":"page"},{"location":"boot/#Metida.tvar","page":"Bootstrap","title":"Metida.tvar","text":"tvar(br::BootstrapResult) = length(br.theta)\n\nNumber of theta parameters in the model.\n\n\n\n\n\n","category":"function"},{"location":"boot/#Metida.straps","page":"Bootstrap","title":"Metida.straps","text":"","category":"section"},{"location":"boot/","page":"Bootstrap","title":"Bootstrap","text":"Metida.straps","category":"page"},{"location":"boot/#Metida.straps","page":"Bootstrap","title":"Metida.straps","text":"straps(br::BootstrapResult, idx::Int)\n\nReturn coefficients vector.\n\n\n\n\n\n","category":"function"},{"location":"boot/#Metida.sdstraps","page":"Bootstrap","title":"Metida.sdstraps","text":"","category":"section"},{"location":"boot/","page":"Bootstrap","title":"Bootstrap","text":"Metida.sdstraps","category":"page"},{"location":"boot/#Metida.sdstraps","page":"Bootstrap","title":"Metida.sdstraps","text":"sdstraps(br::BootstrapResult, idx::Int)\n\nReturn sqrt(var(β)) vector.\n\n\n\n\n\n","category":"function"},{"location":"boot/#Metida.thetastraps","page":"Bootstrap","title":"Metida.thetastraps","text":"","category":"section"},{"location":"boot/","page":"Bootstrap","title":"Bootstrap","text":"Metida.thetastraps","category":"page"},{"location":"boot/#Metida.thetastraps","page":"Bootstrap","title":"Metida.thetastraps","text":"straps(br::BootstrapResult, idx::Int)\n\nReturn theta vector.\n\n\n\n\n\n","category":"function"},{"location":"details/#Details","page":"Details","title":"Details","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"The solution to the mixed model equations is a maximum likelihood estimate when the distribution of the errors is normal. Maximum likelihood estimates are based on the probability model for the observed responses. In the probability model the distribution of the responses is expressed as a function of one or more parameters. PROC MIXED in SAS used restricted maximum likelihood (REML) approach by default. REML equation can be described with following (Henderson, 1959;Laird et.al. 1982; Jennrich 1986; Lindstrom & Bates, 1988; Gurka et.al 2006).","category":"page"},{"location":"details/","page":"Details","title":"Details","text":"Metida.jl using optimization with Optim.jl package (Newton's Method) by default. Because variance have only positive values and ρ is limited as -1 ≤ ρ ≤ 1 in Metida.jl \"link\" function is used. Exponential values is optimizing in variance part and ρ is linked with sigmoid function. All steps perform with differentiable functions with forward automatic differentiation using ForwardDiff.jl package. Also MetidaNLopt.jl and MetidaCu.jl available for optimization with NLopt.jl and solving on CUDA GPU. Sweep algorithm using for variance-covariance matrix inversing in REML calculation.","category":"page"},{"location":"details/#Model","page":"Details","title":"Model","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"In matrix notation a mixed effect model can be represented as:","category":"page"},{"location":"details/","page":"Details","title":"Details","text":"y = Xbeta + Zu + epsilon","category":"page"},{"location":"details/#V","page":"Details","title":"V","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"V_i = Z_iGZ_i+R_i","category":"page"},{"location":"details/#Henderson's-«mixed-model-equations»","page":"Details","title":"Henderson's «mixed model equations»","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"beginpmatrixXR^-1XXR^-1ZZR^-1XZR^-1Z+G_-1endpmatrix beginpmatrixwidehatbeta widehatu endpmatrix= beginpmatrixXR^-1yZR^-1yendpmatrix","category":"page"},{"location":"details/#REML","page":"Details","title":"REML","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"logREML(thetabeta) = -fracN-p2 - frac12sum_i=1^nlogV_theta i-\n\n-frac12logsum_i=1^nX_iV_theta i^-1X_i-frac12sum_i=1^n(y_i - X_ibeta)V_theta i^-1(y_i - X_ibeta)","category":"page"},{"location":"details/","page":"Details","title":"Details","text":"Actually `L(theta) = -2logREML = L_1(theta) + L_2(theta) + L_3(theta) + c used for optimization, where:","category":"page"},{"location":"details/","page":"Details","title":"Details","text":"L_1(theta) = frac12sum_i=1^nlogV_i \n\nL_2(theta) = frac12logsum_i=1^nX_iV_i^-1X_i \n\nL_3(theta) = frac12sum_i=1^n(y_i - X_ibeta)V_i^-1(y_i - X_ibeta)","category":"page"},{"location":"details/","page":"Details","title":"Details","text":"nablamathcalL(theta) = nabla L_1(theta) + nabla L_2(theta) + nabla L_3(theta)","category":"page"},{"location":"details/","page":"Details","title":"Details","text":"mathcalHmathcalL(theta) = mathcalHL_1(theta) + mathcalHL_2(theta) + mathcalH L_3(theta)","category":"page"},{"location":"details/#Initial-step","page":"Details","title":"Initial step","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"Initial (first) step before optimization may be done:","category":"page"},{"location":"details/","page":"Details","title":"Details","text":"theta_n+1 = theta_n - nablamathcalL(theta_n) * mathcalH^(theta_n) where \n\nmathcalH^(theta_n) = - mathcalHL_1(theta_n) + mathcalH L_3(theta) if score \n\nmathcalH^(theta_n) = mathcalH L_3(theta_n) if ai\n","category":"page"},{"location":"details/#Beta-(β)","page":"Details","title":"Beta (β)","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"beta = (sum_i=1^n X_iV_i^-1X_i)^-1(sum_i=1^n X_iV_i^-1y_i)","category":"page"},{"location":"details/#F","page":"Details","title":"F","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"F = fracbetaL(LCL)^-1Lbetarank(LCL)","category":"page"},{"location":"details/#Variance-covariance-matrix-of-β","page":"Details","title":"Variance covariance matrix of β","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"C = (sum_i=1^n X_iV_i^-1X_i)^-1","category":"page"},{"location":"details/#Sweep","page":"Details","title":"Sweep","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"Details see: https://github.com/joshday/SweepOperator.jl","category":"page"},{"location":"details/#varlink_header","page":"Details","title":"Variance parameters link function","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"Apply special function to some part of theta vector.","category":"page"},{"location":"details/#Variance-(var)-part","page":"Details","title":"Variance (var) part","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"Applied only to variance part.","category":"page"},{"location":"details/#Exponential-function-(:exp)","page":"Details","title":"Exponential function (:exp)","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"Exponential function applied.","category":"page"},{"location":"details/","page":"Details","title":"Details","text":" f(x) = exp(x)","category":"page"},{"location":"details/","page":"Details","title":"Details","text":" f^-1(x) = log(x)","category":"page"},{"location":"details/#Square-function-(:sq)","page":"Details","title":"Square function (:sq)","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":" f(x) = x^2","category":"page"},{"location":"details/","page":"Details","title":"Details","text":" f^-1(x) = sqrt(x)","category":"page"},{"location":"details/#Identity-function-(:identity)","page":"Details","title":"Identity function (:identity)","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":" f(x) = x","category":"page"},{"location":"details/","page":"Details","title":"Details","text":" f^-1(x) = x","category":"page"},{"location":"details/#Covariance-(rho)-part","page":"Details","title":"Covariance (rho) part","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"Applied only to covariance part.","category":"page"},{"location":"details/#Sigmoid-function-(:sigm)","page":"Details","title":"Sigmoid function (:sigm)","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":" f(x) = 1 (1 + exp(- x * k)) * 2 - 1","category":"page"},{"location":"details/","page":"Details","title":"Details","text":" f^-1(x) = -log(1 (x + 1) * 2 - 1) k","category":"page"},{"location":"details/","page":"Details","title":"Details","text":"where k = 01","category":"page"},{"location":"details/#Arctangent-function-(:atan)","page":"Details","title":"Arctangent function (:atan)","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":" f(x) = atan(x)pi*2","category":"page"},{"location":"details/","page":"Details","title":"Details","text":" f^-1(x) = tan(x*pi2)","category":"page"},{"location":"details/#\"Square\"-sigmoid-function-(:sqsigm)","page":"Details","title":"\"Square\" sigmoid function (:sqsigm)","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":" f(x) = x sqrt1 + (x)^2","category":"page"},{"location":"details/","page":"Details","title":"Details","text":" f^-1(x) = sign(x) * sqrtx^2(1 - x^2)","category":"page"},{"location":"details/#Positive-sigmoid-function-(:psigm)","page":"Details","title":"Positive sigmoid function (:psigm)","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":" f(x) = 1(1 + exp(-x 2))","category":"page"},{"location":"details/","page":"Details","title":"Details","text":" f^-1(x) = -log(1x - 1) * 2","category":"page"},{"location":"details/#Additional-parameters-(theta)-part","page":"Details","title":"Additional parameters (theta) part","text":"","category":"section"},{"location":"details/","page":"Details","title":"Details","text":"No function applied.","category":"page"},{"location":"mi/#Multiple-imputation","page":"Multiple imputation","title":"Multiple imputation","text":"","category":"section"},{"location":"mi/#Metida.milmm","page":"Multiple imputation","title":"Metida.milmm","text":"","category":"section"},{"location":"mi/","page":"Multiple imputation","title":"Multiple imputation","text":"Metida.milmm","category":"page"},{"location":"mi/#Metida.milmm","page":"Multiple imputation","title":"Metida.milmm","text":"milmm(mi::MILMM; n = 100, verbose = true, rng = default_rng())\n\nMultiple imputation.\n\nwarning: Warning\nExperimental: API not stable\n\nFor each subject random vector of missing values generated from distribution:\n\nX_imp sim N(mu_miss mid obs Sigma_miss mid obs)\n\nmu_miss mid obs = mu_1+ Sigma_12 Sigma_22^-1 (x_obs- mu_2)\n\nSigma_miss mid obs = Sigma_11- Sigma_12 Sigma_22^-1 Sigma_21\n\nx = beginbmatrixx_miss x_obs endbmatrix\nmu = beginbmatrixmu_1 mu_2 endbmatrix\nSigma = beginbmatrix Sigma_11 Sigma_12 Sigma_21 Sigma_22 endbmatrix\n\nExample:\n\nlmm = Metida.LMM(@formula(var~sequence+period+formulation), df0m;\nrandom = Metida.VarEffect(Metida.@covstr(formulation|subject), Metida.CSH),\n)\nMetida.fit!(lmm)\nmi = Metida.MILMM(lmm, df0m)\nbm = Metida.milmm(mi; n = 100, rng = MersenneTwister(1234))\n\n\n\n\n\nmilmm(lmm::LMM, data; n = 100, verbose = true, rng = default_rng())\n\nMultiple imputation in one step. data for lmm and for milmm should be the same, if different data used resulst can be unpredictable.\n\n\n\n\n\n","category":"function"},{"location":"mi/#Metida.miboot","page":"Multiple imputation","title":"Metida.miboot","text":"","category":"section"},{"location":"mi/","page":"Multiple imputation","title":"Multiple imputation","text":"Metida.miboot","category":"page"},{"location":"mi/#Metida.miboot","page":"Multiple imputation","title":"Metida.miboot","text":"miboot(mi::MILMM{T}; n = 100, double = true, bootn = 100, verbose = true, rng = default_rng())\n\nMultiple imputation with parametric bootstrap step.\n\nwarning: Warning\nExperimental: API not stable\n\nExample:\n\nlmm = Metida.LMM(@formula(var~sequence+period+formulation), df0m;\nrandom = Metida.VarEffect(Metida.@covstr(formulation|subject), Metida.CSH),\n)\nMetida.fit!(lmm)\nmi = Metida.MILMM(lmm, df0m)\nbm = Metida.miboot(mi; n = 100, rng = MersenneTwister(1234))\n\n\n\n\n\n","category":"function"},{"location":"instanduse/#Installation","page":"First step","title":"Installation","text":"","category":"section"},{"location":"instanduse/","page":"First step","title":"First step","text":"ENV[\"GKSwstype\"] = \"nul\"\nusing Plots, StatsPlots, CSV, DataFrames, Metida\n\ngr()\n\nPlots.reset_defaults()\n\nrds = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"1fptime.csv\"); types = [String, String, Float64, Float64]) |> DataFrame\n\np = @df rds plot(:time, :response, group = (:subject, :factor), colour = [:red :blue], legend = false)\n\npng(p, \"plot1.png\")\n\nrds = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"1freparma.csv\"); types = [String, String, Float64, Float64]) |> DataFrame\n\np = @df rds plot(:time, :response, group = (:subject, :factor), colour = [:red :blue], legend = false)\n\npng(p, \"plot2.png\")","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"import Pkg; Pkg.add(\"Metida\")","category":"page"},{"location":"instanduse/#Simple-example","page":"First step","title":"Simple example","text":"","category":"section"},{"location":"instanduse/","page":"First step","title":"First step","text":"LMM\nMetida.@covstr\nMetida.VarEffect\nfit!","category":"page"},{"location":"instanduse/#Step-1:-Load-data","page":"First step","title":"Step 1: Load data","text":"","category":"section"},{"location":"instanduse/","page":"First step","title":"First step","text":"Load provided data with CSV and DataFrames:","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"using Metida, CSV, DataFrames, CategoricalArrays\n\ndf = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"df0.csv\")) |> DataFrame;\nnothing # hide","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"note: Note\nCheck that all categorical variables are categorical.","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"transform!(df, :subject => categorical, renamecols=false)\ntransform!(df, :period => categorical, renamecols=false)\ntransform!(df, :sequence => categorical, renamecols=false)\ntransform!(df, :formulation => categorical, renamecols=false)\nnothing # hide","category":"page"},{"location":"instanduse/#Step-2:-Make-model","page":"First step","title":"Step 2: Make model","text":"","category":"section"},{"location":"instanduse/","page":"First step","title":"First step","text":"Make model with @formula macro from StatsModels. Define random and repreated effects with Metida.VarEffect using Metida.@covstr macros. Left side of @covstr is model of effect and right side is a effect itself. Metida.HeterogeneousCompoundSymmetry and Metida.Diag (Diagonal) in example bellow is a model of variance-covariance structure. See also Metida.@lmmformula macro.","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"note: Note\n","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"In some cases levels of repeated effect should not be equal inside each level of subject or model will not have any sense. For example, it is assumed that usually CSH or UN (Unstructured) using with levels of repeated effect is different inside each level of subject. Metida does not check this!","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"lmm = LMM(@formula(var~sequence+period+formulation), df;\nrandom = VarEffect(@covstr(formulation|subject), CSH),\nrepeated = VarEffect(@covstr(formulation|subject), DIAG));","category":"page"},{"location":"instanduse/#Step-3:-Fit","page":"First step","title":"Step 3: Fit","text":"","category":"section"},{"location":"instanduse/","page":"First step","title":"First step","text":"Just fit the model.","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"fit!(lmm)","category":"page"},{"location":"instanduse/#Check-warnings-and-errors-in-log.","page":"First step","title":"Check warnings and errors in log.","text":"","category":"section"},{"location":"instanduse/","page":"First step","title":"First step","text":"lmm.log","category":"page"},{"location":"instanduse/#Type-III-Tests-of-Fixed-Effects","page":"First step","title":"Type III Tests of Fixed Effects","text":"","category":"section"},{"location":"instanduse/","page":"First step","title":"First step","text":"warning: Warning\nExperimental","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"typeiii(lmm)","category":"page"},{"location":"instanduse/#Model-construction","page":"First step","title":"Model construction","text":"","category":"section"},{"location":"instanduse/","page":"First step","title":"First step","text":"To construct model you can use LMM constructor. ","category":"page"},{"location":"instanduse/","page":"First step","title":"First step","text":"model - example: @formula(var ~ sequence + period + formulation)\nrandom - effects can be specified like this: VarEffect(@covstr(formulation|subject), CSH). @covstr is a effect model: @covstr(formulation|subject). CSH is a CovarianceType structure. Premade constants: SI, DIAG, AR, ARH, CS, CSH, ARMA, TOEP, TOEPH, UN, ets. If not specified only repeated used.\nrepeated - can be specified like random effect. If not specified VarEffect(@covstr(1|1), SI) used. If no repeated effects specified vector of ones used.","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Q1: Why it working so slow?","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Metida.jl work with small and medium datasets. Model fitting is based on variance-covariance matrix inversion at each iteration. That's why if you have big blocks it will work slow. If you have big blocks you can try to use MetidaCu.jl for optimization on CUDA GPU. You can use MetidaNLopt.jl for better performance, but you will not get Hessian matrix at the end of optimization. Also if you don't need to specify repeated-measures (R) covariance part and use SI, DIAG, CS, CSH covariance types for random-effect part (G) you can use MixedModels.jl - it work much faster.","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Q2: What blocks is?","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Blocks depend on subjects. If you have only one random effect block is equivalent to subject. If you have more than one random effect blocks will be made as non-crossing combination for all subject variables. ","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Q3: Why model does not converge?","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Optimization of REML function can depend on many factors. In some cases covariance parameters can be correlated (ill-conditioned/singular covariance matrix). So hypersurface in the maximum area can be very flat, that why the result can be different for different starting values (or for different software even REML is near equal). Also, some models can not be fitted for specific data at all. If the model not fitted try to check how meaningful and reasonable is the model or try to guess more robust initial conditions.","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Q4: Is model fitting is correct?","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Use 'lmm.log' to see warnings and errors. If you have warnings and error maybe this model is overspecified. Try to change variance structure or guess more robust initial conditions.","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Q5: How to choose best variance-covariance structure?","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"SAS Manual, Mixed Models Analyses Using the SAS System Course Notes:","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Unfortunately, our attempt to share a very RECENT perspective by a relatively small number of statistics and statistics related research has somewhat sidetracked the focus of lesson 1. Would like to attempt to provide some clarity to some of the discussion on the discussion forum about the bar chart vs. interval charts. You can use information criteria produced by the MIXED procedure as a tool to help you select the model with the most appropriate covariance structure. The smaller the information criteria value is, the better the model is. Theoretically, the smaller the -2 Res Log Likelihood is, the better the model is. However, you can always make this value smaller by adding parameters to the model. Information criteria attached penalties to the negative -2 Res Log Likelihood value; that is, the more the parameters, the bigger the penalties. Two commonly used information criteria are Akaike's (1974) and Schwartz's (1978). Generally speaking, BIC tends to choose less complex models than AIC. Because choosing a model that is too simple inflates Type I error rate, when Type I error control is the highest priority, you may want to use AIC. On the other hand, if loss of power is more of a concern, BIC might be preferable (Guerin and Stroup 2000). Starting in the Release 8.1, the MIXED procedure produces another information criteria, AICC. AICC is a finite-sample corrected Akaike Information Criterion. For small samples, it reduces the bias produced by AIC; for large samples, AICC converges to AIC. In general, AICC is preferred to AIC. For more information on information criteria, especially AICC, refer to Burnham, K. P. and Anderson, D. R. (1998). The basic idea for repeated measures analysis is that, among plausible within-subject covariance models given a particular study, the model that minimizes AICC or BIC (your choice) is preferable. When AICC or BIC are close, the simpler model is generally preferred.","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Q6: I have a slightly different results for DF calculation, what's wrong?","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Check logs. If final hessian matrix for REML function is ill-conditioned results on differet OS can be slightly different. If possible, try to use more stable covariance structure. Or make an issue on github.","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Q7: I changed maxthreads settings but nothing happend. ","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Check the number of execution threads: Threads.nthreads(), maybe you should change julia startup settings. See also julia threads docs.","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"See also:","category":"page"},{"location":"faq/","page":"F.A.Q.","title":"F.A.Q.","text":"Barnett, A.G., Koper, N., Dobson, A.J., Schmiegelow, F. and Manseau, M. (2010), Using information criteria to select the correct variance–covariance structure for longitudinal data in ecology. Methods in Ecology and Evolution, 1: 15-24. https://doi.org/10.1111/j.2041-210X.2009.00009.x\nGuidelines for Selecting the Covariance Structure in Mixed Model Analysis\nH. J. Keselman,James Algina,Rhonda K. Kowalchuk &Russell D. Wolfinger. A comparison of two approaches for selecting covariance structures in the analysis of repeated measurements. https://doi.org/10.1080/03610919808813497","category":"page"},{"location":"api/#API","page":"API","title":"API","text":"","category":"section"},{"location":"api/#Basic","page":"API","title":"Basic","text":"","category":"section"},{"location":"api/#@covstr","page":"API","title":"@covstr","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.@covstr","category":"page"},{"location":"api/#Metida.@covstr","page":"API","title":"Metida.@covstr","text":"@covstr(ex)\n\nMacros for random/repeated effect model.\n\nExample\n\n@covstr(factor|subject)\n\n\n\n\n\n","category":"macro"},{"location":"api/#@lmmformula","page":"API","title":"@lmmformula","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.@lmmformula","category":"page"},{"location":"api/#Metida.@lmmformula","page":"API","title":"Metida.@lmmformula","text":"@lmmformula(formula, args...)\n\nMacro for made formula with variance-covariance structure representation. @lmmformula could be used for shorter LMM construction.\n\nExample:\n\nlmm = Metida.LMM(@lmmformula(var~sequence+period+formulation,\nrandom = formulation|subject:CSH,\nrepeated = formulation|subject:DIAG),\ndf0)\n\nequal to:\n\nlmm = LMM(@formula(var~sequence+period+formulation), df0;\nrandom = VarEffect(@covstr(formulation|subject), CSH),\nrepeated = VarEffect(@covstr(formulation|subject), DIAG),\n)\n\n@lmmformula have 3 components - 1'st is a formula for fixed effect, it's defined like in StstsModels (1st argument just provided to @formula macro). Other arguments should be defined like keywords. repeated keyword define repeated effect part, random - define random effect part. You can use several random factors as in example bellow:\n\nlmm = LMM(@lmmformula(var~sequence+period+formulation,\nrandom = formulation|subject:CSH,\nrandom = 1|subject:DIAG,\nrepeated = formulation|subject:DIAG),\ndf0)\n\nrandom or repeated structure made by template:\n\neffect formula | blocking factor [/ nested factor] [: covariance structure]\n\n| - devide effect formula form blocking factor definition (necessarily), / and : modificator are optional.\n\n/ work like in MixedModels or in RegressionFormulae - expand factor f|a/b to f|a + f|a&b. It can't be used in repeated effect definition.\n\n: - covariance structure defined right after : (SI, DIAG, CS, CSH, ets...), if : not used then SI used for this effect.\n\nTerms like a+b or a*b shuould not be used as a blocking factors.\n\n\n\n\n\n","category":"macro"},{"location":"api/#Metida.CovarianceType","page":"API","title":"Metida.CovarianceType","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.CovarianceType","category":"page"},{"location":"api/#Metida.CovarianceType","page":"API","title":"Metida.CovarianceType","text":"CovarianceType(cm::AbstractCovmatMethod)\n\nMake covariance type with AbstractCovmatMethod.\n\n\n\n\n\n","category":"type"},{"location":"api/#LMM","page":"API","title":"LMM","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.LMM","category":"page"},{"location":"api/#Metida.LMM","page":"API","title":"Metida.LMM","text":"LMM(model, data; contrasts=Dict{Symbol,Any}(), random::Union{Nothing, VarEffect, Vector{VarEffect}} = nothing, repeated::Union{Nothing, VarEffect} = nothing)\n\nMake Linear-Mixed Model object.\n\nmodel: is a fixed-effect model (@formula)\n\ndata: tabular data\n\ncontrasts: contrasts for fixed factors\n\nrandom: vector of random effects or single random effect\n\nrepeated: is a repeated effect (only one)\n\nSee also: @lmmformula\n\n\n\n\n\n","category":"type"},{"location":"api/#VarEffect","page":"API","title":"VarEffect","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.VarEffect","category":"page"},{"location":"api/#Metida.VarEffect","page":"API","title":"Metida.VarEffect","text":"VarEffect(formula, covtype::T, coding) where T <: AbstractCovarianceType\n\nVarEffect(formula, covtype::T; coding = nothing) where T <: AbstractCovarianceType\n\nVarEffect(formula; coding = nothing)\n\nRandom/repeated effect.\n\nformula from @covstr(ex) macros.\ncovtype - covariance type (SI, DIAG, CS, CSH, AR, ARH, ARMA, TOEP, TOEPH, TOEPP, TOEPHP)\n\nnote: Note\nCategorical factors are coded with FullDummyCoding() by default, use coding for other contrast codeing.\n\nExample\n\nVarEffect(@covstr(1+factor|subject), CSH)\n\nVarEffect(@covstr(1 + formulation|subject), CSH; coding = Dict(:formulation => StatsModels.DummyCoding()))\n\n\n\n\n\n","category":"type"},{"location":"api/#Covariance-structures","page":"API","title":"Covariance structures","text":"","category":"section"},{"location":"api/#Metida.Autoregressive","page":"API","title":"Metida.Autoregressive","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.Autoregressive","category":"page"},{"location":"api/#Metida.Autoregressive","page":"API","title":"Metida.Autoregressive","text":"Autoregressive()\n\nAutoregressive covariance type.\n\nAR = Autoregressive()\n\nbeginbmatrix 1 rho rho^2 rho^3 \nrho 1 rho rho^2 rho^2 rho 1 rho \nrho^3 rho^2 rho 1\nendbmatrixsigma^2\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.AutoregressiveMovingAverage","page":"API","title":"Metida.AutoregressiveMovingAverage","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.AutoregressiveMovingAverage","category":"page"},{"location":"api/#Metida.AutoregressiveMovingAverage","page":"API","title":"Metida.AutoregressiveMovingAverage","text":"AutoregressiveMovingAverage()\n\nAutoregressive moving average covariance type.\n\nARMA = AutoregressiveMovingAverage()\n\nbeginbmatrix 1 gamma gammarho gammarho^2 \ngamma 1 gamma gammarho \ngammarho gamma 1 gamma \ngammarho^2 gammarho gamma 1\nendbmatrixsigma^2\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.CompoundSymmetry","page":"API","title":"Metida.CompoundSymmetry","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.CompoundSymmetry","category":"page"},{"location":"api/#Metida.CompoundSymmetry","page":"API","title":"Metida.CompoundSymmetry","text":"CompoundSymmetry()\n\nCompound symmetry covariance type.\n\nCS = CompoundSymmetry()\n\nbeginbmatrix 1 rho rho rho \nrho 1 rho rho \nrho rho 1 rho \nrho rho rho 1\nendbmatrixsigma^2\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.Diag","page":"API","title":"Metida.Diag","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.Diag","category":"page"},{"location":"api/#Metida.Diag","page":"API","title":"Metida.Diag","text":"Diag()\n\nDiagonal covariance type.\n\nDIAG = Diag()\n\nbeginbmatrix sigma_a^2 0 0 0 sigma_b^2 0 0 0 sigma_c^2 endbmatrix\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.HeterogeneousAutoregressive","page":"API","title":"Metida.HeterogeneousAutoregressive","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.HeterogeneousAutoregressive","category":"page"},{"location":"api/#Metida.HeterogeneousAutoregressive","page":"API","title":"Metida.HeterogeneousAutoregressive","text":"HeterogeneousAutoregressive()\n\nHeterogeneous autoregressive covariance type.\n\nARH = HeterogeneousAutoregressive()\n\nbeginbmatrix\nsigma_a^2 rhosigma_asigma_b rho^2sigma_asigma_c rho^3sigma_asigma_d \nrhosigma_bsigma_a sigma_b^2 rhosigma_bsigma_c rho^2sigma_bsigma_d \nrho^2sigma_csigma_a rhosigma_csigma_b sigma_c^2 rhosigma_csigma_d \nrho^3sigma_dsigma_a rho^2sigma_dsigma_b rhosigma_dsigma_c sigma_d^2\nendbmatrix\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.HeterogeneousCompoundSymmetry","page":"API","title":"Metida.HeterogeneousCompoundSymmetry","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.HeterogeneousCompoundSymmetry","category":"page"},{"location":"api/#Metida.HeterogeneousCompoundSymmetry","page":"API","title":"Metida.HeterogeneousCompoundSymmetry","text":"HeterogeneousCompoundSymmetry()\n\nHeterogeneous compound symmetry covariance type.\n\nCSH = HeterogeneousCompoundSymmetry()\n\nbeginbmatrix\nsigma_a^2 rhosigma_asigma_b rhosigma_asigma_c rhosigma_asigma_d \nrhosigma_bsigma_a sigma_b^2 rhosigma_bsigma_c rhosigma_bsigma_d \nrhosigma_csigma_a rhosigma_csigma_b sigma_c^2 rhosigma_csigma_d \nrhosigma_dsigma_a rhosigma_dsigma_b rhosigma_dsigma_c sigma_d^2\nendbmatrix\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.HeterogeneousToeplitz","page":"API","title":"Metida.HeterogeneousToeplitz","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.HeterogeneousToeplitz","category":"page"},{"location":"api/#Metida.HeterogeneousToeplitz","page":"API","title":"Metida.HeterogeneousToeplitz","text":"HeterogeneousToeplitz()\n\nHeterogeneous toeplitz covariance type. Only for G matrix.\n\nTOEPH = HeterogeneousToeplitz()\n\nbeginbmatrix\nsigma_a^2 rho_1 sigma_a sigma_b rho_2 sigma_a sigma_c rho_3 sigma_a sigma_d \nrho_1 sigma_b sigma_a sigma_b^2 rho_1 sigma_b sigma_c rho_2 sigma_b sigma_d \nrho_2 sigma_c sigma_a rho_1 sigma_c sigma_b sigma_c^2 rho_1 sigma_c sigma_d \nrho_3 sigma_d sigma_a rho_2 sigma_d sigma_b rho_1 sigma_d sigma_c sigma_d^2\nendbmatrix\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.HeterogeneousToeplitzParameterized","page":"API","title":"Metida.HeterogeneousToeplitzParameterized","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.HeterogeneousToeplitzParameterized","category":"page"},{"location":"api/#Metida.HeterogeneousToeplitzParameterized","page":"API","title":"Metida.HeterogeneousToeplitzParameterized","text":"HeterogeneousToeplitzParameterized(p::Int)\n\nHeterogeneous toeplitz covariance type with parameter p, (number of bands = p - 1, if p = 1 it's equal DIAG structure).\n\nTOEPHP(p) = HeterogeneousToeplitzParameterized(p)\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.ScaledIdentity","page":"API","title":"Metida.ScaledIdentity","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.ScaledIdentity","category":"page"},{"location":"api/#Metida.ScaledIdentity","page":"API","title":"Metida.ScaledIdentity","text":"ScaledIdentity()\n\nScaled identity covariance type.\n\nSI = ScaledIdentity()\n\nbeginbmatrix 1 0 0 0 1 0 0 0 1 endbmatrixsigma^2\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.SpatialExponential","page":"API","title":"Metida.SpatialExponential","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.SpatialExponential","category":"page"},{"location":"api/#Metida.SpatialExponential","page":"API","title":"Metida.SpatialExponential","text":"SpatialExponential()\n\nSpatian Exponential covariance structure. Used only for repeated effect.\n\nR_ij = sigma^2 * exp(-dist(ij)theta)\n\nwhere dist - Euclidean distance between row-vectors of repeated effect matrix for subject i and j, θ > 0.\n\nSPEXP = SpatialExponential()\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.SpatialGaussian","page":"API","title":"Metida.SpatialGaussian","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.SpatialGaussian","category":"page"},{"location":"api/#Metida.SpatialGaussian","page":"API","title":"Metida.SpatialGaussian","text":"SpatialGaussian()\n\nSpatian Gaussian covariance structure. Used only for repeated effect.\n\nR_ij = sigma^2 * exp(- dist(ij)^2 theta^2)\n\nwhere dist - Euclidean distance between row-vectors of repeated effect matrix for subject i and j, θ ≠ 0.\n\nSPGAU = SpatialGaussian()\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.SpatialPower","page":"API","title":"Metida.SpatialPower","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.SpatialPower","category":"page"},{"location":"api/#Metida.SpatialPower","page":"API","title":"Metida.SpatialPower","text":"SpatialPower()\n\nSpatian Power covariance structure. Used only for repeated effect.\n\nR_ij = sigma^2 * rho^dist(ij)\n\nwhere dist - Euclidean distance between row-vectors of repeated effect matrix for subject i and j, 1 > ρ > -1.\n\nSPPOW = SpatialPower()\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.Toeplitz","page":"API","title":"Metida.Toeplitz","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.Toeplitz","category":"page"},{"location":"api/#Metida.Toeplitz","page":"API","title":"Metida.Toeplitz","text":"Toeplitz()\n\nToeplitz covariance type. Only for G matrix.\n\nTOEP = Toeplitz()\n\nbeginbmatrix 1 rho_1 rho_2 rho_3 \nrho_1 1 rho_1 rho_2 \nrho_2 rho_1 1 rho_1 \nrho_3 rho_2 rho_1 1\nendbmatrixsigma^2\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.ToeplitzParameterized","page":"API","title":"Metida.ToeplitzParameterized","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.ToeplitzParameterized","category":"page"},{"location":"api/#Metida.ToeplitzParameterized","page":"API","title":"Metida.ToeplitzParameterized","text":"ToeplitzParameterized(p::Int)\n\nToeplitz covariance type with parameter p, (number of bands = p - 1, if p = 1 it's equal SI structure).\n\nTOEPP(p) = ToeplitzParameterized(p)\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.Unstructured","page":"API","title":"Metida.Unstructured","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.Unstructured","category":"page"},{"location":"api/#Metida.Unstructured","page":"API","title":"Metida.Unstructured","text":"Unstructured()\n\nUnstructured covariance structure with t*(t+1)/2-t paremeters where t - number of factor levels, t*(t+1)/2-2t of them is covariance (ρ) patemeters.\n\nUN = Unstructured()\n\n\n\n\n\n","category":"function"},{"location":"api/#Methods","page":"API","title":"Methods","text":"","category":"section"},{"location":"api/#Metida.caic","page":"API","title":"Metida.caic","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.caic","category":"page"},{"location":"api/#Metida.caic","page":"API","title":"Metida.caic","text":"caic(lmm::LMM)\n\nConditional Akaike Information Criterion.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.coefn","page":"API","title":"Metida.coefn","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.coefn","category":"page"},{"location":"api/#Metida.coefn","page":"API","title":"Metida.coefn","text":"coefn(lmm)\n\nCoef number.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.dof_satter","page":"API","title":"Metida.dof_satter","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.dof_satter","category":"page"},{"location":"api/#Metida.dof_satter","page":"API","title":"Metida.dof_satter","text":"dof_satter(lmm::LMM{T}, l) where T\n\nReturn Satterthwaite approximation for the denominator degrees of freedom, where l is a contrast vector (estimable linear combination of fixed effect coefficients vector (β).\n\ndf = frac2(LCL)^2gAg\n\nWhere: A = 2H^-1, g = triangledown_theta(LC^-1_thetaL)\n\n\n\n\n\ndof_satter(lmm::LMM{T}, n::Int) where T\n\nReturn Satterthwaite approximation for the denominator degrees of freedom, where n - coefficient number.\n\n\n\n\n\ndof_satter(lmm::LMM{T}) where T\n\nReturn Satterthwaite approximation for the denominator degrees of freedom for all coefficients.\n\n\n\n\n\ndof_satter(lmm::LMM{T}, l::Matrix) where T\n\nReturn Satterthwaite approximation for the denominator degrees of freedom for conrast matrix l.\n\nFor size(l, 1) > 1:\n\ndf = frac2EE - rank(LCL)\n\nwhere:\n\nlet LCL = QΛQ^-1, where QΛQ^-1 - spectral decomposition of LCL\nLq_i is the i-th row of Q^-1L\nA = 2H^-1, g = triangledown_theta(Lq_i C^-1_theta Lq_i)\nv_i = frac2*Λ_ii^2g * A * g\nE = sum_i=1^n fracv_i(v_i - 2) for v_i 2\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.estimate","page":"API","title":"Metida.estimate","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.estimate","category":"page"},{"location":"api/#Metida.estimate","page":"API","title":"Metida.estimate","text":"estimate(lmm, l::AbstractVector; level = 0.95, name = \"Estimate\")\n\nEstimate table for l vector. Satter DF used.\n\n\n\n\n\nestimate(lmm; level = 0.95)\n\nEstimates table. Satter DF used.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.getlog","page":"API","title":"Metida.getlog","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.getlog","category":"page"},{"location":"api/#Metida.getlog","page":"API","title":"Metida.getlog","text":"getlog(lmm::LMM)\n\nReturn fitting log.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.gmatrix","page":"API","title":"Metida.gmatrix","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.gmatrix","category":"page"},{"location":"api/#Metida.gmatrix","page":"API","title":"Metida.gmatrix","text":"gmatrix(lmm::LMM{T}, r::Int) where T\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.hessian","page":"API","title":"Metida.hessian","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.hessian","category":"page"},{"location":"api/#Metida.hessian","page":"API","title":"Metida.hessian","text":"hessian(lmm, theta)\n\nCalculate Hessian matrix of REML for theta.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.lcontrast","page":"API","title":"Metida.lcontrast","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.lcontrast","category":"page"},{"location":"api/#Metida.lcontrast","page":"API","title":"Metida.lcontrast","text":"lcontrast(lmm::LMM, i::Int)\n\nL-contrast matrix for i fixed effect.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.nblocks","page":"API","title":"Metida.nblocks","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.nblocks","category":"page"},{"location":"api/#Metida.nblocks","page":"API","title":"Metida.nblocks","text":"Number of blocks\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.rand","page":"API","title":"Metida.rand","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.rand","category":"page"},{"location":"api/#Base.rand","page":"API","title":"Base.rand","text":"rand(rng::AbstractRNG, lmm::LMM{T}) where T\n\nGenerate random responce vector for fitted 'lmm' model.\n\n\n\n\n\nrand(rng::AbstractRNG, lmm::LMM{T}; theta) where T\n\nGenerate random responce vector 'lmm' model, theta covariance vector, and zero means.\n\n\n\n\n\nrand(rng::AbstractRNG, lmm::LMM{T}; theta, beta) where T\n\nGenerate random responce vector 'lmm' model, theta covariance vector and mean's vector.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.rand-2","page":"API","title":"Metida.rand","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.rand!","category":"page"},{"location":"api/#Random.rand!","page":"API","title":"Random.rand!","text":"rand!(v::AbstractVector, lmm::LMM) = rand!(default_rng(), v, lmm, lmm.result.theta, lmm.result.beta)\n\nGenerate random responce vector for fitted 'lmm' model, store results in v.\n\n\n\n\n\nrand!(rng::AbstractRNG, lmm::LMM{T}; theta) where T\n\nGenerate random responce vector 'lmm' model, theta covariance vector, and zero means, store results in v.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.raneff","page":"API","title":"Metida.raneff","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.raneff","category":"page"},{"location":"api/#Metida.raneff","page":"API","title":"Metida.raneff","text":"raneff(lmm::LMM{T}, i)\n\nVector of random effect coefficients for block i.\n\n\n\n\n\nraneff(lmm::LMM{T})\n\nVector of random effect coefficients for all subjects by each random effect.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.raneffn","page":"API","title":"Metida.raneffn","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.raneffn","category":"page"},{"location":"api/#Metida.raneffn","page":"API","title":"Metida.raneffn","text":"raneffn(lmm)\n\nRetuen number of random effects.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.rankx","page":"API","title":"Metida.rankx","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.rankx","category":"page"},{"location":"api/#Metida.rankx","page":"API","title":"Metida.rankx","text":"rankx(lmm::LMM)\n\nReturn rank of X matrix.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.rmatrix","page":"API","title":"Metida.rmatrix","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.rmatrix","category":"page"},{"location":"api/#Metida.rmatrix","page":"API","title":"Metida.rmatrix","text":"rmatrix(lmm::LMM{T}, i::Int) where T\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.theta","page":"API","title":"Metida.theta","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.theta","category":"page"},{"location":"api/#Metida.theta","page":"API","title":"Metida.theta","text":"theta(lmm::LMM)\n\nReturn theta vector.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.thetalength","page":"API","title":"Metida.thetalength","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.thetalength","category":"page"},{"location":"api/#Metida.thetalength","page":"API","title":"Metida.thetalength","text":"thetalength(lmm::LMM)\n\nLength of theta vector.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.vmatrix","page":"API","title":"Metida.vmatrix","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.vmatrix!","category":"page"},{"location":"api/#Metida.vmatrix!","page":"API","title":"Metida.vmatrix!","text":"vmatrix!(V, θ, lmm, i)\n\nUpdate variance-covariance matrix V for i bolock. Upper triangular updated.\n\n\n\n\n\n","category":"function"},{"location":"api/#StatsAPI","page":"API","title":"StatsAPI","text":"","category":"section"},{"location":"api/#Metida.aic","page":"API","title":"Metida.aic","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.aic","category":"page"},{"location":"api/#StatsAPI.aic","page":"API","title":"StatsAPI.aic","text":"StatsBase.aic(lmm::LMM)\n\nAkaike Information Criterion.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.aicc","page":"API","title":"Metida.aicc","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.aicc","category":"page"},{"location":"api/#StatsAPI.aicc","page":"API","title":"StatsAPI.aicc","text":"StatsBase.aicc(lmm::LMM)\n\nCorrected Akaike Information Criterion.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.bic","page":"API","title":"Metida.bic","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.bic","category":"page"},{"location":"api/#StatsAPI.bic","page":"API","title":"StatsAPI.bic","text":"StatsBase.bic(lmm::LMM)\n\nBayesian information criterion.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.coef","page":"API","title":"Metida.coef","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.coef","category":"page"},{"location":"api/#StatsAPI.coef","page":"API","title":"StatsAPI.coef","text":"StatsBase.coef(lmm::LMM) = copy(lmm.result.beta)\n\nModel coefficients (β).\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.coefnames","page":"API","title":"Metida.coefnames","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.coefnames","category":"page"},{"location":"api/#StatsAPI.coefnames","page":"API","title":"StatsAPI.coefnames","text":"StatsBase.coefnames(lmm::LMM) = StatsBase.coefnames(lmm.mf)\n\nCoefficients names.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.coeftable","page":"API","title":"Metida.coeftable","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.coeftable","category":"page"},{"location":"api/#StatsAPI.coeftable","page":"API","title":"StatsAPI.coeftable","text":"coeftable(lmm::LMM)\n\nReturn coefficients table.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.confint","page":"API","title":"Metida.confint","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.confint","category":"page"},{"location":"api/#StatsAPI.confint","page":"API","title":"StatsAPI.confint","text":"StatsBase.confint(lmm::LMM{T}; level::Real=0.95, ddf::Symbol = :satter) where T\n\nConfidece interval for coefficients.\n\nddf = :satter/:residual\n\nCI_UL = β SE * t_ddf 1-α2\n\nSee also: dof_satter, dof_residual\n\n\n\n\n\nStatsBase.confint(lmm::LMM{T}, i::Int; level::Real=0.95, ddf::Symbol = :satter) where T\n\nConfidece interval for coefficient i.\n\n\n\n\n\nStatsBase.confint(br::BootstrapResult, n::Int; level::Float64=0.95, method=:bp, metric = :coef, delrml = false)\n\nConfidence interval for bootstrap result.\n\n*method:\n\n:bp - bootstrap percentile;\n:rbp - reverse bootstrap percentile;\n:norm - Normal distribution;\n:bcnorm - Bias corrected Normal distribution;\n:jn - bias corrected (jackknife resampling).\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.crossmodelmatrix","page":"API","title":"Metida.crossmodelmatrix","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.crossmodelmatrix","category":"page"},{"location":"api/#StatsAPI.crossmodelmatrix","page":"API","title":"StatsAPI.crossmodelmatrix","text":"crossmodelmatrix(lmm::LMM)\n\nReturn X'X.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.dof","page":"API","title":"Metida.dof","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.dof","category":"page"},{"location":"api/#StatsAPI.dof","page":"API","title":"StatsAPI.dof","text":"StatsBase.dof(lmm::LMM)\n\nDOF.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.dof_residual","page":"API","title":"Metida.dof_residual","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.dof_residual","category":"page"},{"location":"api/#StatsAPI.dof_residual","page":"API","title":"StatsAPI.dof_residual","text":"StatsBase.dof_residual(lmm::LMM)\n\nDOF residuals: N - rank(X), where N - total number of observations.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.fit","page":"API","title":"Metida.fit","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.fit","category":"page"},{"location":"api/#StatsAPI.fit","page":"API","title":"StatsAPI.fit","text":"fit(::Type{T}, f::FormulaTerm, data;\ncontrasts=Dict{Symbol,Any}(), \nrandom::Union{Nothing, VarEffect, Vector{VarEffect}} = nothing, \nrepeated::Union{Nothing, VarEffect} = nothing,\nkwargs...)\n\nFit LMM model with @formula.\n\nKeywords see fit!\n\n\n\n\n\nfit(::Type{T}, f::LMMformula, data;\ncontrasts=Dict{Symbol,Any}(), \nkwargs...) where T <: LMM\n\nFit LMM model with @lmmformula.\n\nKeywords see fit!\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.fit-2","page":"API","title":"Metida.fit","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.fit!","category":"page"},{"location":"api/#StatsAPI.fit!","page":"API","title":"StatsAPI.fit!","text":"fit!(lmm::LMM{T}; kwargs...\n) where T\n\nFit LMM model.\n\nKeywords:\n\nsolver - :default / :nlopt for using with MetidaNLopt.jl/ :cuda for using with MetidaCu.jl\nverbose - :auto / 1 / 2 / 3 - - 1 - only log, 2 - log and print, 3 - print only errors, other log, 0 (or any other value) - no logging\nvarlinkf - :exp / :sq / :identity ref\nrholinkf - :sigm / :atan / :sqsigm / :psigm\naifirst - first iteration with AI-like method - :default / :ai / :score\ng_tol - absolute tolerance in the gradient\nx_tol - absolute tolerance of theta vector\nf_tol - absolute tolerance in changes of the REML\nhes - calculate REML Hessian\ninit - initial theta values\nio - output IO\ntime_limit - time limit = 120 sec\niterations - maximum iterations = 300\nrefitinit - true/false - if true - use last values for initial condition (false by default)\noptmethod - Optimization method. Look at Optim.jl documentation. (Newton by default)\nsingtol - singular tolerance = 1e-8\nmaxthreads - maximum threads = num_cores()\n\n\n\n\n\n","category":"function"},{"location":"api/#islinear","page":"API","title":"islinear","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.islinear ","category":"page"},{"location":"api/#StatsAPI.islinear","page":"API","title":"StatsAPI.islinear","text":"StatsBase.islinear(model::LMM)\n\n\n\n\n\n","category":"function"},{"location":"api/#isfitted","page":"API","title":"isfitted","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.isfitted","category":"page"},{"location":"api/#StatsAPI.isfitted","page":"API","title":"StatsAPI.isfitted","text":"StatsBase.isfitted(lmm::LMM)\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.loglikelihood","page":"API","title":"Metida.loglikelihood","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.loglikelihood","category":"page"},{"location":"api/#StatsAPI.loglikelihood","page":"API","title":"StatsAPI.loglikelihood","text":"StatsBase.loglikelihood(lmm::LMM)\n\nReturn loglikelihood value.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.modelmatrix","page":"API","title":"Metida.modelmatrix","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.modelmatrix","category":"page"},{"location":"api/#StatsAPI.modelmatrix","page":"API","title":"StatsAPI.modelmatrix","text":"StatsBase.modelmatrix(lmm::LMM)\n\nFixed effects matrix.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.nobs","page":"API","title":"Metida.nobs","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.nobs","category":"page"},{"location":"api/#StatsAPI.nobs","page":"API","title":"StatsAPI.nobs","text":"StatsBase.nobs(lmm::MetiaModel)\n\nNumber of observations.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.response","page":"API","title":"Metida.response","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.response","category":"page"},{"location":"api/#StatsAPI.response","page":"API","title":"StatsAPI.response","text":"StatsBase.response(lmm::LMM)\n\nResponse vector.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.responsename","page":"API","title":"Metida.responsename","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.responsename","category":"page"},{"location":"api/#StatsAPI.responsename","page":"API","title":"StatsAPI.responsename","text":"responsename(lmm::LMM)\n\nResponce varible name.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.stderror","page":"API","title":"Metida.stderror","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.stderror","category":"page"},{"location":"api/#StatsAPI.stderror","page":"API","title":"StatsAPI.stderror","text":"StatsBase.stderror(lmm::LMM)\n\nStandard error\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.vcov","page":"API","title":"Metida.vcov","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.vcov","category":"page"},{"location":"api/#StatsAPI.vcov","page":"API","title":"StatsAPI.vcov","text":"StatsBase.vcov(lmm::LMM)\n\nVariance-covariance matrix of β.\n\n\n\n\n\n","category":"function"},{"location":"api/#Experimental","page":"API","title":"Experimental","text":"","category":"section"},{"location":"api/#Metida.SpatialExponentialD","page":"API","title":"Metida.SpatialExponentialD","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.SpatialExponentialD","category":"page"},{"location":"api/#Metida.SpatialExponentialD","page":"API","title":"Metida.SpatialExponentialD","text":"SpatialExponentialD()\n\nwarning: Warning\nExperimental\n\nSame as SpatialExponential, but add D to all diagonal elements.\n\nSPEXPD = SpatialExponentialD()\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.SpatialGaussianD","page":"API","title":"Metida.SpatialGaussianD","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.SpatialGaussianD","category":"page"},{"location":"api/#Metida.SpatialGaussianD","page":"API","title":"Metida.SpatialGaussianD","text":"SpatialGaussianD()\n\nwarning: Warning\nExperimental\n\nSame as SpatialGaussianD, but add D to all diagonal elements.\n\nSPGAUD = SpatialGaussianD()\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.SpatialPowerD","page":"API","title":"Metida.SpatialPowerD","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.SpatialPowerD","category":"page"},{"location":"api/#Metida.SpatialPowerD","page":"API","title":"Metida.SpatialPowerD","text":"SpatialPowerD()\n\nwarning: Warning\nExperimental\n\nSame as SpatialPower, but add D to all diagonal elements.\n\nSPPOWD = SpatialPowerD()\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.dof_contain","page":"API","title":"Metida.dof_contain","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.dof_contain","category":"page"},{"location":"api/#Metida.dof_contain","page":"API","title":"Metida.dof_contain","text":"dof_contain(lmm, i)\n\nwarning: Warning\nExperimental! Compute rank(XZi) for each random effect that syntactically contain factor assigned for β[i] element (Where Zi - Z matrix for random effect i). Minimum returned. If no random effect found N - rank(XZ) returned.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.typeiii","page":"API","title":"Metida.typeiii","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.typeiii","category":"page"},{"location":"api/#Metida.typeiii","page":"API","title":"Metida.typeiii","text":"typeiii(lmm::LMM{T}; ddf::Symbol = :satter) where T\n\nwarning: Warning\nExperimental\n\nType III table.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.MILMM","page":"API","title":"Metida.MILMM","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.MILMM","category":"page"},{"location":"api/#Metida.MILMM","page":"API","title":"Metida.MILMM","text":"MILMM(lmm::LMM, data)\n\nMultiple imputation model.\n\n\n\n\n\n","category":"type"},{"location":"api/#Not-API-functions","page":"API","title":"Not API functions","text":"","category":"section"},{"location":"api/#Metida.contrast","page":"API","title":"Metida.contrast","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.contrast","category":"page"},{"location":"api/#Metida.contrast","page":"API","title":"Metida.contrast","text":"contrast(lmm, l::AbstractMatrix; name::String = \"Contrast\", ddf = :satter)\n\nUser contrast table. ddf = :satter or :residual or any number for direct ddf setting.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.fvalue","page":"API","title":"Metida.fvalue","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.fvalue","category":"page"},{"location":"api/#Metida.fvalue","page":"API","title":"Metida.fvalue","text":"fvalue(lmm::LMM, l::Matrix)\n\nF value for contrast matrix l.\n\nF = fracbetaL(LCL)^-1Lbetarank(LCL)\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.mulαβαtinc","page":"API","title":"Metida.mulαβαtinc","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.mulαβαtinc!","category":"page"},{"location":"api/#Metida.mulαβαtinc!","page":"API","title":"Metida.mulαβαtinc!","text":"mulαβαtinc!(θ::AbstractMatrix, A::AbstractMatrix, B::AbstractMatrix)\n\nθ + A * B * A'\n\nChange θ (only upper triangle). B is symmetric.\n\n\n\n\n\nmulαβαtinc!(θ::AbstractMatrix, A::AbstractMatrix, B::AbstractMatrix, alpha)\n\nθ + A * B * A' * alpha\n\nChange θ (only upper triangle). B is symmetric.\n\n\n\n\n\nmulαβαtinc!(θ::AbstractVector{T}, A::AbstractMatrix, B::AbstractMatrix, a::AbstractVector, b::AbstractVector, alpha) where T\n\nθ + A * B * (a - b) * alpha\n\nChange θ (only upper triangle). B is symmetric.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.mulθ","page":"API","title":"Metida.mulθ₃","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.mulθ₃","category":"page"},{"location":"api/#Metida.mulθ₃","page":"API","title":"Metida.mulθ₃","text":"mulθ₃(y, X, β, V::AbstractMatrix{T})::T where T\n\n(y - X * β)' * (-V) * (y - X * β)\n\nuse only upper triangle of V\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.mulαtβinc","page":"API","title":"Metida.mulαtβinc","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.mulαtβinc!","category":"page"},{"location":"api/#Metida.mulαtβinc!","page":"API","title":"Metida.mulαtβinc!","text":"mulαtβinc!(θ::AbstractVector{T}, A::AbstractMatrix, b::AbstractVector) where T\n\nθ + A' * b\n\nChange θ.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.tname","page":"API","title":"Metida.tname","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.tname ","category":"page"},{"location":"api/#Metida.tname","page":"API","title":"Metida.tname","text":"Rerm name.\n\n\n\n\n\n","category":"function"},{"location":"api/#Metida.raneflenv","page":"API","title":"Metida.raneflenv","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"Metida.raneflenv ","category":"page"},{"location":"api/#Metida.raneflenv","page":"API","title":"Metida.raneflenv","text":"Return number of subject foe each random effet in current block.\n\n\n\n\n\n","category":"function"},{"location":"custom/#Custom-structures","page":"Custom structures","title":"Custom structures","text":"","category":"section"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"To make your own covariance structure first you should make struct that <: AbstractCovarianceType:","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Example:","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"struct YourCovarianceStruct <: AbstractCovarianceType end","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"You also can specify additional field if you need to use them inside gmat!/rmat! functions.","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Then you can make function for construction random effect matrix (gmat!) and repeated effect (rmat!). Only upper triangular can be updated.","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Function gmat! have 3 arguments: mx - zero matrix, θ - theta vector for this effect, and your custom structure object.","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Next this function used to make \"random\" part of variance-covariance matrix: V' = Z * G * Z'","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"function Metida.gmat!(mx, θ, ::YourCovarianceStruct)\n @inbounds @simd for i = 1:size(mx, 1)\n mx[i, i] = θ[i] ^ 2\n end\n nothing\nend","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Function rmat! have 4 arguments and add repeated effect to V': V = V' + R (so V = Z * G * Z' + R), mx - V' matrix, θ - theta vector for this effect, rz - subject effect matrix, ct - your covariance type object. For example, rmat! for Heterogeneous Toeplitz Parameterized structure is specified bellow (TOEPHP_ <: AbstractCovarianceType).","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"function Metida.rmat!(mx, θ, rz, ct::TOEPHP_)\n l = size(rz, 2)\n vec = rz * (θ[1:l])\n s = size(mx, 1)\n if s > 1 && ct.p > 1\n for m = 1:s - 1\n for n = m + 1:(m + ct.p - 1 > s ? s : m + ct.p - 1)\n @inbounds mx[m, n] += vec[m] * vec[n] * θ[n - m + l]\n end\n end\n end\n @inbounds @simd for m = 1:s\n mx[m, m] += vec[m] * vec[m]\n end\n nothing\nend","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"One more function you shoud make is covstrparam, this function need to know how many parameters included in theta vector for optimization. Function returns number of variance parameters and rho parameters for this structure. Where t - number of columns in individual Z matrix for random effect or number of columns in repeated effect matrix (rZ).","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Example for Heterogeneous Autoregressive and Heterogeneous Compound Symmetry structures:","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"function Metida.covstrparam(ct::Union{ARH_, CSH_}, t::Int)::Tuple{Int, Int}\n return (t, 1)\nend","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"For better printing you can add:","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"function Metida.rcoefnames(s, t, ct::YourCovarianceStruct)\n return [\"σ² \", \"γ \", \"ρ \"]\nend","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Where, s - effect schema, t - number of parameters, this function returns names for your covariance structure for printing in LMM output.","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Add this method for better printing:","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"function Base.show(io::IO, ct::YourCovarianceStruct)\n print(io, \"YourCovarianceStruct\")\nend","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Then just make model and fit it:","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"lmm = Metida.LMM(@formula(response ~ 1 + factor*time), ftdf2;\n random = Metida.VarEffect(Metida.@covstr(factor|subject&factor), YourCovarianceStruct()),\n repeated = Metida.VarEffect(Metida.@covstr(1|subject&factor), YourCovarianceStruct()),\n )\n Metida.fit!(lmm)","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"Example:","category":"page"},{"location":"custom/","page":"Custom structures","title":"Custom structures","text":"using Metida, DataFrames, CSV, CategoricalArrays\n\nftdf = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"1fptime.csv\"); types = [String, String, Float64, Float64]) |> DataFrame\ndf0 = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"df0.csv\"); types = [String, String, String, String,Float64, Float64]) |> DataFrame\n\nstruct CustomCovarianceStructure <: Metida.AbstractCovarianceType end\nfunction Metida.covstrparam(ct::CustomCovarianceStructure, t::Int)::Tuple{Int, Int}\n return (t, 1)\nend\nfunction Metida.gmat!(mx, θ, ct::CustomCovarianceStructure)\n s = size(mx, 1)\n @inbounds @simd for m = 1:s\n mx[m, m] = θ[m]\n end\n if s > 1\n for m = 1:s - 1\n @inbounds @simd for n = m + 1:s\n mx[m, n] = mx[m, m] * mx[n, n] * θ[end]\n end\n end\n end\n @inbounds @simd for m = 1:s\n mx[m, m] = mx[m, m] * mx[m, m]\n end\n nothing\nend\n\nlmm = Metida.LMM(@formula(response ~1 + factor*time), ftdf;\nrandom = Metida.VarEffect(Metida.@covstr(1 + time|subject&factor), CustomCovarianceStructure()),\n)\nMetida.fit!(lmm)\n\n# for R matrix\n\nfunction Metida.rmat!(mx, θ, rz, ::CustomCovarianceStructure)\n vec = Metida.tmul_unsafe(rz, θ)\n rn = size(mx, 1)\n if rn > 1\n for m = 1:rn - 1\n @inbounds @simd for n = m + 1:rn\n mx[m, n] += vec[m] * vec[n] * θ[end]\n end\n end\n end\n @inbounds for m ∈ axes(mx, 1)\n mx[m, m] += vec[m] * vec[m]\n end\n nothing\nend\n\nlmm = Metida.LMM(@formula(var~sequence+period+formulation), df0;\nrepeated = Metida.VarEffect(Metida.@covstr(period|subject), CustomCovarianceStructure()),\n)\nMetida.fit!(lmm)","category":"page"},{"location":"examples/#Example-1-Continuous-and-categorical-predictors","page":"Examples","title":"Example 1 - Continuous and categorical predictors","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"using Metida, CSV, DataFrames, CategoricalArrays, MixedModels;\n\nrds = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"1fptime.csv\"); types = [String, String, Float64, Float64]) |> DataFrame\n\nnothing; # hide","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"(Image: )","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"Metida result:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"lmm = LMM(@formula(response ~1 + factor*time), rds;\nrandom = VarEffect(@covstr(1 + time|subject&factor), CSH),\n)\nfit!(lmm)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"MixedModels result:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"fm = @formula(response ~ 1 + factor*time + (1 + time|subject&factor))\nmm = fit(MixedModel, fm, rds, REML=true)\nprintln(mm) #hide","category":"page"},{"location":"examples/#Example-2-Two-random-factors-(Penicillin-data)","page":"Examples","title":"Example 2 - Two random factors (Penicillin data)","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"Metida:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"\ndf = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"Penicillin.csv\"); types = [String, Float64, String, String]) |> DataFrame\ndf.diameter = float.(df.diameter)\n\nlmm = LMM(@formula(diameter ~ 1), df;\nrandom = [VarEffect(@covstr(1|plate), SI), VarEffect(@covstr(1|sample), SI)]\n)\nfit!(lmm)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"MixedModels:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"\nfm2 = @formula(diameter ~ 1 + (1|plate) + (1|sample))\nmm = fit(MixedModel, fm2, df, REML=true)\nprintln(mm) #hide","category":"page"},{"location":"examples/#Example-3-Repeated-ARMA/AR/ARH","page":"Examples","title":"Example 3 - Repeated ARMA/AR/ARH","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"rds = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"1freparma.csv\"); types = [String, String, Float64, Float64]) |> DataFrame\n\nnothing # hide","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"(Image: )","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"ARMA:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"lmm = LMM(@formula(response ~ 1 + factor*time), rds;\nrandom = VarEffect(@covstr(factor|subject&factor), DIAG),\nrepeated = VarEffect(@covstr(1|subject&factor), ARMA),\n)\nfit!(lmm)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"AR:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"lmm = Metida.LMM(@formula(response ~ 1 + factor*time), rds;\nrandom = VarEffect(@covstr(factor|subject&factor), DIAG),\nrepeated = VarEffect(@covstr(1|subject&factor), AR),\n)\nfit!(lmm)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"ARH:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"lmm = Metida.LMM(@formula(response ~ 1 + factor*time), rds;\nrandom = VarEffect(@covstr(factor|subject&factor), DIAG),\nrepeated = VarEffect(@covstr(1|subject&factor), ARH),\n)\nfit!(lmm)","category":"page"},{"location":"examples/#Example-4-SAS-relation","page":"Examples","title":"Example 4 - SAS relation","text":"","category":"section"},{"location":"examples/#Model-1","page":"Examples","title":"Model 1","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"df0 = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"df0.csv\")) |> DataFrame\n\nlmm = LMM(@formula(var ~ sequence + period + formulation), df0;\nrandom = VarEffect(@covstr(formulation|subject), CSH),\nrepeated = VarEffect(@covstr(formulation|subject), DIAG),\n)\nfit!(lmm)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"SAS code:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"PROC MIXED data=df0;\nCLASSES subject sequence period formulation;\nMODEL var = sequence period formulation/ DDFM=SATTERTH s;\nRANDOM formulation/TYPE=CSH SUB=subject G V;\nREPEATED/GRP=formulation SUB=subject R;\nRUN;","category":"page"},{"location":"examples/#Model-2","page":"Examples","title":"Model 2","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"lmm = LMM(\n @formula(var ~ sequence + period + formulation), df0;\n random = VarEffect(@covstr(formulation|subject), SI),\n repeated = VarEffect(@covstr(formulation|subject), DIAG),\n)\nfit!(lmm)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"SAS code:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"PROC MIXED data=df0;\nCLASSES subject sequence period formulation;\nMODEL var = sequence period formulation/ DDFM=SATTERTH s;\nRANDOM formulation/TYPE=VC SUB=subject G V;\nREPEATED/GRP=formulation SUB=subject R;\nRUN;","category":"page"},{"location":"examples/#Model-3","page":"Examples","title":"Model 3","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"lmm = LMM(@formula(var ~ sequence + period + formulation), df0;\n random = VarEffect(@covstr(subject|1), SI)\n )\nfit!(lmm)","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"SAS code:","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"PROC MIXED data=df0;\nCLASSES subject sequence period formulation;\nMODEL var = sequence period formulation/ DDFM=SATTERTH s;\nRANDOM subject/TYPE=VC G V;\nRUN;","category":"page"},{"location":"examples/#Example-5-Working-with-Effects.jl","page":"Examples","title":"Example 5 - Working with Effects.jl","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"using Effects, StatsModels\n\nlmm = LMM(@formula(var ~ sequence + period + formulation), df0;\n random = VarEffect(@covstr(subject|1), SI)\n )\nfit!(lmm)\n\ntable_model = StatsModels.TableRegressionModel(lmm, lmm.mf, lmm.mm)\n\nemmeans(tm)\n\neffects(Dict(:period => [\"1\", \"2\", \"3\", \"4\"]), tm)","category":"page"},{"location":"validation/#Validation","page":"Validation","title":"Validation","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"Validation provided with 3 sections:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"REML validation for public datasets with Metida & SPSS\nParameters validation for public datasets Metida & SPSS & MixedModels\nValidation with bioequivalence datasets with Metida & SPSS","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"To run validation:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"using Metida; include(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"validation.jl\"))","category":"page"},{"location":"validation/#Section-1:-REML-validation-for-public-datasets-Metida-and-SPSS","page":"Validation","title":"Section 1: REML validation for public datasets Metida & SPSS","text":"","category":"section"},{"location":"validation/#REML-result-table","page":"Validation","title":"REML result table","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"Model DataSet Used cov. types REML Metida REML SPSS\n1 sleepstudy.csv SI/SI 1729.4925602367025 1729.492560\n2 sleepstudy.csv CS/SI 1904.3265170722132 1904.327\n3 sleepstudy.csv CSH/SI 1772.0953251997046 1772.095\n4 sleepstudy.csv ARH/SI 1730.1895427398322 1730.189543\n5 Pastes.csv SI,SI/SI 246.99074585348623 246.990746\n6 Pastes.csv ARMA/SI 246.81895071012508 246.818951\n7 Penicillin.csv SI,SI/SI 330.86058899109184 330.860589\n8 RepeatedPulse.csv SI/AR 453.3395435627574 453.339544\n9 RepeatedPulse.csv 0/AR 471.85107712169827 471.851077\n10 RepeatedPulse.csv AR/SI 453.3395560121246 453.339555","category":"page"},{"location":"validation/#sleepstudy.csv","page":"Validation","title":"sleepstudy.csv","text":"","category":"section"},{"location":"validation/#Model-1","page":"Validation","title":"Model 1","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(Reaction~Days), df;\n random = VarEffect(@covstr(1|Subject), SI),\n )\n fit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED Reaction BY Days\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=Days | SSTYPE(3)\n /METHOD=REML\n /RANDOM=INTERCEPT | SUBJECT(Subject) COVTYPE(ID).","category":"page"},{"location":"validation/#Model-2","page":"Validation","title":"Model 2","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(Reaction~1), df;\n random = VarEffect(Metida.@covstr(Days|Subject), CS),\n )\n fit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED Reaction BY Days\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=INTERCEPT | SSTYPE(3)\n /METHOD=REML\n /RANDOM=Days | SUBJECT(Subject) COVTYPE(CS).","category":"page"},{"location":"validation/#Model-3","page":"Validation","title":"Model 3","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(Reaction~1), df;\n random = VarEffect(@covstr(Days|Subject), CSH)\n )\n fit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED Reaction BY Days\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=INTERCEPT | SSTYPE(3)\n /METHOD=REML\n /RANDOM=Days | SUBJECT(Subject) COVTYPE(CSH).","category":"page"},{"location":"validation/#Model-4","page":"Validation","title":"Model 4","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(Reaction~1), df;\n random = VarEffect(@covstr(Days|Subject), ARH)\n )\n fit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED Reaction BY Days\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=INTERCEPT | SSTYPE(3)\n /METHOD=REML\n /RANDOM=Days | SUBJECT(Subject) COVTYPE(ARH1).","category":"page"},{"location":"validation/#pastes.csv","page":"Validation","title":"pastes.csv","text":"","category":"section"},{"location":"validation/#Model-5","page":"Validation","title":"Model 5","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(strength~1), df;\nrandom = [VarEffect(@covstr(1|batch), SI), VarEffect(@covstr(1|batch & cask), SI)]\n)\nfit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED strength\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=| SSTYPE(3)\n /METHOD=REML\n /RANDOM=INTERCEPT | SUBJECT(batch) COVTYPE(ID)\n /RANDOM=INTERCEPT | SUBJECT(cask * batch) COVTYPE(ID).","category":"page"},{"location":"validation/#Model-6","page":"Validation","title":"Model 6","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(strength~1), df;\nrandom = VarEffect(Metida.@covstr(cask|batch), ARMA),\n)\nfit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED strength by cask\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=| SSTYPE(3)\n /METHOD=REML\n /RANDOM=cask | SUBJECT(batch) COVTYPE(ARMA11).","category":"page"},{"location":"validation/#penicillin.csv","page":"Validation","title":"penicillin.csv","text":"","category":"section"},{"location":"validation/#Model-7","page":"Validation","title":"Model 7","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(diameter ~ 1), df;\nrandom = [VarEffect(@covstr(1|plate), SI), VarEffect(@covstr(1|sample), SI)]\n)\nfit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED diameter\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=| SSTYPE(3)\n /METHOD=REML\n /RANDOM=INTERCEPT | SUBJECT(plate) COVTYPE(ID)\n /RANDOM=INTERCEPT | SUBJECT(sample) COVTYPE(ID).","category":"page"},{"location":"validation/#RepeatedPulse.csv","page":"Validation","title":"RepeatedPulse.csv","text":"","category":"section"},{"location":"validation/#Model-8","page":"Validation","title":"Model 8","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"sort!(df, :Day)\nlmm = LMM(@formula(Pulse~1), df;\nrandom = VarEffect(Metida.@covstr(Time|Time), SI),\nrepeated = VarEffect(Metida.@covstr(Day|Time), AR),\n)\nfit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED Pulse BY Day Time\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=| SSTYPE(3)\n /METHOD=REML\n /RANDOM=Time | SUBJECT(Time) COVTYPE(ID)\n /REPEATED = Day | SUBJCET(Time) COVTYPE(AR1).","category":"page"},{"location":"validation/#Model-9","page":"Validation","title":"Model 9","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"sort!(df, :Day)\nlmm = LMM(@formula(Pulse~1), df;\nrepeated = VarEffect(Metida.@covstr(Day|Time), AR),\n)\n fit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED Pulse BY Day Time\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=| SSTYPE(3)\n /METHOD=REML\n /REPEATED = Day | SUBJCET(Time) COVTYPE(AR1).","category":"page"},{"location":"validation/#Model-10","page":"Validation","title":"Model 10","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"sort!(df, :Day)\nlmm = LMM(@formula(Pulse~1), df;\nrandom = VarEffect(Metida.@covstr(Day|Time), AR),\n)\n fit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED Pulse BY Day Time\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=| SSTYPE(3)\n /METHOD=REML\n /RANDOM=Day | SUBJECT(Time) COVTYPE(AR1).","category":"page"},{"location":"validation/#Section-2:-Parameters-validation-for-public-datasets-Metida-and-SPSS-and-MixedModels","page":"Validation","title":"Section 2: Parameters validation for public datasets Metida & SPSS & MixedModels","text":"","category":"section"},{"location":"validation/#Model-7-2","page":"Validation","title":"Model 7","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"Metida:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(diameter ~ 1), df;\nrandom = [VarEffect(@covstr(1|plate), SI), VarEffect(@covstr(1|sample), SI)]\n)\nfit!(lmm)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MixedModels:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"fm = @formula(diameter ~ 1 + (1|plate) + (1|sample))\nmm = fit(MixedModel, fm, df, REML=true)","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS:","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED diameter\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=| SSTYPE(3)\n /METHOD=REML\n /EMMEANS=TABLES(OVERALL)\n /RANDOM=INTERCEPT | SUBJECT(plate) COVTYPE(ID)\n /RANDOM=INTERCEPT | SUBJECT(sample) COVTYPE(ID).","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"Model Parameter Value Metida Value MM Value SPSS\n7 (Intercept) estimate 22.9722 22.9722 22.972\n7 (Intercept) SE 0.808573 0.808572 0.809\n7 plate σ² 0.716908 0.716908 0.716908\n7 sample σ² 3.73092 3.730901 3.730918\n7 Residual σ² 0.302415 0.302416 0.302415","category":"page"},{"location":"validation/#Section-3:-Validation-with-bioequivalence-datasets-with-Metida-and-SPSS","page":"Validation","title":"Section 3: Validation with bioequivalence datasets with Metida & SPSS","text":"","category":"section"},{"location":"validation/#Model-BE-B","page":"Validation","title":"Model BE-B","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(lnpk~sequence+period+treatment), dfrds;\nrandom = VarEffect(Metida.@covstr(1|subject), SI),\n)\nfit!(lmm)","category":"page"},{"location":"validation/#Model-BE-C","page":"Validation","title":"Model BE-C","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"lmm = LMM(@formula(lnpk~sequence+period+treatment), dfrds;\n random = VarEffect(Metida.@covstr(treatment|subject), CSH),\n repeated = VarEffect(Metida.@covstr(treatment|subject), DIAG),\n )\n fit!(lmm)","category":"page"},{"location":"validation/#Typical-SPSS-code","page":"Validation","title":"Typical SPSS code","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"MIXED lnpk BY period sequence treatment subject\n /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)\n SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)\n /FIXED=period sequence treatment | SSTYPE(3)\n /METHOD=REML\n /RANDOM= subject(sequence) | COVTYPE(ID)\n /EMMEANS=TABLES(treatment) COMPARE REFCAT(FIRST) ADJ(LSD).\n\nMIXED lnpk BY period treatment sequence subject\n /CRITERIA=CIN(90) MXITER(200) MXSTEP(20) SCORING(2) SINGULAR(0.000000000001) HCONVERGE(0,\n RELATIVE) LCONVERGE(0.0000000000001, RELATIVE) PCONVERGE(0, RELATIVE)\n /FIXED=period treatment sequence | SSTYPE(3)\n /METHOD=REML\n /RANDOM=treatment | SUBJECT(subject) COVTYPE(CSH)\n /REPEATED=treatment | SUBJECT(subject*period) COVTYPE(DIAG)\n /EMMEANS=TABLES(treatment) COMPARE REFCAT(FIRST) ADJ(LSD).","category":"page"},{"location":"validation/#Results","page":"Validation","title":"Results","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"using Metida; # hide\ninclude(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"validation_init.jl\")); # hide\ninclude(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"validation_s3.jl\"))","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"Full SPSS code provided in validation folder (here).","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"SPSS output in DOCX format.","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"Validation dataset available here, 122482020427MOESM2ESM.xls.","category":"page"},{"location":"validation/#Validation-report","page":"Validation","title":"Validation report","text":"","category":"section"},{"location":"validation/","page":"Validation","title":"Validation","text":"Validation and report can be done on local machine with Weave.jl and Pandoc.","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"using Weave, Metida\nweave(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"validation_report.jmd\");\ndoctype = \"pandoc2pdf\",\nout_path = :pwd,\npandoc_options=[\"--toc\", \"-V colorlinks=true\" , \"-V linkcolor=blue\", \"-V urlcolor=red\", \"-V toccolor=gray\"])","category":"page"},{"location":"validation/","page":"Validation","title":"Validation","text":"Report will be saved in Julia working directory. For your own purpose you can edit validation_report.jmd template.","category":"page"},{"location":"ref/#Citation-and-Reference","page":"Citation & Reference","title":"Citation & Reference","text":"","category":"section"},{"location":"ref/#Sweep-algorithm","page":"Citation & Reference","title":"Sweep algorithm","text":"","category":"section"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"Sweep based on SweepOperator.jl. Thanks to @joshday and @Hua-Zhou.\nhttp://hua-zhou.github.io/teaching/biostatm280-2019spring/slides/12-sweep/sweep.html","category":"page"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"More:","category":"page"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"Section 7.4-7.6 of Numerical Analysis for Statisticians by Kenneth Lange (2010).\nThe paper A tutorial on the SWEEP operator by James H. Goodnight (1979).","category":"page"},{"location":"ref/#REML-and-Parameter-estimation","page":"Citation & Reference","title":"REML & Parameter estimation","text":"","category":"section"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"Henderson, C. R., et al. “The Estimation of Environmental and Genetic Trends from Records Subject to Culling.” Biometrics, vol. 15, no. 2, 1959, pp. 192–218. JSTOR, www.jstor.org/stable/2527669.\nLaird, Nan M., and James H. Ware. “Random-Effects Models for Longitudinal Data.” Biometrics, vol. 38, no. 4, 1982, pp. 963–974. JSTOR, www.jstor.org/stable/2529876.\nLindstrom & J.; Bates, M. (1988). Newton—Raphson and EM Algorithms for Linear Mixed-Effects Models for Repeated-Measures Data. Journal of the American Statistical Association. 83. 1014. 10.1080/01621459.1988.10478693.\nGurka, Matthew. (2006). Selecting the Best Linear Mixed Model under REML. The American Statistician. 60. 19-26. 10.1198/000313006X90396.\nSang Hong Lee, Julius H.J. van der Werf. An efficient variance component approach implementing an average information REML suitable for combined LD and linkage mapping with a general complex pedigree. Genetics Selection Evolution, BioMed Central, 2006, 38 (1), pp.25-43. ⟨hal-00894558⟩\nF.N. Gumedze, T.T. Dunne, Parameter estimation and inference in the linear mixed model, Linear Algebra and its Applications, Volume 435, Issue 8, 2011, Pages 1920-1944, ISSN 0024-3795, https://doi.org/10.1016/j.laa.2011.04.015. (http://www.sciencedirect.com/science/article/pii/S002437951100320X)","category":"page"},{"location":"ref/#AI-algorithm","page":"Citation & Reference","title":"AI algorithm","text":"","category":"section"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"D.L. Johnson, R. Thompson, Restricted Maximum Likelihood Estimation of Variance Components for Univariate Animal Models Using Sparse Matrix Techniques and Average Information, Journal of Dairy Science, Volume 78, Issue 2, 1995, Pages 449-456, ISSN 0022-0302, https://doi.org/10.3168/jds.S0022-0302(95)76654-1. (http://www.sciencedirect.com/science/article/pii/S0022030295766541)\nMishchenko, Kateryna & Holmgren, Sverker & Rönnegård, Lars. (2007). Newton-type Methods for REML Estimation in Genetic Analysis of Quantitative Traits. Journal of Computational Methods in Science and Engineering. 8. 10.3233/JCM-2008-81-203.\nMatilainen K, Mäntysaari EA, Lidauer MH, Strandén I, Thompson R. Employing a Monte Carlo algorithm in Newton-type methods for restricted maximum likelihood estimation of genetic parameters. PLoS One. 2013;8(12):e80821. Published 2013 Dec 10. doi:10.1371/journal.pone.0080821","category":"page"},{"location":"ref/#Covariance-structures","page":"Citation & Reference","title":"Covariance structures","text":"","category":"section"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"Wolfinger, Russ. (1993). Covariance structure selection in general mixed models. Communications in Statistics-simulation and Computation - COMMUN STATIST-SIMULAT COMPUT. 22. 1079-1106. 10.1080/03610919308813143.\nWolfinger, Russ. (1996). Heterogeneous Variance: Covariance Structures for Repeated Measures. Journal of Agricultural, Biological, and Environmental Statistics. 1. 205. 10.2307/1400366. \nLittell, Ramon & Pendergast, Jane & Natarajan, Ranjini. (2000). Modelling covariance structure in the analysis of repeated measures data. Statistics in Medicine. 19. 1793-1819. 10.1002/1097-0258(20000715)19:13%3C1793::AID-SIM482%3E3.0.CO;2-Q.\nQUINTAL, SILVANA SILVA RED, VIANA, ALEXANDRE PIO, CAMPOS, BIANCA MACHADO, VIVAS, MARCELO, & AMARAL JÚNIOR, ANTONIO TEIXEIRA DO. (2017). ANALYSIS OF STRUCTURES OF COVARIANCE AND REPEATABILITY IN GUAVA SEGREGANTING POPULATION. Revista Caatinga, 30(4), 885-891. https://doi.org/10.1590/1983-21252017v30n408rc\nMcNeish, D., Harring, J. Covariance pattern mixture models: Eliminating random effects to improve convergence and performance. Behav Res 52, 947–979 (2020). https://doi.org/10.3758/s13428-019-01292-4","category":"page"},{"location":"ref/#And-more","page":"Citation & Reference","title":"And more","text":"","category":"section"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"Giesbrecht, F. G., and Burns, J. C. (1985), \"Two-Stage Analysis Based on a Mixed Model: Large-sample Asymptotic Theory and Small-Sample Simulation Results,\" Biometrics, 41, 853-862.\nJennrich, R., & Schluchter, M. (1986). Unbalanced Repeated-Measures Models with Structured Covariance Matrices. Biometrics, 42(4), 805-820. doi:10.2307/2530695\nFletcher, Roger (1987), Practical methods of optimization (2nd ed.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8\nWolfinger et al., (1994) Computing gaussian likelihoods and their derivatives for general linear mixed models doi: 10.1137/0915079\nHrong-Tai Fai & Cornelius (1996) Approximate F-tests of multiple degree of freedom hypotheses in generalized least squares analyses of unbalanced split-plot experiments, Journal of Statistical Computation and Simulation, 54:4, 363-378, DOI: 10.1080/00949659608811740\nSchaalje GB, McBride JB, Fellingham GW. Adequacy of approximations to distributions of test statistics in complex mixed linear models. J Agric Biol Environ Stat. 2002;7:512–24.\nWright, Stephen, and Jorge Nocedal (2006) \"Numerical optimization.\" Springer\nVan Peer, A. (2010), Variability and Impact on Design of Bioequivalence Studies. Basic & Clinical Pharmacology & Toxicology, 106: 146-153. doi:10.1111/j.1742-7843.2009.00485.x","category":"page"},{"location":"ref/#Julia-packages","page":"Citation & Reference","title":"Julia packages","text":"","category":"section"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"Revels, Jarrett & Lubin, Miles & Papamarkou, Theodore. (2016). Forward-Mode Automatic Differentiation in Julia.\nMogensen et al., (2018). Optim: A mathematical optimization package for Julia. Journal of Open Source Software, 3(24), 615,doi: 10.21105/joss.00615","category":"page"},{"location":"ref/#CuSolver-and-CuBLAS","page":"Citation & Reference","title":"CuSolver & CuBLAS","text":"","category":"section"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"https://docs.nvidia.com/cuda/cusolver/index.html\nhttps://docs.nvidia.com/cuda/cublas/index.htm","category":"page"},{"location":"ref/#Reference-dataset","page":"Citation & Reference","title":"Reference dataset","text":"","category":"section"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"Bioequivalence reference datasets: Schütz, H., Labes, D., Tomashevskiy, M. et al. Reference Datasets for Studies in a Replicate Design Intended for Average Bioequivalence with Expanding Limits. AAPS J 22, 44 (2020). https://doi.org/10.1208/s12248-020-0427-6\nsleepstudy.csv: Gregory Belenky, Nancy J. Wesensten, David R. Thorne, Maria L. Thomas, Helen C. Sing, Daniel P. Redmond, Michael B. Russo and Thomas J. Balkin (2003) Patterns of performance degradation and restoration during sleep restriction and subsequent recovery: a sleep dose-response study. Journal of Sleep Research 12, 1–12.\nPenicillin.csv: O.L. Davies and P.L. Goldsmith (eds), Statistical Methods in Research and Production, 4th ed., Oliver and Boyd, (1972), section 6.6\nPastes.csv: O.L. Davies and P.L. Goldsmith (eds), Statistical Methods in Research and Production, 4th ed., Oliver and Boyd, (1972), section 6.5\nChickWeight.csv:\nCrowder, M. and Hand, D. (1990), Analysis of Repeated Measures, Chapman and Hall (example 5.3)\nHand, D. and Crowder, M. (1996), Practical Longitudinal Data Analysis, Chapman and Hall (table A.2)\nPinheiro, J. C. and Bates, D. M. (2000) Mixed-effects Models in S and S-PLUS, Springer.\nRepeatedPulse.csv: Data supplied by a student at Oberlin College.","category":"page"},{"location":"ref/","page":"Citation & Reference","title":"Citation & Reference","text":"See also: https://vincentarelbundock.github.io/Rdatasets/datasets.html","category":"page"},{"location":"bench/#Benchmark","page":"Benchmark","title":"Benchmark","text":"","category":"section"},{"location":"bench/#System","page":"Benchmark","title":"System","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"CPU: Ryzen 5950x\nRAM: 64Gb 3200\nGTX 1070Ti","category":"page"},{"location":"bench/#Data","page":"Benchmark","title":"Data","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"using Metida, CSV, DataFrames, MixedModels, BenchmarkTools;\n\nrds = CSV.File(joinpath(dirname(pathof(Metida)), \"..\", \"test\", \"csv\", \"1fptime.csv\"); types = [String, String, Float64, Float64]) |> DataFrame","category":"page"},{"location":"bench/#MixedModels","page":"Benchmark","title":"MixedModels","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"fm = @formula(response ~ 1 + factor*time + (1 + time|subject&factor))\n@benchmark mm = fit($MixedModel, $fm, $rds, REML=true) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 10000 samples with 1 evaluation.\n Range (min … max): 1.140 ms … 10.909 ms ┊ GC (min … max): 0.00% … 86.12%\n Time (median): 1.175 ms ┊ GC (median): 0.00%\n Time (mean ± σ): 1.215 ms ± 563.839 μs ┊ GC (mean ± σ): 2.78% ± 5.31%\n\n ▄██▆▃▁ \n ▁▁▁▂▂▃▅▇██████▇▅▄▃▃▂▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▂\n 1.14 ms Histogram: frequency by time 1.33 ms <\n\n Memory estimate: 409.52 KiB, allocs estimate: 6130.","category":"page"},{"location":"bench/#Metida","page":"Benchmark","title":"Metida","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"lmm = LMM(@formula(response ~1 + factor*time), rds;\nrandom = VarEffect(@covstr(1 + time|subject&factor), CSH),\n)\n@benchmark fit!($lmm, hes = false) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"Metida v0.12.0","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 1316 samples with 1 evaluation.\n Range (min … max): 5.394 ms … 186.301 ms ┊ GC (min … max): 0.00% … 95.48%\n Time (median): 7.648 ms ┊ GC (median): 0.00%\n Time (mean ± σ): 11.391 ms ± 19.135 ms ┊ GC (mean ± σ): 32.70% ± 17.73%\n\n ██▆\n ███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▄▁▆▅▄▄▅▄▅▄▄▆▄▆▄▄▄ █\n 5.39 ms Histogram: log(frequency) by time 112 ms <\n\n Memory estimate: 22.63 MiB, allocs estimate: 37224.","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaNLopt v0.4.0 (Metida 0.12.0)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :nlopt, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 274 samples with 1 evaluation.\n Range (min … max): 47.312 ms … 153.284 ms ┊ GC (min … max): 0.00% … 67.58%\n Time (median): 49.064 ms ┊ GC (median): 0.00%\n Time (mean ± σ): 54.854 ms ± 19.559 ms ┊ GC (mean ± σ): 10.55% ± 15.98%\n\n ▅█ \n ███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆▅▁▁▄▁▁▄▁▄▁▁▄▄▅▁▁▁▁▁▁▁▁▁▁▁▄▁▄▄▁▅▄▁▅▄▄ ▅\n 47.3 ms Histogram: log(frequency) by time 135 ms <\n\n Memory estimate: 35.45 MiB, allocs estimate: 301141.","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaCu v0.4.0 (Metida 0.4)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 42 samples with 1 evaluation.\n Range (min … max): 347.642 ms … 461.104 ms ┊ GC (min … max): 0.00% … 4.12%\n Time (median): 350.603 ms ┊ GC (median): 0.00%\n Time (mean ± σ): 358.874 ms ± 23.939 ms ┊ GC (mean ± σ): 0.27% ± 0.98%\n\n ▁█ \n ███▁▃▁▁▁▁▁▁▁▁▅▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▃ ▁\n 348 ms Histogram: frequency by time 461 ms <\n\n Memory estimate: 6.86 MiB, allocs estimate: 115020.","category":"page"},{"location":"bench/#Cancer-data:","page":"Benchmark","title":"Cancer data:","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"File: hdp.csv , 8525 observations.","category":"page"},{"location":"bench/#Model-1:-maximum-377-observation-per-subject-(35-subjects)","page":"Benchmark","title":"Model 1: maximum 377 observation-per-subject (35 subjects)","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"lmm = Metida.LMM(@formula(tumorsize ~ 1 + CancerStage), hdp;\nrandom = Metida.VarEffect(Metida.@covstr(1|HID), Metida.DIAG),\n)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"Metida v0.12.0","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark Metida.fit!(lmm, hes = false)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 1 sample with 1 evaluation.\n Single result which took 6.519 s (1.38% GC) to evaluate,\n with a memory estimate of 2.33 GiB, over 41654 allocations.","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaNLopt v0.4.0 (Metida v0.12.0)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :nlopt, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 25 samples with 1 evaluation.\n Range (min … max): 555.136 ms … 700.605 ms ┊ GC (min … max): 0.00% … 16.09%\n Time (median): 605.713 ms ┊ GC (median): 7.98%\n Time (mean ± σ): 608.768 ms ± 27.220 ms ┊ GC (mean ± σ): 7.62% ± 3.82%\n\n █ ▂\n ▅▁▁▅▁▁▁▁▁▅▁▁▁▁▁▅▁▅█▅▅▅▅█▅▁▁▅▅▁▅█▁▁▅▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▅ ▁\n 555 ms Histogram: frequency by time 701 ms <\n\n Memory estimate: 921.54 MiB, allocs estimate: 62203.","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaCu v0.4.0 (Metida 0.12.0)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 5 samples with 1 evaluation.\n Range (min … max): 3.482 s … 3.650 s ┊ GC (min … max): 0.00% … 2.73%\n Time (median): 3.496 s ┊ GC (median): 0.00%\n Time (mean ± σ): 3.547 s ± 77.924 ms ┊ GC (mean ± σ): 1.07% ± 1.43%\n\n ▁ █ ▁ ▁\n █▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁█ ▁\n 3.48 s Histogram: frequency by time 3.65 s <\n\n Memory estimate: 913.96 MiB, allocs estimate: 410438.","category":"page"},{"location":"bench/#Model-2:-maximum-875-observation-per-subject-(20-subjects)","page":"Benchmark","title":"Model 2: maximum 875 observation-per-subject (20 subjects)","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"lmm = Metida.LMM(@formula(tumorsize ~ 1 + CancerStage), hdp;\nrandom = Metida.VarEffect(Metida.@covstr(1|Experience), Metida.SI),\n)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaNLopt v0.2.0 (Metida 0.5.1)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :nlopt, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 1","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 9 samples with 1 evaluation.\n Range (min … max): 1.651 s … 1.952 s ┊ GC (min … max): 3.10% … 4.27%\n Time (median): 1.797 s ┊ GC (median): 4.15%\n Time (mean ± σ): 1.815 s ± 101.277 ms ┊ GC (mean ± σ): 3.83% ± 0.82%\n\n ▁ ▁ ▁ ▁ ▁ ▁ ▁ █\n █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁█▁█▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁█▁█▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁\n 1.65 s Histogram: frequency by time 1.95 s <\n\n Memory estimate: 2.47 GiB, allocs estimate: 57729.","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaCu v0.2.0 (Metida 0.5.1)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 3 samples with 1 evaluation.\n Range (min … max): 5.137 s … 5.216 s ┊ GC (min … max): 1.03% … 2.19%\n Time (median): 5.166 s ┊ GC (median): 1.43%\n Time (mean ± σ): 5.173 s ± 39.699 ms ┊ GC (mean ± σ): 1.55% ± 0.59%\n\n █ █ █\n █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁\n 5.14 s Histogram: frequency by time 5.22 s <\n\n Memory estimate: 2.46 GiB, allocs estimate: 372716.","category":"page"},{"location":"bench/#Model-3:-maximum-1437-observation-per-subject-(10-subjects)","page":"Benchmark","title":"Model 3: maximum 1437 observation-per-subject (10 subjects)","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"lmm = Metida.LMM(@formula(tumorsize ~ 1 + CancerStage), hdp;\nrandom = Metida.VarEffect(Metida.@covstr(1|ntumors), Metida.SI),\n)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaNLopt v0.4.0 (Metida 0.12.0)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :nlopt, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 4 samples with 1 evaluation.\n Range (min … max): 4.305 s … 4.476 s ┊ GC (min … max): 2.49% … 3.52%\n Time (median): 4.372 s ┊ GC (median): 3.23%\n Time (mean ± σ): 4.381 s ± 80.689 ms ┊ GC (mean ± σ): 3.12% ± 0.47%\n\n █ █ █ █\n █▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁\n 4.3 s Histogram: frequency by time 4.48 s <\n\n Memory estimate: 3.83 GiB, allocs estimate: 28068.","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaCu v0.4.0 (Metida 0.12.0)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"BenchmarkTools.Trial: 4 samples with 1 evaluation.\n Range (min … max): 4.928 s … 4.970 s ┊ GC (min … max): 1.83% … 1.78%\n Time (median): 4.957 s ┊ GC (median): 1.85%\n Time (mean ± σ): 4.953 s ± 18.996 ms ┊ GC (mean ± σ): 1.90% ± 0.15%\n\n █ █ █ █\n █▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁█ ▁\n 4.93 s Histogram: frequency by time 4.97 s <\n\n Memory estimate: 3.39 GiB, allocs estimate: 149182.","category":"page"},{"location":"bench/#Model-4:-maximum-3409-observation-per-subject-(4-subjects)","page":"Benchmark","title":"Model 4: maximum 3409 observation-per-subject (4 subjects)","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MetidaCu v0.4.0 (Metida 0.12.0)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"lmm = Metida.LMM(@formula(tumorsize ~ 1 + CancerStage), hdp;\nrandom = Metida.VarEffect(Metida.@covstr(1|CancerStage), Metida.SI),\n)","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"@benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15","category":"page"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"julia> @benchmark fit!($lmm, solver = :cuda, hes = false, f_tol=1e-8, x_tol=1e-8) seconds = 15\nBenchmarkTools.Trial: 3 samples with 1 evaluation.\n Range (min … max): 7.343 s … 7.372 s ┊ GC (min … max): 1.62% … 1.48%\n Time (median): 7.346 s ┊ GC (median): 1.49%\n Time (mean ± σ): 7.354 s ± 15.657 ms ┊ GC (mean ± σ): 1.50% ± 0.11%\n\n █ █ █\n █▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁\n 7.34 s Histogram: frequency by time 7.37 s <\n\n Memory estimate: 5.04 GiB, allocs estimate: 46549.","category":"page"},{"location":"bench/#Conclusion","page":"Benchmark","title":"Conclusion","text":"","category":"section"},{"location":"bench/","page":"Benchmark","title":"Benchmark","text":"MixedModels.jl faster than Metida.jl in similar cases, but Metida.jl can be used with different covariance structures for random and repeated effects. MetidaNLopt have better performance but not estimate Hessian matrix of REML. MetidaCu have advantage only for big observation-pes-subject number.","category":"page"},{"location":"#Metida","page":"Home","title":"Metida","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = Metida","category":"page"},{"location":"#Mixed-Models","page":"Home","title":"Mixed Models","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Multilevel models (also known as hierarchical linear models, linear mixed-effect model, mixed models, nested data models, random coefficient, random-effects models, random parameter models, or split-plot designs) are statistical models of parameters that vary at more than one level. An example could be a model of student performance that contains measures for individual students as well as measures for classrooms within which the students are grouped. These models can be seen as generalizations of linear models (in particular, linear regression), although they can also extend to non-linear models. These models became much more popular after sufficient computing power and software became available. (Wiki)","category":"page"},{"location":"","page":"Home","title":"Home","text":"Metida.jl is a Julia package for fitting mixed-effects models with flexible covariance structure.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Implemented covariance structures:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Scaled Identity (SI)\nDiagonal (DIAG)\nAutoregressive (AR)\nHeterogeneous Autoregressive (ARH)\nCompound Symmetry (CS)\nHeterogeneous Compound Symmetry (CSH)\nAutoregressive Moving Average (ARMA)\nToeplitz (TOEP)\nToeplitz Parameterized (TOEPP)\nHeterogeneous Toeplitz (TOEPH)\nHeterogeneous Toeplitz Parameterized (TOEPHP)\nSpatial Exponential (SPEXP)\nSpatial Power (SPPOW)\nSpatial Gaussian (SPGAU)\nUnstructured (UN) \nCustom Covariance Type","category":"page"},{"location":"#Limitations","page":"Home","title":"Limitations","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Maximum length of block more than ~400 (observation-per-subject).\nObservation number more than 160 000.\nFor MetidaCu number of blocks more than 40 (maximum length of block more than 4000).","category":"page"},{"location":"","page":"Home","title":"Home","text":"Actually Metida can fit datasets with wore than 160k observation and 40k subjects levels on PC with 64 GB RAM. This is not \"hard-coded\" limitation, but depends on your model and data structure. Fitting of big datasets can take a lot of time. Optimal dataset size is less than 100k observations with maximum length of block less than 400.","category":"page"},{"location":"#Contents","page":"Home","title":"Contents","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Pages = [\n \"details.md\",\n \"examples.md\",\n \"validation.md\",\n \"api.md\"]\nDepth = 3","category":"page"},{"location":"","page":"Home","title":"Home","text":"See also:","category":"page"},{"location":"","page":"Home","title":"Home","text":"MixedModels.jl\nGLM.jl\nSweepOperator.jl","category":"page"},{"location":"#Reference","page":"Home","title":"Reference","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Gelman, A.; Hill, J. (2007). Data Analysis Using Regression and Multilevel/Hierarchical Models. New York: Cambridge University Press. pp. 235–299. ISBN 978-0-521-68689-1.","category":"page"}] +} diff --git a/previews/PR40/siteinfo.js b/previews/PR40/siteinfo.js new file mode 100644 index 00000000..46530e3e --- /dev/null +++ b/previews/PR40/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR40"; diff --git a/previews/PR40/validation/index.html b/previews/PR40/validation/index.html new file mode 100644 index 00000000..bf2463ea --- /dev/null +++ b/previews/PR40/validation/index.html @@ -0,0 +1,276 @@ + +Validation · Metida.jl

Validation

Validation provided with 3 sections:

  • REML validation for public datasets with Metida & SPSS
  • Parameters validation for public datasets Metida & SPSS & MixedModels
  • Validation with bioequivalence datasets with Metida & SPSS

To run validation:

using Metida; include(joinpath(dirname(pathof(Metida)), "..", "test", "validation.jl"))

Section 1: REML validation for public datasets Metida & SPSS

REML result table

ModelDataSetUsed cov. typesREML MetidaREML SPSS
1sleepstudy.csvSI/SI1729.49256023670251729.492560
2sleepstudy.csvCS/SI1904.32651707221321904.327
3sleepstudy.csvCSH/SI1772.09532519970461772.095
4sleepstudy.csvARH/SI1730.18954273983221730.189543
5Pastes.csvSI,SI/SI246.99074585348623246.990746
6Pastes.csvARMA/SI246.81895071012508246.818951
7Penicillin.csvSI,SI/SI330.86058899109184330.860589
8RepeatedPulse.csvSI/AR453.3395435627574453.339544
9RepeatedPulse.csv0/AR471.85107712169827471.851077
10RepeatedPulse.csvAR/SI453.3395560121246453.339555

sleepstudy.csv

Model 1
lmm = LMM(@formula(Reaction~Days), df;
+  random = VarEffect(@covstr(1|Subject), SI),
+  )
+  fit!(lmm)

SPSS:

MIXED Reaction BY Days
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=Days | SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=INTERCEPT | SUBJECT(Subject) COVTYPE(ID).
Model 2
lmm = LMM(@formula(Reaction~1), df;
+  random = VarEffect(Metida.@covstr(Days|Subject), CS),
+  )
+  fit!(lmm)

SPSS:

MIXED Reaction BY Days
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=INTERCEPT | SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=Days | SUBJECT(Subject) COVTYPE(CS).
Model 3
lmm = LMM(@formula(Reaction~1), df;
+  random = VarEffect(@covstr(Days|Subject), CSH)
+  )
+  fit!(lmm)

SPSS:

MIXED Reaction BY Days
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=INTERCEPT | SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=Days | SUBJECT(Subject) COVTYPE(CSH).
Model 4
lmm = LMM(@formula(Reaction~1), df;
+  random = VarEffect(@covstr(Days|Subject), ARH)
+  )
+   fit!(lmm)

SPSS:

MIXED Reaction BY Days
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=INTERCEPT | SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=Days | SUBJECT(Subject) COVTYPE(ARH1).

pastes.csv

Model 5
lmm =  LMM(@formula(strength~1), df;
+random = [VarEffect(@covstr(1|batch), SI),  VarEffect(@covstr(1|batch & cask), SI)]
+)
+fit!(lmm)

SPSS:

MIXED strength
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=| SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=INTERCEPT | SUBJECT(batch) COVTYPE(ID)
+  /RANDOM=INTERCEPT | SUBJECT(cask * batch) COVTYPE(ID).
Model 6
lmm =  LMM(@formula(strength~1), df;
+random = VarEffect(Metida.@covstr(cask|batch),  ARMA),
+)
+fit!(lmm)

SPSS:

MIXED strength by cask
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=| SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=cask | SUBJECT(batch) COVTYPE(ARMA11).

penicillin.csv

Model 7
lmm =  LMM(@formula(diameter ~ 1), df;
+random = [VarEffect(@covstr(1|plate), SI), VarEffect(@covstr(1|sample), SI)]
+)
+fit!(lmm)

SPSS:

MIXED diameter
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=| SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=INTERCEPT | SUBJECT(plate) COVTYPE(ID)
+  /RANDOM=INTERCEPT | SUBJECT(sample) COVTYPE(ID).

RepeatedPulse.csv

Model 8
sort!(df, :Day)
+lmm =  LMM(@formula(Pulse~1), df;
+random =  VarEffect(Metida.@covstr(Time|Time),  SI),
+repeated =  VarEffect(Metida.@covstr(Day|Time),  AR),
+)
+fit!(lmm)

SPSS:

MIXED Pulse BY Day Time
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=| SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=Time | SUBJECT(Time) COVTYPE(ID)
+  /REPEATED = Day | SUBJCET(Time) COVTYPE(AR1).
Model 9
sort!(df, :Day)
+lmm =  LMM(@formula(Pulse~1), df;
+repeated = VarEffect(Metida.@covstr(Day|Time),  AR),
+)
+ fit!(lmm)

SPSS:

MIXED Pulse BY Day Time
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=| SSTYPE(3)
+  /METHOD=REML
+  /REPEATED = Day | SUBJCET(Time) COVTYPE(AR1).
Model 10
sort!(df, :Day)
+lmm =  LMM(@formula(Pulse~1), df;
+random =  VarEffect(Metida.@covstr(Day|Time),  AR),
+)
+ fit!(lmm)

SPSS:

MIXED Pulse BY Day Time
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=| SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=Day | SUBJECT(Time) COVTYPE(AR1).

Section 2: Parameters validation for public datasets Metida & SPSS & MixedModels

Model 7

Metida:

lmm = LMM(@formula(diameter ~ 1), df;
+random = [VarEffect(@covstr(1|plate), SI), VarEffect(@covstr(1|sample), SI)]
+)
+fit!(lmm)

MixedModels:

fm = @formula(diameter ~ 1 + (1|plate) + (1|sample))
+mm  = fit(MixedModel, fm, df, REML=true)

SPSS:

MIXED diameter
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=| SSTYPE(3)
+  /METHOD=REML
+  /EMMEANS=TABLES(OVERALL)
+  /RANDOM=INTERCEPT | SUBJECT(plate) COVTYPE(ID)
+  /RANDOM=INTERCEPT | SUBJECT(sample) COVTYPE(ID).
ModelParameterValue MetidaValue MMValue SPSS
7(Intercept) estimate22.972222.972222.972
7(Intercept) SE0.8085730.8085720.809
7plate σ²0.7169080.7169080.716908
7sample σ²3.730923.7309013.730918
7Residual σ²0.3024150.3024160.302415

Section 3: Validation with bioequivalence datasets with Metida & SPSS

Model BE-B

lmm =  LMM(@formula(lnpk~sequence+period+treatment), dfrds;
+random =  VarEffect(Metida.@covstr(1|subject),  SI),
+)
+fit!(lmm)

Model BE-C

lmm =  LMM(@formula(lnpk~sequence+period+treatment), dfrds;
+    random =  VarEffect(Metida.@covstr(treatment|subject),  CSH),
+    repeated =  VarEffect(Metida.@covstr(treatment|subject),  DIAG),
+    )
+     fit!(lmm)

Typical SPSS code

MIXED lnpk BY period sequence treatment subject
+  /CRITERIA=DFMETHOD(SATTERTHWAITE) CIN(95) MXITER(100) MXSTEP(10) SCORING(1)
+    SINGULAR(0.000000000001) HCONVERGE(0, ABSOLUTE) LCONVERGE(0, ABSOLUTE) PCONVERGE(0.000001, ABSOLUTE)
+  /FIXED=period sequence treatment | SSTYPE(3)
+  /METHOD=REML
+  /RANDOM= subject(sequence) | COVTYPE(ID)
+  /EMMEANS=TABLES(treatment) COMPARE REFCAT(FIRST) ADJ(LSD).
+
+MIXED lnpk BY period treatment sequence subject
+  /CRITERIA=CIN(90) MXITER(200) MXSTEP(20) SCORING(2) SINGULAR(0.000000000001) HCONVERGE(0,
+    RELATIVE) LCONVERGE(0.0000000000001, RELATIVE) PCONVERGE(0, RELATIVE)
+  /FIXED=period treatment sequence | SSTYPE(3)
+  /METHOD=REML
+  /RANDOM=treatment | SUBJECT(subject) COVTYPE(CSH)
+  /REPEATED=treatment | SUBJECT(subject*period) COVTYPE(DIAG)
+  /EMMEANS=TABLES(treatment) COMPARE REFCAT(FIRST) ADJ(LSD).

Results

include(joinpath(dirname(pathof(Metida)), "..", "test", "validation_s3.jl"))
Test Summary:                                               | Pass  Total  Time
+  RDS Test                                                  |  120    120  7.7s
+
+Bioequivalence Reference Datasets - REML - type B
+.-----.----------.----------.-------------.
+| RDS |   Metida |    SPSS  |        DIFF |
+|  N  |   REML B |   REML B |             |
+:-----+----------+----------+-------------:
+|   1 |  536.201 |  536.201 |          OK |
+|   2 | -28.5882 | -28.5882 |          OK |
+|   3 |  436.512 |  436.512 |          OK |
+|   4 |  316.051 |  316.051 |          OK |
+|   5 | -74.5417 | -74.5417 |          OK |
+|   6 |  536.201 |  536.201 |          OK |
+|   7 |  1388.54 |  1388.54 |          OK |
+|   8 |  2345.96 |  2345.96 |          OK |
+|   9 |  2985.72 |  2985.72 |          OK |
+|  10 | -15.8938 | -15.8938 |          OK |
+|  11 |  253.051 |  253.051 |          OK |
+|  12 |  1143.36 |  1143.36 |          OK |
+|  13 |   2090.1 |   2090.1 |          OK |
+|  14 |  1050.31 |  1050.31 |          OK |
+|  15 |   2090.1 |   2090.1 |          OK |
+|  16 |  326.536 |  326.536 |          OK |
+|  17 |  78.8447 |  78.8447 |          OK |
+|  18 |  937.986 |  937.986 |          OK |
+|  19 |  815.225 |  815.225 |          OK |
+|  20 |  827.985 |  827.985 |          OK |
+|  21 |  474.088 |  474.088 |          OK |
+|  22 |  249.254 |  249.254 |          OK |
+|  23 |  129.163 |  129.163 |          OK |
+|  24 |  283.595 |  283.595 |          OK |
+|  25 |  678.745 |  678.745 |          OK |
+|  26 |  435.445 |  435.445 |          OK |
+|  27 |  1125.08 |  1125.09 | -0.00895071 |
+|  28 |  331.808 |  331.808 |          OK |
+|  29 |  45.3049 |  45.3049 |          OK |
+|  30 |   32.418 |   32.418 |          OK |
+'-----'----------'----------'-------------'
+
+Bioequivalence Reference Datasets - REML - type C
+.-----.----------.----------.-------------.-------.
+| RDS |   Metida |    SPSS  |        DIFF | Comm. |
+|  N  |   REML C |   REML C |             |       |
+:-----+----------+----------+-------------+-------:
+|   1 |  530.145 |  530.145 |          OK |     * |
+|   2 | -30.6746 | -30.6746 |  6.15692e-6 |    ** |
+|   3 |  425.447 |  425.447 |          OK |     * |
+|   4 |  314.222 |  314.222 |          OK |       |
+|   5 |   -74.88 |   -74.88 |          OK |    ** |
+|   6 |  530.145 |  530.145 |          OK |     * |
+|   7 |  1387.09 |  1387.09 |          OK |    ** |
+|   8 |   2342.6 |   2342.6 |          OK |       |
+|   9 |  2983.26 |  2983.26 |          OK |       |
+|  10 | -16.4173 | -16.4173 |          OK |    ** |
+|  11 |  250.945 |  250.945 |          OK |       |
+|  12 |  1140.38 |  1140.38 |          OK |       |
+|  13 |  2087.48 |  2087.48 |          OK |     * |
+|  14 |  1012.35 |  1012.35 |          OK |       |
+|  15 |  2087.48 |  2087.48 |          OK |     * |
+|  16 |  323.998 |  323.998 |          OK |     * |
+|  17 |   77.569 |   77.569 |          OK |       |
+|  18 |  904.874 |  904.874 |          OK |       |
+|  19 |   782.94 |   782.94 |          OK |       |
+|  20 |  796.312 |  796.312 |          OK |       |
+|  21 |  470.591 |  470.591 |          OK |       |
+|  22 |   248.99 |   248.99 |          OK |    ** |
+|  23 |  119.806 |  119.806 |          OK |       |
+|  24 |  274.306 |  274.306 |          OK |     * |
+|  25 |  660.047 |  660.047 |          OK |     * |
+|  26 |  433.841 |  433.841 |          OK |       |
+|  27 |  1123.66 |  1123.66 | -0.00870748 |       |
+|  28 |  329.257 |  329.257 |          OK |       |
+|  29 |  26.9661 |  26.9661 |          OK |       |
+|  30 |  26.3165 |   14.944 |     11.3725 |    ** |
+'-----'----------'----------'-------------'-------'
+
+*  - The final Hessian matrix is not positive definite although all convergence criteria
+are satisfied. The MIXED procedure continues despite this warning. Validity of subsequent
+results cannot be ascertained.
+
+** - Iteration was terminated but convergence has not been achieved. The MIXED procedure
+continues despite this warning. Subsequent results produced are based on the last iteration.
+Validity of the model fit is uncertain.
+
+DataSet 27 - MixedModels.jl result:
+
+Linear mixed model fit by REML
+ lnpk ~ 1 + sequence + period + treatment + (1 | subject)
+ REML criterion at convergence: 1125.083432363973
+
+Variance components:
+            Column   Variance Std.Dev.
+subject  (Intercept)  0.489831 0.699879
+Residual              0.110231 0.332011
+ Number of obs: 623; levels of grouping factors: 312
+
+  Fixed-effects parameters:
+─────────────────────────────────────────────────────
+                   Coef.  Std. Error      z  Pr(>|z|)
+─────────────────────────────────────────────────────
+(Intercept)    4.58171     0.0846385  54.13    <1e-99
+sequence: RT   0.135734    0.119701    1.13    0.2568
+sequence: TR  -0.0165249   0.119701   -0.14    0.8902
+sequence: TT   0.103687    0.124075    0.84    0.4033
+period: 2     -0.010685    0.0266212  -0.40    0.6881
+treatment: T  -0.175322    0.0377032  -4.65    <1e-05
+─────────────────────────────────────────────────────
+
+Bioequivalence Reference Datasets - 90% Confidence intervals
+.-----.----------.----------.----------.----------.--------.--------.
+| RDS | Metida B | Metida B | Metida C | Metida C |   REF* |   REF* |
+|  N  |      LCI |      UCI |      LCI |     UCI  |    LCI |    UCI |
+:-----+----------+----------+----------+----------+--------+--------:
+|   1 |   107.17 |   124.97 |    107.1 |   124.89 | 107.17 | 124.97 |
+|   2 |    97.32 |   107.46 |    97.02 |   107.79 |  97.32 | 107.46 |
+|   3 |   113.31 |   136.73 |   113.17 |   136.49 | 113.31 | 136.73 |
+|   4 |    117.9 |   159.69 |   118.67 |   158.65 |  117.9 | 159.69 |
+|   5 |   103.82 |   112.04 |    103.8 |   112.06 | 103.82 | 112.04 |
+|   6 |    80.02 |    93.31 |    80.07 |    93.37 |  80.02 |  93.31 |
+|   7 |    86.46 |    92.81 |    86.44 |    92.83 |  86.46 |  92.81 |
+|   8 |    75.69 |     87.6 |    75.57 |    87.74 |  75.69 |   87.6 |
+|   9 |    75.69 |     87.6 |    75.57 |    87.74 |  75.69 |   87.6 |
+|  10 |    96.27 |   107.59 |    95.96 |   107.94 |  96.27 | 107.59 |
+|  11 |    80.64 |   100.38 |    79.55 |   101.75 |  80.64 | 100.38 |
+|  12 |    90.35 |   157.88 |    89.13 |   159.16 |  90.35 | 157.88 |
+|  13 |    72.87 |    85.51 |    72.94 |     85.6 |  72.87 |  85.51 |
+|  14 |    69.21 |   121.27 |    65.23 |   137.67 |  69.21 | 121.27 |
+|  15 |    72.87 |    85.51 |    72.94 |     85.6 |  72.87 |  85.51 |
+|  16 |    69.54 |    89.37 |    69.32 |    89.66 |  69.54 |  89.37 |
+|  17 |   115.97 |   155.09 |   113.64 |   158.87 | 115.97 | 155.09 |
+|  18 |    59.13 |    107.2 |    59.84 |   130.49 |  59.13 |  107.2 |
+|  19 |    53.85 |    98.77 |    49.86 |   112.63 |  53.85 |  98.77 |
+|  20 |    50.92 |    95.62 |    47.26 |   109.53 |  50.92 |  95.62 |
+|  21 |   111.72 |   127.73 |   111.35 |   128.69 | 111.72 | 127.73 |
+|  22 |    77.98 |   106.09 |    77.98 |   106.09 |  77.98 | 106.09 |
+|  23 |    97.13 |   128.41 |    95.76 |   130.01 |  97.13 | 128.41 |
+|  24 |    87.24 |   109.85 |    86.64 |   110.54 |  87.24 | 109.85 |
+|  25 |    77.93 |     98.1 |    77.93 |     98.1 |  77.93 |   98.1 |
+|  26 |   133.51 |   171.42 |   132.26 |   172.37 | 133.51 | 171.42 |
+|  27 |    78.86 |     89.3 |    78.75 |    89.49 |  78.86 |   89.3 |
+|  28 |    87.86 |   100.07 |    87.49 |    100.5 |  87.86 | 100.07 |
+|  29 |    88.43 |   121.59 |    81.12 |   128.18 |  88.43 | 121.59 |
+|  30 |    79.58 |   108.07 |    79.56 |   107.76 |  79.58 | 108.07 |
+'-----'----------'----------'----------'----------'--------'--------'
+
+* Reference: Schütz H, Labes D, Tomashevskiy M, la Parra MG, Shitova A,
+Fuglsang A. Reference Datasets for Studies in a Replicate Design Intended for
+Average Bioequivalence with Expanding Limits. AAPS J. 2020 Feb 7;22(2):44.
+doi: 10.1208/s12248-020-0427-6. PMID: 32034551.
+Table II, Method B, SPSS section.

Full SPSS code provided in validation folder (here).

SPSS output in DOCX format.

Validation dataset available here, 122482020427MOESM2ESM.xls.

Validation report

Validation and report can be done on local machine with Weave.jl and Pandoc.

using Weave, Metida
+weave(joinpath(dirname(pathof(Metida)), "..", "test", "validation_report.jmd");
+doctype = "pandoc2pdf",
+out_path = :pwd,
+pandoc_options=["--toc", "-V colorlinks=true" , "-V linkcolor=blue", "-V urlcolor=red", "-V toccolor=gray"])

Report will be saved in Julia working directory. For your own purpose you can edit validation_report.jmd template.